{"version":3,"file":"script.js","sources":["../../node_modules/jquery/dist/jquery.js","../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/has.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/set-global.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/native-weak-map.js","../../node_modules/core-js/internals/is-pure.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/redefine.js","../../node_modules/core-js/internals/path.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/to-integer.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/is-array.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/create-property.js","../../node_modules/core-js/internals/native-symbol.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/array-species-create.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/array-method-has-species-support.js","../../node_modules/core-js/modules/es.array.concat.js","../../node_modules/core-js/internals/a-function.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/array-iteration.js","../../node_modules/core-js/internals/array-method-uses-to-length.js","../../node_modules/core-js/modules/es.array.filter.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/modules/es.array.find.js","../../node_modules/core-js/modules/es.array.map.js","../../node_modules/core-js/internals/array-reduce.js","../../node_modules/core-js/internals/array-method-is-strict.js","../../node_modules/core-js/modules/es.array.reduce.js","../../node_modules/core-js/modules/es.array.slice.js","../../node_modules/core-js/modules/es.array.sort.js","../../node_modules/core-js/internals/freezing.js","../../node_modules/core-js/internals/internal-metadata.js","../../node_modules/core-js/modules/es.object.freeze.js","../../node_modules/core-js/internals/regexp-flags.js","../../node_modules/core-js/internals/regexp-sticky-helpers.js","../../node_modules/core-js/internals/regexp-exec.js","../../node_modules/core-js/modules/es.regexp.exec.js","../../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../../node_modules/core-js/internals/same-value.js","../../node_modules/core-js/internals/regexp-exec-abstract.js","../../node_modules/core-js/modules/es.string.search.js","../js_source/polyfills/event-ctor/index.js","../../node_modules/core-js/internals/math-sign.js","../../node_modules/core-js/modules/es.math.sign.js","../js_source/polyfills/inert-polyfill/index.js","../js_source/Helpers/ModalHelper.js","../js_source/Helpers/AccessibilityHelper.js","../../node_modules/moment/moment.js","../../node_modules/moment/locale/en-gb.js","../../node_modules/moment/locale/cy.js","../../node_modules/moment-timezone/moment-timezone.js","../../node_modules/moment-timezone/index.js","../js_source/NRW/Util/Language.js","../js_source/NRW/Util/Moment.js","../../node_modules/jquery-ajax-unobtrusive/dist/jquery.unobtrusive-ajax.js","../js_source/NRW/Common.js","../../node_modules/@nrw.core/styles/Constants/js/attributes.js","../../node_modules/@nrw.core/styles/Constants/js/Keys.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/global.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/fails.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/descriptors.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/function-bind-native.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/function-call.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/function-uncurry-this.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/classof-raw.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/indexed-object.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/is-null-or-undefined.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/require-object-coercible.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/to-indexed-object.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/is-callable.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/is-object.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/get-built-in.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-is-prototype-of.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/engine-user-agent.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/engine-v8-version.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/symbol-constructor-detection.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/is-symbol.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/try-to-string.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/a-callable.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/get-method.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/ordinary-to-primitive.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/define-global-property.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/shared-store.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/shared.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/to-object.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/has-own-property.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/uid.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/well-known-symbol.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/to-primitive.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/to-property-key.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/document-create-element.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/v8-prototype-define-bug.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/an-object.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-define-property.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/function-name.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/inspect-source.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/weak-map-basic-detection.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/shared-key.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/hidden-keys.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/internal-state.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/make-built-in.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/define-built-in.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/math-trunc.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/to-integer-or-infinity.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/to-absolute-index.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/to-length.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/length-of-array-like.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/array-includes.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-keys-internal.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/own-keys.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/is-forced.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/export.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/function-uncurry-this-clause.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/array-method-is-strict.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.array.index-of.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/is-array.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/array-set-length.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/does-not-exceed-safe-integer.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/classof.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/is-constructor.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/array-species-constructor.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/array-species-create.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/create-property.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/delete-property-or-throw.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/array-method-has-species-support.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.array.splice.js","../../node_modules/@nrw.core/styles/Utils/js/EventDispatcher.js","../../node_modules/@nrw.core/styles/Utils/js/Breakpoint.js","../../node_modules/@nrw.core/styles/Utils/js/Throttler.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/function-bind-context.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/array-iteration.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.array.filter.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-keys.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-define-properties.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/html.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-create.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.array.find.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.array.map.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.object.keys.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/to-string.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/regexp-flags.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/regexp-sticky-helpers.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/regexp-unsupported-dot-all.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/regexp-unsupported-ncg.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/regexp-exec.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.regexp.exec.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/function-apply.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/string-multibyte.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/advance-string-index.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/get-substitution.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/regexp-exec-abstract.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.string.replace.js","../../node_modules/@nrw.core/styles/Components/RiverStationList/js/PaginationControls.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/iterators.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/correct-prototype-getter.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-get-prototype-of.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/iterators-core.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/iterator-create-constructor.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/function-uncurry-this-accessor.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/is-possible-prototype.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/iterator-define.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/create-iter-result-object.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.array.iterator.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-to-string.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.object.to-string.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/dom-iterables.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/dom-token-list-prototype.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/web.dom-collections.iterator.js","../../node_modules/@nrw.core/styles/Components/RiverStationList/js/ListStatsControls.js","../../node_modules/@nrw.core/styles/Components/RiverStationList/js/StationListItem.js","../../node_modules/@nrw.core/styles/Components/RiverStationList/js/StationListView.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.array.concat.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/array-for-each.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.array.for-each.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.array.join.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/array-slice.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.array.slice.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/array-sort.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/engine-ff-version.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/engine-is-ie-or-edge.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/engine-webkit-version.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.array.sort.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/freezing.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-get-own-property-names-external.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/array-buffer-non-extensible.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/object-is-extensible.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/internal-metadata.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.object.freeze.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/inherit-if-required.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/is-regexp.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/regexp-get-flags.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/proxy-accessor.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/define-built-in-accessor.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/set-species.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.regexp.constructor.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.regexp.to-string.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/web.dom-collections.for-each.js","../../node_modules/@nrw.core/styles/Components/RiverStationList/js/StationDetailComponent.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/well-known-symbol-wrapped.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/path.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/well-known-symbol-define.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/symbol-define-to-primitive.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.symbol.constructor.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/symbol-registry-detection.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.symbol.for.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.symbol.key-for.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/get-json-replacer-function.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.json.stringify.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.object.get-own-property-symbols.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.symbol.description.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/create-html.js","../../node_modules/@nrw.core/styles/node_modules/core-js/internals/string-html-forced.js","../../node_modules/@nrw.core/styles/node_modules/core-js/modules/es.string.link.js","../../node_modules/@nrw.core/styles/Components/NotificationPopup/js/NotificationPopupItemHandler.js","../../node_modules/@nrw.core/styles/Components/NotificationPopup/js/NotificationPopup.js","../../node_modules/core-js/internals/array-for-each.js","../../node_modules/core-js/modules/es.array.for-each.js","../../node_modules/core-js/modules/es.array.index-of.js","../../node_modules/core-js/modules/es.array.splice.js","../../node_modules/core-js/modules/es.object.keys.js","../../node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/core-js/internals/classof.js","../../node_modules/core-js/internals/object-to-string.js","../../node_modules/core-js/modules/es.object.to-string.js","../../node_modules/core-js/internals/native-promise-constructor.js","../../node_modules/core-js/internals/redefine-all.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/set-species.js","../../node_modules/core-js/internals/an-instance.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/is-array-iterator-method.js","../../node_modules/core-js/internals/get-iterator-method.js","../../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../../node_modules/core-js/internals/iterate.js","../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../node_modules/core-js/internals/species-constructor.js","../../node_modules/core-js/internals/engine-is-ios.js","../../node_modules/core-js/internals/task.js","../../node_modules/core-js/internals/microtask.js","../../node_modules/core-js/internals/new-promise-capability.js","../../node_modules/core-js/internals/promise-resolve.js","../../node_modules/core-js/internals/host-report-errors.js","../../node_modules/core-js/internals/perform.js","../../node_modules/core-js/modules/es.promise.js","../../node_modules/core-js/internals/string-multibyte.js","../../node_modules/core-js/internals/advance-string-index.js","../../node_modules/core-js/modules/es.string.replace.js","../../node_modules/core-js/internals/dom-iterables.js","../../node_modules/core-js/modules/web.dom-collections.for-each.js","../../node_modules/core-js/modules/es.array.includes.js","../../node_modules/core-js/internals/this-number-value.js","../../node_modules/core-js/internals/string-repeat.js","../../node_modules/core-js/modules/es.number.to-fixed.js","../../node_modules/core-js/modules/es.regexp.to-string.js","../../node_modules/core-js/modules/es.string.match.js","../../node_modules/core-js/internals/string-pad.js","../../node_modules/core-js/internals/string-pad-webkit-bug.js","../../node_modules/core-js/modules/es.string.pad-end.js","../../node_modules/core-js/modules/es.string.pad-start.js","../../node_modules/core-js/internals/is-regexp.js","../../node_modules/core-js/modules/es.string.split.js","../../node_modules/core-js/internals/whitespaces.js","../../node_modules/core-js/internals/string-trim.js","../../node_modules/core-js/internals/string-trim-forced.js","../../node_modules/core-js/modules/es.string.trim.js","../../node_modules/core-js/modules/es.number.epsilon.js","../../node_modules/geodesy/dms.js","../../node_modules/geodesy/vector3d.js","../../node_modules/geodesy/latlon-ellipsoidal.js","../../node_modules/geodesy/latlon-ellipsoidal-datum.js","../../node_modules/geodesy/osgridref.js","../../node_modules/@nrw.core/map/dist/nrw.core.map.esm.js","../js_source/Helpers/AccordionHelper.js","../../node_modules/core-js/internals/correct-prototype-getter.js","../../node_modules/core-js/internals/object-get-prototype-of.js","../../node_modules/core-js/internals/iterators-core.js","../../node_modules/core-js/internals/create-iterator-constructor.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/define-iterator.js","../../node_modules/core-js/modules/es.array.iterator.js","../../node_modules/core-js/modules/es.string.iterator.js","../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../node_modules/core-js/internals/native-url.js","../../node_modules/core-js/internals/object-assign.js","../../node_modules/core-js/internals/array-from.js","../../node_modules/core-js/internals/string-punycode-to-ascii.js","../../node_modules/core-js/internals/get-iterator.js","../../node_modules/core-js/modules/web.url-search-params.js","../../node_modules/core-js/modules/web.url.js","../js_source/NRW/LinkBuilder.js","../js_source/NRW/Util/Configuration.js","../js_source/NRW/Constants.js","../js_source/NRW/Util/CookieJar.js","../../node_modules/core-js/modules/es.array.from.js","../../node_modules/core-js/internals/inherit-if-required.js","../../node_modules/core-js/internals/collection.js","../../node_modules/core-js/internals/collection-strong.js","../../node_modules/core-js/modules/es.set.js","../js_source/NRW/Util/Resource.js","../js_source/NRW/Filter.js","../js_source/NRW/Util/Geometry.js","../js_source/NRW/Pages/Landing/MapBasemapConfigurationMapper.js","../js_source/NRW/Util/Scheduler.js","../../node_modules/core-js/modules/es.array.join.js","../../node_modules/core-js/modules/es.function.name.js","../../node_modules/core-js/internals/not-a-regexp.js","../../node_modules/core-js/internals/correct-is-regexp-logic.js","../../node_modules/core-js/modules/es.string.includes.js","../../node_modules/core-js/modules/es.string.starts-with.js","../../node_modules/core-js/modules/es.regexp.constructor.js","../js_source/NRW/Util/Html.js","../../node_modules/core-js/modules/es.array.some.js","../../node_modules/core-js/internals/object-to-array.js","../../node_modules/core-js/modules/es.object.values.js","../../node_modules/regenerator-runtime/runtime.js","../js_source/NRW/Util/toArray.js","../js_source/NRW/Util/mapObject.js","../js_source/NRW/Util/unique.js","../../node_modules/remove-accents/index.js","../js_source/NRW/Search/PlacesSearchLocator.js","../js_source/NRW/ParameterType.js","../js_source/NRW/Stations/StationQuery.js","../js_source/NRW/Search.js","../js_source/NRW/StartUpVariables.js","../js_source/NRW/Stations/popup/StationPopup.js","../../node_modules/@nrw.core/flareclusterlayer/fcl/FlareClusterLayer_v4.js","../js_source/NRW/Animation/GraphicSymbolAnimator.js","../js_source/NRW/Animation/ClusterAnimator.js","../js_source/NRW/Animation/StationAnimation.js","../js_source/NRW/LanguageResolver.js","../js_source/NRW/IconResolver.js","../js_source/NRW/Animation/StationRenderer.js","../js_source/NRW/Stations/StationWithPointAccessor.js","../js_source/NRW/Stations/StationsLayer.js","../js_source/NRW/TabController.js","../js_source/NRW/Pages/Landing/ViewController.js","../js_source/NRW/Pages/Landing.js","../../node_modules/core-js/internals/create-html.js","../../node_modules/core-js/internals/string-html-forced.js","../../node_modules/core-js/modules/es.string.link.js","../../node_modules/hammerjs/hammer.js","../../node_modules/core-js/internals/array-fill.js","../../node_modules/core-js/modules/es.array.fill.js","../../node_modules/core-js/modules/es.array.find-index.js","../../node_modules/core-js/modules/es.array.reverse.js","../../node_modules/core-js/modules/es.math.log10.js","../../node_modules/core-js/modules/es.number.max-safe-integer.js","../../node_modules/core-js/modules/es.number.min-safe-integer.js","../js_source/chartjs/Chart.js","../js_source/Chartjs/plugins/ResponsiveDownsample/dist/utils.js","../js_source/Chartjs/plugins/ResponsiveDownsample/dist/data_mipmap.js","../../node_modules/core-js/modules/es.object.set-prototype-of.js","../js_source/Chartjs/plugins/ResponsiveDownsample/dist/lttb_data_mipmap.js","../js_source/Chartjs/plugins/ResponsiveDownsample/dist/data_culling.js","../js_source/Chartjs/plugins/ResponsiveDownsample/dist/responsive_downsample_plugin.js","../js_source/Chartjs/plugins/ResponsiveDownsample/dist/index.js","../js_source/Chartjs/Plugins/Annotation/src/element.js","../js_source/Chartjs/Plugins/Annotation/src/helpers.js","../js_source/Chartjs/Plugins/Annotation/src/types/line.js","../js_source/Chartjs/Plugins/Annotation/src/types/box.js","../js_source/Chartjs/Plugins/Annotation/src/events.js","../js_source/Chartjs/Plugins/Annotation/src/annotation.js","../js_source/Chartjs/Plugins/Annotation/src/index.js","../js_source/Chartjs/Plugins/Zoom/src/chart.zoom.js","../../node_modules/jquery-ui/ui/widget.js","../../node_modules/jquery-ui/ui/widgets/datepicker.js","../js_source/jquery-ui-datepicker-locales/datepicker-en-GB.js","../js_source/jquery-ui-datepicker-locales/datepicker-cy-GB.js","../js_source/NRW/Pages/StationDetails/JQueryUiDatepickerComponent.js","../js_source/NRW/Pages/StationDetails/ExportDataModalComponent.js","../js_source/NRW/Pages/StationDetails/ViewType.js","../js_source/NRW/Pages/StationDetails/ParameterViewType.js","../js_source/NRW/Pages/StationDetails/StationDataMapper.js","../js_source/NRW/Pages/StationDetails/StationDataService.js","../js_source/NRW/Util/Range.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/DataAvailabilityPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/CanvasResizeNotifierPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Annotations/AnnotationManager.js","../js_source/NRW/Pages/StationDetails/Graph/DataAvailabilityComponent.js","../js_source/NRW/Pages/StationDetails/Graph/MobileControlsComponent.js","../js_source/NRW/Pages/StationDetails/Graph/GraphOptionsEvents.js","../js_source/NRW/Pages/StationDetails/Graph/StationParameterGraphComponent.js","../js_source/NRW/Pages/StationDetails/Graph/GraphOptionsComponent.js","../js_source/NRW/Pages/StationDetails/Graph/Annotations/AnnotationKeyComponent.js","../js_source/NRW/Pages/StationDetails/Graph/DateRangeSelectorComponent.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/LongTermComparisonModal.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/LongTermRainfallDataService.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/GraphConstants.js","../js_source/NRW/Util/Orientation.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/GraphConfigurationBase.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/RemovePaddingRightPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/LineThroughTooltipPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/YAxisRangePlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/TooltipConfigurationBase.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/CumulativeDaily/CumulativeDailyGraphTooltipConfiguration.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/ScaleConsistentTicksFix.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/CumulativeDaily/CumulativeDailyGraphConfiguration.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/CumulativeDaily/CumulativeDailyGraphComponent.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/CumulativeDaily/CumulativeDailyMonthSelectorComponent.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/CumulativeDaily/CumulativeDailyGraphDataSetAdapter.js","../js_source/NRW/Pages/StationDetails/Graph/Data/ParameterDataChunk.js","../js_source/NRW/Pages/StationDetails/Graph/Data/ParameterDataSet.js","../js_source/NRW/Pages/StationDetails/Graph/Data/ParameterAggregateDataSetViewBase.js","../js_source/NRW/Pages/StationDetails/Graph/Data/MomentUnitPartitioner.js","../js_source/NRW/Pages/StationDetails/Graph/Data/MomentDurationOffsettingPartitioner.js","../js_source/NRW/Pages/StationDetails/Graph/Data/OffsetDataSetViewChunk.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/CumulativeDaily/CumulativeDailyGraphAggregateDataSetView.js","../js_source/NRW/Pages/StationDetails/Graph/Key/GraphKeyItemComponent.js","../js_source/NRW/Pages/StationDetails/Graph/Key/GraphKeyComponent.js","../js_source/NRW/Pages/StationDetails/Graph/SeparateScaleLabelComponent.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/CumulativeDaily/CumulativeDailyGraphContainerComponent.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/NearestWithinChartAreaInteractionModePlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/Monthly/MonthlyGraphTooltipConfiguration.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/Monthly/MonthlyGraphConfiguration.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/Monthly/MonthlyGraphComponent.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/Monthly/MonthlyGraphDataSetAdapter.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/Monthly/MonthlyGraphContainerComponent.js","../js_source/NRW/Pages/StationDetails/Graph/Rainfall/LongTermComparisonComponent.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/DetachedPointsPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Annotations/AnnotationBase.js","../js_source/NRW/Pages/StationDetails/Graph/Annotations/RecordLevelAnnotation.js","../js_source/NRW/Pages/StationDetails/Graph/Annotations/TypicalLevelAnnotation.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/BorderedChartAreaPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/SwapTooltipTitleAndBodyPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/ZoomRespectRangesPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/PanFixRangeMinMaxPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/TooltipNearestOnRailsPositionerPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/AnnotationPositionFixPlugin.js","../../node_modules/core-js/modules/es.string.bold.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/CustomTooltipPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/FixLinearScaleForBarChartPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/DynamicRangeMinMaxPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/HideTooltipOnPanPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/TooltipVisibilityPredicatePlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/ParameterGraphConfigurationBase.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/ScaleRemoveOutOfChartAreaTicksFix.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/LevelGraphConfiguration.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/Plugins/FixMissingTicksPlugin.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/RainfallGraphConfiguration.js","../js_source/NRW/Pages/StationDetails/Graph/Data/ParameterDataSetLoader.js","../js_source/NRW/Pages/StationDetails/Graph/Data/ParameterDataService.js","../js_source/NRW/Pages/StationDetails/Graph/Data/ParameterDataSetView.js","../js_source/NRW/Pages/StationDetails/Graph/Data/ParameterLinearDataSetAdapter.js","../js_source/NRW/Pages/StationDetails/Graph/Data/ParameterCategoryDataSetAdapter.js","../js_source/NRW/Pages/StationDetails/Graph/Data/RainfallAggregateDataSetView.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/PerPartitionSizeYAxisRangeStrategy.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/FixedYAxisRangeStrategy.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/PerPartitionSizeXAxisRangeStrategy.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/FixedXAxisRangeStrategy.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/ServerParameterGraphConfigurationMapper.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/ParameterTooltipConfiguration.js","../js_source/NRW/Pages/StationDetails/Graph/Configuration/RainfallTooltipConfiguration.js","../js_source/NRW/Pages/StationDetails/Graph/StationParameterGraphServiceContainer.js","../js_source/NRW/Pages/StationDetails/LatestReadingBarComponent.js","../js_source/NRW/Pages/StationDetails/StationParameterComponent.js","../js_source/NRW/Pages/StationDetails/ViewController.js","../../node_modules/core-js/modules/es.object.get-own-property-descriptor.js","../../node_modules/core-js/modules/es.object.assign.js","../../node_modules/ssr-window/dist/ssr-window.esm.js","../../node_modules/dom7/dist/dom7.modular.js","../../node_modules/swiper/dist/js/swiper.esm.bundle.js","../js_source/NRW/Pages/StationDetails.js"],"sourcesContent":["/*!\n * jQuery JavaScript Library v3.6.3\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2022-12-20T21:28Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.3\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\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\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.9\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2022-12-19\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// `qSA` may not throw for unrecognized parts using forgiving parsing:\n\t\t\t\t\t// https://drafts.csswg.org/selectors/#forgiving-selector\n\t\t\t\t\t// like the `:has()` pseudo-class:\n\t\t\t\t\t// https://drafts.csswg.org/selectors/#relational\n\t\t\t\t\t// `CSS.supports` is still expected to return `false` then:\n\t\t\t\t\t// https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn\n\t\t\t\t\t// https://drafts.csswg.org/css-conditional-4/#dfn-support-selector\n\t\t\t\t\tif ( support.cssSupportsSelector &&\n\n\t\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\t\t!CSS.supports( \"selector(:is(\" + newSelector + \"))\" ) ) {\n\n\t\t\t\t\t\t// Support: IE 11+\n\t\t\t\t\t\t// Throw to get to the same code path as an error directly in qSA.\n\t\t\t\t\t\t// Note: once we only support browser supporting\n\t\t\t\t\t\t// `CSS.supports('selector(...)')`, we can most likely drop\n\t\t\t\t\t\t// the `try-catch`. IE doesn't implement the API.\n\t\t\t\t\t\tthrow new Error();\n\t\t\t\t\t}\n\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t// Support: Chrome 105+, Firefox 104+, Safari 15.4+\n\t// Make sure forgiving mode is not used in `CSS.supports( \"selector(...)\" )`.\n\t//\n\t// `:is()` uses a forgiving selector list as an argument and is widely\n\t// implemented, so it's a good one to test against.\n\tsupport.cssSupportsSelector = assert( function() {\n\t\t/* eslint-disable no-undef */\n\n\t\treturn CSS.supports( \"selector(*)\" ) &&\n\n\t\t\t// Support: Firefox 78-81 only\n\t\t\t// In old Firefox, `:is()` didn't use forgiving parsing. In that case,\n\t\t\t// fail this test as there's no selector to test against that.\n\t\t\t// `CSS.supports` uses unforgiving parsing\n\t\t\tdocument.querySelectorAll( \":is(:jqfake)\" ) &&\n\n\t\t\t// `*` is needed as Safari & newer Chrome implemented something in between\n\t\t\t// for `:has()` - it throws in `qSA` if it only contains an unsupported\n\t\t\t// argument but multiple ones, one of which is supported, are fine.\n\t\t\t// We want to play safe in case `:is()` gets the same treatment.\n\t\t\t!CSS.supports( \"selector(:is(*,:jqfake))\" );\n\n\t\t/* eslint-enable */\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\tif ( !support.cssSupportsSelector ) {\n\n\t\t// Support: Chrome 105+, Safari 15.4+\n\t\t// `:has()` uses a forgiving selector list as an argument so our regular\n\t\t// `try-catch` mechanism fails to catch `:has()` with arguments not supported\n\t\t// natively like `:has(:contains(\"Foo\"))`. Where supported & spec-compliant,\n\t\t// we now use `CSS.supports(\"selector(:is(SELECTOR_TO_BE_TESTED))\")`, but\n\t\t// outside that we mark `:has` as buggy.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\n\t\t\t// Support: IE <9 only\n\t\t\t// IE doesn't have `contains` on `document` so we need to check for\n\t\t\t// `documentElement` presence.\n\t\t\t// We need to fall back to `a` when `documentElement` is missing\n\t\t\t// as `ownerDocument` of elements within `<template/>` may have\n\t\t\t// a null one - a default behavior of all modern browsers.\n\t\t\tvar adown = a.nodeType === 9 && a.documentElement || a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\n\trcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\n// Require that the \"whitespace run\" starts from a non-whitespace\n// to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"$1\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (trac-13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\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 no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\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","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.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\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\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","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\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","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(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 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","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\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 store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","module.exports = false;\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.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\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","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\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) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(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 global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\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 if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\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 typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\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 = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\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 = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\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.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\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) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\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 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.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\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\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 ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\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) {\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 (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\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 : typeof detection == 'function' ? 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 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*/\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","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\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 createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (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 new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\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 versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (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 && +version;\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 $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\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';\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.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\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 = toLength(E.length);\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","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` 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 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, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? 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.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\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.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\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++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var anObject = require('../internals/an-object');\nvar defineProperties = 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 /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\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.github.io/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 : defineProperties(result, Properties);\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.github.io/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 $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\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.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\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,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\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 arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/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 || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\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 (typeof Constructor == 'function' && (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 nativeSlice.call(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 aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar test = [];\nvar nativeSort = test.sort;\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 FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\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 (!has(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 (!has(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 && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\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\nvar nativeFreeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeFreeze(1); });\n\n// `Object.freeze` method\n// https://tc39.github.io/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return nativeFreeze && isObject(it) ? nativeFreeze(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/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","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.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;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && 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 = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(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 nativeReplace.call(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 return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\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 return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\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\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 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\nmodule.exports = function (KEY, length, exec, 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 (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\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: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\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 regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\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","(function () {\r\n if ( typeof window.CustomEvent === \"function\" ) return false; //If not IE\r\n \r\n function CustomEvent ( event, params ) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined };\r\n var evt = document.createEvent( 'CustomEvent' );\r\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\r\n\r\n var defaultPrevented = false;\r\n Object.defineProperty(evt, \"preventDefault\", { value: function () {\r\n defaultPrevented = true;\r\n }});\r\n\r\n Object.defineProperty(evt, \"defaultPrevented\", { get: function () {\r\n return defaultPrevented;\r\n }})\r\n\r\n return evt;\r\n }\r\n \r\n CustomEvent.prototype = window.Event.prototype;\r\n \r\n window.CustomEvent = CustomEvent;\r\n})();","// `Math.sign` method implementation\n// https://tc39.github.io/ecma262/#sec-math.sign\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.github.io/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","/*\r\n * Copyright 2015 Google Inc. All rights reserved.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not\r\n * use this file except in compliance with the License. You may obtain a copy of\r\n * the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\r\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r\n * License for the specific language governing permissions and limitations under\r\n * the License.\r\n */\r\n\r\nif (!('inert' in HTMLElement.prototype)) {\r\n Object.defineProperty(HTMLElement.prototype, 'inert', {\r\n enumerable: true,\r\n\r\n /**\r\n * @return {boolean}\r\n * @this {Element}\r\n */\r\n get: function() { return this.hasAttribute('inert'); },\r\n\r\n /**\r\n * @param {boolean} inert\r\n * @this {Element}\r\n */\r\n set: function(inert) {\r\n if (inert) {\r\n this.setAttribute('inert', '');\r\n } else {\r\n this.removeAttribute('inert');\r\n }\r\n }\r\n });\r\n\r\n window.addEventListener('load', function() {\r\n function applyStyle(css) {\r\n var style = document.createElement('style');\r\n style.type = 'text/css';\r\n if (style.styleSheet) {\r\n style.styleSheet.cssText = css;\r\n } else {\r\n style.appendChild(document.createTextNode(css));\r\n }\r\n document.body.appendChild(style);\r\n }\r\n var css = \"/*[inert]*/*[inert]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}\";\r\n applyStyle(css);\r\n\r\n /**\r\n * Sends a fake tab event. This is only supported by some browsers.\r\n *\r\n * @param {boolean=} opt_shiftKey whether to send this tab with shiftKey\r\n */\r\n function dispatchTabEvent(opt_shiftKey) {\r\n var ev = null;\r\n try {\r\n ev = new KeyboardEvent('keydown', {\r\n keyCode: 9,\r\n which: 9,\r\n key: 'Tab',\r\n code: 'Tab',\r\n keyIdentifier: 'U+0009',\r\n shiftKey: !!opt_shiftKey,\r\n bubbles: true\r\n });\r\n } catch (e) {\r\n try {\r\n // Internet Explorer\r\n ev = document.createEvent('KeyboardEvent');\r\n ev.initKeyboardEvent(\r\n 'keydown',\r\n true,\r\n true,\r\n window,\r\n 'Tab',\r\n 0,\r\n opt_shiftKey ? 'Shift' : '',\r\n false,\r\n 'en'\r\n )\r\n } catch (e) {}\r\n }\r\n if (ev) {\r\n try {\r\n Object.defineProperty(ev, 'keyCode', { value: 9 });\r\n } catch (e) {}\r\n document.dispatchEvent(ev);\r\n }\r\n }\r\n\r\n /**\r\n * Determines whether the specified element is inert, and returns the element\r\n * which caused this state. This is limited to, but may include, the body\r\n * element.\r\n *\r\n * @param {Element} e to check\r\n * @return {Element} element is made inert by, if any\r\n */\r\n function madeInertBy(e) {\r\n while (e && e !== document.documentElement) {\r\n if (e.hasAttribute('inert')) {\r\n return e;\r\n }\r\n e = e.parentElement;\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Finds the nearest shadow root from an element that's within said shadow root.\r\n *\r\n * TODO(samthor): We probably want to find the highest shadow root.\r\n *\r\n * @param {Element} e to check\r\n * @return {Node} shadow root, if any\r\n */\r\n var findShadowRoot = function(e) { return null; };\r\n if (window.ShadowRoot) {\r\n findShadowRoot = function(e) {\r\n while (e && e !== document.documentElement) {\r\n if (e instanceof window.ShadowRoot) { return e; }\r\n e = e.parentNode;\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Returns the target of the passed event. If there's a path (shadow DOM only), then prefer it.\r\n *\r\n * @param {!Event} event\r\n * @return {Element} target of event\r\n */\r\n function targetForEvent(event) {\r\n var p = event.path;\r\n return /** @type {Element} */ (p && p[0] || event.target);\r\n }\r\n\r\n // Hold onto the last tab direction: next (tab) or previous (shift-tab). This\r\n // can be used to step over inert elements in the correct direction. Mouse\r\n // or non-tab events should reset this and inert events should focus nothing.\r\n var lastTabDirection = 0;\r\n document.addEventListener('keydown', function(ev) {\r\n if (ev.keyCode === 9) {\r\n lastTabDirection = ev.shiftKey ? -1 : +1;\r\n } else {\r\n lastTabDirection = 0;\r\n }\r\n });\r\n document.addEventListener('mousedown', function(ev) {\r\n lastTabDirection = 0;\r\n });\r\n\r\n // Retain the currently focused shadowRoot.\r\n var focusedShadowRoot = null;\r\n function updateFocusedShadowRoot(root) {\r\n if (root == focusedShadowRoot) { return; }\r\n if (focusedShadowRoot) {\r\n if (!(focusedShadowRoot instanceof window.ShadowRoot)) {\r\n throw new Error('not shadow root: ' + focusedShadowRoot);\r\n }\r\n focusedShadowRoot.removeEventListener('focusin', shadowFocusHandler, true); // remove\r\n }\r\n if (root) {\r\n root.addEventListener('focusin', shadowFocusHandler, true); // add\r\n }\r\n focusedShadowRoot = root;\r\n }\r\n\r\n /**\r\n * Focus handler on a Shadow DOM host. This traps focus events within that root.\r\n *\r\n * @param {!Event} ev\r\n */\r\n function shadowFocusHandler(ev) {\r\n // ignore \"direct\" focus, we only want shadow root focus\r\n var last = ev.path[ev.path.length - 1];\r\n if (last === /** @type {*} */ (window)) { return; }\r\n sharedFocusHandler(targetForEvent(ev));\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n /**\r\n * Called indirectly by both the regular focus handler and Shadow DOM host focus handler. This\r\n * is the bulk of the polyfill which prevents focus.\r\n *\r\n * @param {Element} target focused on\r\n */\r\n function sharedFocusHandler(target) {\r\n var inertElement = madeInertBy(target);\r\n if (!inertElement) { return; }\r\n\r\n // If the page has been tabbed recently, then focus the next element\r\n // in the known direction (if available).\r\n if (document.hasFocus() && lastTabDirection !== 0) {\r\n function getFocused() {\r\n return (focusedShadowRoot || document).activeElement;\r\n }\r\n\r\n // Send a fake tab event to enumerate through the browser's view of\r\n // focusable elements. This is supported in some browsers (not Firefox).\r\n var previous = getFocused();\r\n dispatchTabEvent(lastTabDirection < 0 ? true : false);\r\n if (previous != getFocused()) { return; }\r\n\r\n // Otherwise, enumerate through adjacent elements to find the next\r\n // focusable element. This won't respect any custom tabIndex.\r\n var filter = /** @type {NodeFilter} */ ({\r\n /**\r\n * @param {Node} node\r\n * @return {number}\r\n */\r\n acceptNode: function(node) {\r\n if (!node || !node.focus || node.tabIndex < 0) {\r\n return NodeFilter.FILTER_SKIP; // look at descendants\r\n }\r\n var contained = inertElement.contains(node);\r\n return contained ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\r\n },\r\n });\r\n var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT, filter);\r\n walker.currentNode = inertElement;\r\n\r\n var nextFunc = Math.sign(lastTabDirection) === -1 ? walker.previousNode : walker.nextNode\r\n var next = nextFunc.bind(walker);\r\n for (var candidate; candidate = next(); ) {\r\n candidate.focus();\r\n if (getFocused() !== previous) { return; }\r\n }\r\n\r\n // FIXME: If a focusable element can't be found here, it's likely to mean\r\n // that this is the start or end of the page. Blurring is then not quite\r\n // right, as it prevents access to the browser chrome.\r\n }\r\n\r\n // Otherwise, immediately blur the targeted element. Technically, this\r\n // still generates focus and blur events on the element. This is (probably)\r\n // the price to pay for this polyfill.\r\n target.blur();\r\n }\r\n\r\n // The 'focusin' event bubbles, but instead, use 'focus' with useCapture set\r\n // to true as this is supported in Firefox. Additionally, target the body so\r\n // this doesn't generate superfluous events on document itself.\r\n document.body.addEventListener('focus', function(ev) {\r\n var target = targetForEvent(ev);\r\n updateFocusedShadowRoot((target == ev.target ? null : findShadowRoot(target)));\r\n sharedFocusHandler(target); // either real DOM node or shadow node\r\n }, true);\r\n\r\n // Use a capturing click listener as both a safety fallback where pointer-events is not\r\n // available (IE10 and below), and to prevent accessKey access to inert elements.\r\n // TODO(samthor): Note that pointer-events polyfills trap more mouse events, e.g.-\r\n // https://github.com/kmewhort/pointer_events_polyfill\r\n document.addEventListener('click', function(ev) {\r\n var target = targetForEvent(ev);\r\n if (madeInertBy(target)) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n }, true);\r\n });\r\n}","export default class ModalHelper {\r\n\tstatic classModalContainer() { return \".modal-container\";}\r\n\tstatic classModalContainerVisibleModifier() { return \"modal-container--visible\";}\r\n\tstatic classModal() { return \".modal\";}\r\n\tstatic classModalVisibleModifier() { return \"modal--visible\";}\r\n\tstatic classContent() { return \".content\";}\r\n\tstatic classContentHeightModifier() { return \"content--modal-open\";}\r\n\tstatic dataModalName() { return \"data-modal-name\";}\r\n\t\r\n\tstatic Open(modalName, lockScreen = true, callback) {\r\n\t\tModalHelper.lastFocusedElement = document.activeElement;\r\n\r\n\t\t$(ModalHelper.classModalContainer()).addClass(ModalHelper.classModalContainerVisibleModifier());\r\n\t\t\r\n\t\tvar $modal = $(ModalHelper.classModal() + \"[\" + ModalHelper.dataModalName() + \"=\" + modalName + \"]\")\r\n\t\t\t.addClass(ModalHelper.classModalVisibleModifier())\r\n\t\t\t.attr(\"aria-disabled\", \"false\")\r\n\t\t\t.attr(\"aria-hidden\", \"false\");\r\n\r\n\r\n\t\tvar firstEl = $modal.find(\"[clickable], button, a[href], input[type=submit], input[type=button]\").get(0);\r\n\t\tfirstEl.focus();\r\n\r\n\t\t$(ModalHelper.classContent())\r\n\t\t\t.toggleClass(ModalHelper.classContentHeightModifier(), lockScreen)\r\n\t\t\t.attr(\"aria-disabled\", \"true\")\r\n\t\t\t.attr(\"aria-hidden\", \"true\")\r\n\t\t\t.attr(\"inert\", \"true\");\r\n\r\n\t\tif (callback) {\r\n\t\t\tcallback();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic Close() {\r\n\t\t$(ModalHelper.classModalContainer())\r\n\t\t\t.removeClass(ModalHelper.classModalContainerVisibleModifier());\r\n\r\n\t\t$(ModalHelper.classContent())\r\n\t\t\t.removeClass(ModalHelper.classContentHeightModifier())\r\n\t\t\t.attr(\"aria-disabled\", \"false\")\r\n\t\t\t.attr(\"aria-hidden\", \"false\")\r\n\t\t\t.attr(\"inert\", null);\r\n\r\n\t\t$(ModalHelper.classModal())\r\n\t\t\t.removeClass(ModalHelper.classModalVisibleModifier())\r\n\t\t\t.attr(\"aria-disabled\", \"true\")\r\n\t\t\t.attr(\"aria-hidden\", \"true\")\r\n\t\t\t.blur();\r\n\r\n\t\tif (ModalHelper.lastFocusedElement !== null) {\r\n\t\t\tModalHelper.lastFocusedElement.focus();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic CloseWhenClickedOutside(modalName)\r\n\t{\r\n\t\t$(ModalHelper.classModalContainer()).click(function (ev) {\r\n\t\t\tconst isOpen = $(`.${ModalHelper.classModalVisibleModifier()}[data-modal-name=\"${$.escapeSelector(modalName)}\"]`).length > 0;\r\n\r\n\t\t\tif (isOpen && $(ev.target).closest(`[data-modal-name=\"${$.escapeSelector(modalName)}\"]`).length === 0)\r\n\t\t\t{\r\n\t\t\t\tModalHelper.Close();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tstatic Initialize() {\r\n\t\tvar openModal = $(ModalHelper.classModal() + \".\" + ModalHelper.classModalVisibleModifier());\r\n\r\n\t\tif (openModal.length > 0) {\r\n\t\t\tvar locked = $(\".\" + ModalHelper.classContentHeightModifier()).length > 0;\r\n\r\n\t\t\tModalHelper.Open(openModal.data(\"modalName\"), locked);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nModalHelper.lastFocusedElement = null;","import \"jquery\";\r\nexport default {\r\n Initialize: function () {\r\n $(document.body).on(\"keydown\", function (e) {\r\n if (e.keyCode !== 32 /* space */ && e.keyCode !== 13 /* enter */) {\r\n return true;\r\n }\r\n\r\n if (typeof $(e.target).attr(\"clickable\") === typeof undefined) {\r\n return true;\r\n }\r\n\r\n e.preventDefault();\r\n });\r\n\r\n $(document.body).on(\"keyup\", function (e) {\r\n if (e.keyCode !== 32 /* space */ && e.keyCode !== 13 /* enter */) {\r\n return true;\r\n }\r\n\r\n if (typeof $(e.target).attr(\"clickable\") === typeof undefined) {\r\n return true;\r\n }\r\n \r\n $(e.target).trigger(\"click\");\r\n return false;\r\n });\r\n }\r\n};","//! moment.js\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n } else {\n var k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null,\n rfc2822 : false,\n weekdayMismatch : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate (y) {\n var date;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n var args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays (ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays :\n this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];\n return (m === true) ? shiftWeekdays(weekdays, this._week.dow)\n : (m) ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n else {\n if ((typeof console !== 'undefined') && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100, h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000;\n var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month': return months;\n case 'quarter': return months / 3;\n case 'year': return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asQuarters = makeAs('Q');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.24.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM' // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enGb = moment.defineLocale('en-gb', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS : 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cy;\n\n})));\n","//! moment-timezone.js\n//! version : 0.5.27\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.27\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (å°åŒ—標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","let pageLanguage = document.documentElement.lang || \"en\";\r\n\r\nfunction select(twoLetterLanguageCode, object, englishFn, welshFn) {\r\n switch (twoLetterLanguageCode.toLowerCase()) {\r\n case \"en\":\r\n return englishFn(object);\r\n case \"cy\":\r\n return welshFn(object);\r\n default:\r\n console.warn(`No valid page language! ${twoLetterLanguageCode}`);\r\n return englishFn(object);\r\n }\r\n}\r\n\r\nlet Language = {\r\n language: pageLanguage,\r\n\r\n // Usage: Text.localise(station.name, s => s.english, s => s.welsh)\r\n // This function will try to use known defaults (like .english, .en, .welsh, .cymraeg. .cy)\r\n text: function (object, englishFn, welshFn) {\r\n if (typeof englishFn === typeof undefined) {\r\n let englishProperties = [\"english\", \"en\"];\r\n\r\n for (let i = 0; i < englishProperties.length; i++) {\r\n if (englishProperties[i] in object) {\r\n englishFn = a => a[englishProperties[i]];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (typeof welshFn === typeof undefined) {\r\n let welshProperties = [\"welsh\", \"cymraeg\", \"cy\"];\r\n\r\n for (let i = 0; i < welshProperties.length; i++) {\r\n if (welshProperties[i] in object) {\r\n welshFn = a => a[welshProperties[i]];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (typeof englishFn === typeof undefined || typeof welshFn === typeof undefined) {\r\n throw new Error(`Undefined language selector: EN: ${!!englishFn}, CY: ${!!welshFn}`);\r\n }\r\n\r\n return select(pageLanguage, object, englishFn, welshFn);\r\n }\r\n}\r\n\r\nexport default Language;","import moment from \"moment\";\r\nimport \"moment/locale/en-gb\";\r\nimport \"moment/locale/cy\";\r\nimport \"moment-timezone\";\r\nimport Language from \"./Language\";\r\nmoment.tz.setDefault(\"Europe/London\");\r\nconst momentLocaleMap = {\r\n en: \"en-gb\",\r\n cy: \"cy\"\r\n};\r\nmoment.locale(momentLocaleMap[Language.language]);\r\nexport default moment;\r\n","// Unobtrusive Ajax support library for jQuery\n// Copyright (c) .NET Foundation. All rights reserved.\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\n// @version v3.2.6\n// \n// Microsoft grants you the right to use these script files for the sole\n// purpose of either: (i) interacting through your browser with the Microsoft\n// website or online service, subject to the applicable licensing or use\n// terms; or (ii) using the files as included with a Microsoft product subject\n// to that product's license terms. Microsoft reserves all other rights to the\n// files not expressly granted by Microsoft, whether by implication, estoppel\n// or otherwise. Insofar as a script file is dual licensed under GPL,\n// Microsoft neither took the code under GPL nor distributes it thereunder but\n// under the terms set out in this paragraph. All notices and licenses\n// below are for informational purposes only.\n\n/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */\n/*global window: false, jQuery: false */\n\n(function ($) {\n var data_click = \"unobtrusiveAjaxClick\",\n data_target = \"unobtrusiveAjaxClickTarget\",\n data_validation = \"unobtrusiveValidation\";\n\n function getFunction(code, argNames) {\n var fn = window, parts = (code || \"\").split(\".\");\n while (fn && parts.length) {\n fn = fn[parts.shift()];\n }\n if (typeof (fn) === \"function\") {\n return fn;\n }\n argNames.push(code);\n return Function.constructor.apply(null, argNames);\n }\n\n function isMethodProxySafe(method) {\n return method === \"GET\" || method === \"POST\";\n }\n\n function asyncOnBeforeSend(xhr, method) {\n if (!isMethodProxySafe(method)) {\n xhr.setRequestHeader(\"X-HTTP-Method-Override\", method);\n }\n }\n\n function asyncOnSuccess(element, data, contentType) {\n var mode;\n\n if (contentType.indexOf(\"application/x-javascript\") !== -1) { // jQuery already executes JavaScript for us\n return;\n }\n\n mode = (element.getAttribute(\"data-ajax-mode\") || \"\").toUpperCase();\n $(element.getAttribute(\"data-ajax-update\")).each(function (i, update) {\n var top;\n\n switch (mode) {\n case \"BEFORE\":\n $(update).prepend(data);\n break;\n case \"AFTER\":\n $(update).append(data);\n break;\n case \"REPLACE-WITH\":\n $(update).replaceWith(data);\n break;\n default:\n $(update).html(data);\n break;\n }\n });\n }\n\n function asyncRequest(element, options) {\n var confirm, loading, method, duration;\n\n confirm = element.getAttribute(\"data-ajax-confirm\");\n if (confirm && !window.confirm(confirm)) {\n return;\n }\n\n loading = $(element.getAttribute(\"data-ajax-loading\"));\n duration = parseInt(element.getAttribute(\"data-ajax-loading-duration\"), 10) || 0;\n\n $.extend(options, {\n type: element.getAttribute(\"data-ajax-method\") || undefined,\n url: element.getAttribute(\"data-ajax-url\") || undefined,\n cache: (element.getAttribute(\"data-ajax-cache\") || \"\").toLowerCase() === \"true\",\n beforeSend: function (xhr) {\n var result;\n asyncOnBeforeSend(xhr, method);\n result = getFunction(element.getAttribute(\"data-ajax-begin\"), [\"xhr\"]).apply(element, arguments);\n if (result !== false) {\n loading.show(duration);\n }\n return result;\n },\n complete: function () {\n loading.hide(duration);\n getFunction(element.getAttribute(\"data-ajax-complete\"), [\"xhr\", \"status\"]).apply(element, arguments);\n },\n success: function (data, status, xhr) {\n asyncOnSuccess(element, data, xhr.getResponseHeader(\"Content-Type\") || \"text/html\");\n getFunction(element.getAttribute(\"data-ajax-success\"), [\"data\", \"status\", \"xhr\"]).apply(element, arguments);\n },\n error: function () {\n getFunction(element.getAttribute(\"data-ajax-failure\"), [\"xhr\", \"status\", \"error\"]).apply(element, arguments);\n }\n });\n\n options.data.push({ name: \"X-Requested-With\", value: \"XMLHttpRequest\" });\n\n method = options.type.toUpperCase();\n if (!isMethodProxySafe(method)) {\n options.type = \"POST\";\n options.data.push({ name: \"X-HTTP-Method-Override\", value: method });\n }\n\n // change here:\n // Check for a Form POST with enctype=multipart/form-data\n // add the input file that were not previously included in the serializeArray()\n // set processData and contentType to false\n var $element = $(element);\n if ($element.is(\"form\") && $element.attr(\"enctype\") == \"multipart/form-data\") {\n var formdata = new FormData();\n $.each(options.data, function (i, v) {\n formdata.append(v.name, v.value);\n });\n $(\"input[type=file]\", $element).each(function () {\n var file = this;\n $.each(file.files, function (n, v) {\n formdata.append(file.name, v);\n });\n });\n $.extend(options, {\n processData: false,\n contentType: false,\n data: formdata\n });\n }\n // end change\n\n $.ajax(options);\n }\n\n function validate(form) {\n var validationInfo = $(form).data(data_validation);\n return !validationInfo || !validationInfo.validate || validationInfo.validate();\n }\n\n $(document).on(\"click\", \"a[data-ajax=true]\", function (evt) {\n evt.preventDefault();\n asyncRequest(this, {\n url: this.href,\n type: \"GET\",\n data: []\n });\n });\n\n $(document).on(\"click\", \"form[data-ajax=true] input[type=image]\", function (evt) {\n var name = evt.target.name,\n target = $(evt.target),\n form = $(target.parents(\"form\")[0]),\n offset = target.offset();\n\n form.data(data_click, [\n { name: name + \".x\", value: Math.round(evt.pageX - offset.left) },\n { name: name + \".y\", value: Math.round(evt.pageY - offset.top) }\n ]);\n\n setTimeout(function () {\n form.removeData(data_click);\n }, 0);\n });\n\n $(document).on(\"click\", \"form[data-ajax=true] :submit\", function (evt) {\n var name = evt.currentTarget.name,\n target = $(evt.target),\n form = $(target.parents(\"form\")[0]);\n\n form.data(data_click, name ? [{ name: name, value: evt.currentTarget.value }] : []);\n form.data(data_target, target);\n\n setTimeout(function () {\n form.removeData(data_click);\n form.removeData(data_target);\n }, 0);\n });\n\n $(document).on(\"submit\", \"form[data-ajax=true]\", function (evt) {\n var clickInfo = $(this).data(data_click) || [],\n clickTarget = $(this).data(data_target),\n isCancel = clickTarget && (clickTarget.hasClass(\"cancel\") || clickTarget.attr('formnovalidate') !== undefined);\n evt.preventDefault();\n if (!isCancel && !validate(this)) {\n return;\n }\n asyncRequest(this, {\n url: this.action,\n type: this.method || \"GET\",\n data: clickInfo.concat($(this).serializeArray())\n });\n });\n}(jQuery));\n","import ModalHelper from \"Helpers/ModalHelper\";\r\nimport AccessibilityHelper from \"Helpers/AccessibilityHelper\";\r\nimport \"jquery\";\r\nimport \"NRW/Util/Moment\";\r\nimport \"jquery-ajax-unobtrusive\";\r\n\r\n$(document.body).ready(function () {\r\n ModalHelper.Initialize();\r\n AccessibilityHelper.Initialize();\r\n});\r\n","const attributes = {\r\n aria: {\r\n describedBy: 'aria-describedby',\r\n disabled: 'aria-disabled',\r\n expanded: 'aria-expanded',\r\n hidden: 'aria-hidden',\r\n labelledBy: 'aria-labelledby',\r\n },\r\n css: {\r\n //dom: {\r\n // disabled: 'disabled',\r\n //},\r\n class: {\r\n disabled: 'disabled',\r\n displayNone: 'display-none',\r\n activeTab: 'tab-item--active',\r\n expanded: 'expanded'\r\n }\r\n },\r\n events: {\r\n blur: 'blur',\r\n change: 'change',\r\n click: 'click',\r\n dragend: 'dragend',\r\n focus: 'focus',\r\n keydown: 'keydown',\r\n keyup: 'keyup',\r\n load: 'load',\r\n mouseleave: 'mouseleave',\r\n mouseout: 'mouseout',\r\n mouseover: 'mouseover',\r\n mousewheel: 'mousewheel',\r\n mousedown: 'mousedown',\r\n move: 'move',\r\n moveend: 'moveend',\r\n movestart: 'movestart',\r\n remove: 'remove',\r\n touchcancel: 'touchcancel',\r\n touchend: 'touchend',\r\n touchmove: 'touchmove',\r\n touchstart: 'touchstart',\r\n zoomend: 'zoomend'\r\n },\r\n //culture: {\r\n // english: 'en-GB',\r\n // welsh: 'en-CY'\r\n //},\r\n global: {\r\n false: 'false',\r\n true: 'true'\r\n }\r\n}\r\n\r\nexport default attributes;\r\n","const Keys = {\r\n codes: {\r\n tab: 9,\r\n return: 13,\r\n shift: 16,\r\n control: 17,\r\n alt: 18,\r\n escape: 27,\r\n spacebar: 32,\r\n arrowLeft: 37,\r\n arrowUp: 38,\r\n arrowRight: 39,\r\n arrowDown: 40,\r\n meta: 91\r\n },\r\n isArrowKey: (keycode) => {\r\n if (keycode === Keys.codes.arrowUp\r\n || keycode === Keys.codes.arrowDown\r\n || keycode === Keys.codes.arrowLeft\r\n || keycode === Keys.codes.arrowRight) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n};\r\n\r\nexport default Keys;","'use strict';\nvar 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 check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar 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","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\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 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","'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","'use strict';\nmodule.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 NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar 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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = 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","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\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","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar 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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar 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","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\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","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\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 = 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","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = 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 new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar 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 IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.37.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.37.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar 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\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar 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","'use strict';\nvar 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/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\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 = 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 new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\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 = 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 new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar 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","'use strict';\nmodule.exports = {};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\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 new 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 /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\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 -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar 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","'use strict';\nvar 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 var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar 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","'use strict';\nvar 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 if (length === 0) return !IS_INCLUDES && -1;\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","'use strict';\nvar 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","'use strict';\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","'use strict';\nvar 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","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\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.dontCallGetSet - 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] || defineGlobalProperty(TARGET, {});\n } else {\n target = global[TARGET] && global[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\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 defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\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","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar 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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar 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","'use strict';\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 = 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","'use strict';\nvar 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 construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], 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","'use strict';\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 = 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","'use strict';\nvar 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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar 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 $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\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 doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\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 deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(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 deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","class EventDispatcher {\r\n constructor() {\r\n this.listeners = [];\r\n }\r\n\r\n invokeListeners(args, context) {\r\n for (let i = 0, x = this.listeners.length; i < x; i++) {\r\n this.invokeListener(this.listeners[i], args, context);\r\n }\r\n }\r\n\r\n invokeListener(listener, args, context) {\r\n if (typeof context === typeof undefined) {\r\n context = this;\r\n }\r\n\r\n listener.apply(context, args);\r\n }\r\n\r\n addListener(listener) {\r\n return new EventDispatcherSubscription(this, listener);\r\n }\r\n\r\n static noop() {\r\n return new NoopEventDispatcher;\r\n }\r\n}\r\n\r\nclass EventDispatcherSubscription {\r\n constructor(eventDispatcher, reference) {\r\n this.eventDispatcher = eventDispatcher;\r\n this.reference = reference;\r\n this.disposed = false;\r\n\r\n if (this.eventDispatcher.listeners.indexOf(reference) === -1) {\r\n this.eventDispatcher.listeners.push(reference);\r\n }\r\n }\r\n\r\n dispose() {\r\n let index = this.eventDispatcher.listeners.indexOf(this.reference);\r\n\r\n this.disposed = true;\r\n\r\n if (index === -1) {\r\n return false;\r\n } else {\r\n this.eventDispatcher.listeners.splice(index, 1);\r\n return true;\r\n }\r\n }\r\n}\r\n\r\nclass NoopEventDispatcher {\r\n invokeListeners() {\r\n //noop\r\n }\r\n \r\n addListener() {\r\n //noop\r\n }\r\n}\r\n\r\nexport default EventDispatcher;","import EventDispatcher from \"./EventDispatcher\";\r\n\r\nconst Mobile = \"mobile\";\r\nconst Tablet = \"tablet\";\r\nconst Desktop = \"desktop\";\r\n\r\nclass Breakpoint {\r\n constructor() {\r\n this.tabletMediaQuery = window.matchMedia(\"screen and (min-width: 620px)\");\r\n this.tabletMediaQuery.addListener(ev => this.onBreakpointStateChange(ev));\r\n \r\n this.desktopMediaQuery = window.matchMedia(\"screen and (min-width: 920px)\");\r\n this.desktopMediaQuery.addListener(ev => this.onBreakpointStateChange(ev));\r\n \r\n this.lastBreakpoint = this.getCurrentBreakpoint();\r\n this.onChange = new EventDispatcher();\r\n }\r\n \r\n get mobile() {\r\n return Mobile;\r\n }\r\n \r\n get tablet() {\r\n return Tablet;\r\n }\r\n \r\n get desktop() {\r\n return Desktop;\r\n }\r\n \r\n getCurrentBreakpoint() {\r\n let newBreakpoint = this.mobile;\r\n \r\n if (this.tabletMediaQuery.matches) {\r\n newBreakpoint = this.tablet;\r\n }\r\n \r\n if (this.desktopMediaQuery.matches) {\r\n newBreakpoint = this.desktop;\r\n }\r\n \r\n return newBreakpoint;\r\n }\r\n \r\n onBreakpointStateChange(ev) {\r\n let newBreakpoint = this.getCurrentBreakpoint();\r\n \r\n this.onChange.invokeListeners([newBreakpoint, this.lastBreakpoint], this);\r\n \r\n this.lastBreakpoint = newBreakpoint;\r\n }\r\n}\r\n\r\nexport default new Breakpoint;","class Throttler {\r\n constructor(duration) {\r\n this._timerId = null;\r\n this.duration = duration;\r\n this._fn = null;\r\n }\r\n \r\n executeSoon(fn) {\r\n this._fn = fn;\r\n\r\n if (!this._timerId) {\r\n this._startTimer();\r\n }\r\n }\r\n \r\n debounce(fn) {\r\n this._fn = fn;\r\n \r\n this._clearTimer();\r\n this._startTimer();\r\n }\r\n \r\n _clearTimer() {\r\n if (this._timerId) {\r\n clearTimeout(this._timerId);\r\n this._timerId = null;\r\n }\r\n }\r\n \r\n _startTimer() {\r\n this._timerId = setTimeout(() => this._executeNow(), this.duration);\r\n }\r\n \r\n _executeNow() {\r\n this._fn();\r\n this._clearTimer();\r\n }\r\n}\r\nexport default Throttler;\r\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\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","'use strict';\nvar 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 length = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\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","'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 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 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","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\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\n// eslint-disable-next-line es/no-object-create -- safe\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","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\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 defineProperty(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 $ = 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\n// eslint-disable-next-line es/no-array-prototype-find -- testing\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 $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 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","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\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.hasIndices) result += 'd';\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.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar 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","'use strict';\nvar 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.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\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't 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 $ = 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","'use strict';\nvar 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","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\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 RegExp 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 () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\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: call(nativeRegExpMethod, regexp, str, arg2) };\n }\n return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar 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 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","'use strict';\nvar 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);\n// eslint-disable-next-line redos/no-vulnerable -- safe\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","'use strict';\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 = 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 new $TypeError('RegExp#exec called on incompatible receiver');\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 isNullOrUndefined = require('../internals/is-null-or-undefined');\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, '$<a>') !== '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 = isNullOrUndefined(searchValue) ? 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 var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n 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 var replacement;\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 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\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","import Breakpoint from \"../../../Utils/js/Breakpoint\";\r\n\r\nconst PER_PAGE_OPTIONS = [8, 16, 32];\r\nconst MAX_ADJACENT_PAGE_LINKS_PER_SIDE_MOBILE = 2;\r\nconst MAX_ADJACENT_PAGE_LINKS_PER_SIDE_TABLET = 3;\r\nconst MAX_ADJACENT_PAGE_LINKS_PER_SIDE = 4;\r\n\r\nclass PaginationControls {\r\n constructor(options) {\r\n this._pageNumberLabel = options.pageNumberLabel;\r\n this.$paginationRoot = options.$paginationRoot;\r\n this.$ = options.$;\r\n \r\n this.$pageSelector = this.$paginationRoot.find(\".pagination__page-selector\");\r\n \r\n this.$firstPage = this.$pageSelector.find(\".pagination__page-link--first.pagination__page-link\");\r\n this.$previousPage = this.$pageSelector.find(\".pagination__page-link--previous.pagination__page-link\");\r\n this.$nextPage = this.$pageSelector.find(\".pagination__page-link--next.pagination__page-link\");\r\n this.$lastPage = this.$pageSelector.find(\".pagination__page-link--last.pagination__page-link\");\r\n \r\n this.$perPageSelector = this.$paginationRoot.find(\".pagination__per-page-selector\");\r\n this.$perPage = this.$perPageSelector.find(\".pagination__per-page\");\r\n \r\n this.$pageLinkLeftSpacer = this.buildPageLinkSpacer();\r\n this.$pageLinkRightSpacer = this.buildPageLinkSpacer();\r\n \r\n this.isPaginating = true;\r\n this.displayedNumberOfItemsPerPage = 8;\r\n this.currentPage = 0;\r\n this.totalNumberOfItems = 0;\r\n this.maxAdjacentPageLinksPerSide = MAX_ADJACENT_PAGE_LINKS_PER_SIDE_MOBILE;\r\n \r\n this.allowPerPageConfiguration = false;\r\n this.fixedPerPageCount = 8;\r\n this.previousPerPageConfiguration = null;\r\n \r\n this._onPageSelectedListeners = [];\r\n this._onPaginationEnabledListeners = [];\r\n \r\n this.populatePerPageSelectorOptions();\r\n \r\n this.$perPage.change((event) => {\r\n this.perPage = this.$(event.target).val();\r\n })\r\n \r\n this.$firstPage.click(() => {\r\n this.page = 0;\r\n return false;\r\n });\r\n \r\n this.$lastPage.click(() => {\r\n this.page = this.totalPages - 1;\r\n return false;\r\n })\r\n \r\n this.$previousPage.click(() => {\r\n this.page = this.page - 1;\r\n return false;\r\n })\r\n \r\n this.$nextPage.click(() => {\r\n this.page = this.page + 1;\r\n return false;\r\n })\r\n \r\n this.$pageSelector.on(\"click\",\r\n \".pagination__page-link--specific\",\r\n (event) => {\r\n this.page = this.$(event.currentTarget).data(\"page\");\r\n return false;\r\n });\r\n \r\n Breakpoint.onChange.addListener((newBreakpoint, oldBreakpoint) => this.onBreakpointStateChange(newBreakpoint, oldBreakpoint));\r\n this.onBreakpointStateChange(Breakpoint.lastBreakpoint, null);\r\n }\r\n \r\n get showPerPageSelector() {\r\n return this.allowPerPageConfiguration;\r\n }\r\n \r\n set showPerPageSelector(willShowPerPage) {\r\n if (!willShowPerPage) {\r\n if (this.allowPerPageConfiguration) {\r\n // Save previous user-selected per page value\r\n this.previousPerPageConfiguration = this.perPage;\r\n }\r\n this.allowPerPageConfiguration = false;\r\n this.perPage = this.fixedPerPageCount;\r\n } else {\r\n if (!this.allowPerPageConfiguration && this.previousPerPageConfiguration) {\r\n // If the user saved a per page value previously, use it\r\n this.perPage = this.previousPerPageConfiguration;\r\n this.$perPage.val(this.perPage);\r\n this.previousPerPageConfiguration = null;\r\n }\r\n this.allowPerPageConfiguration = true;\r\n }\r\n \r\n this.$perPageSelector.toggleClass(\"display-none\", !willShowPerPage);\r\n }\r\n \r\n onBreakpointStateChange(newBreakpoint, oldBreakpoint) {\r\n if (newBreakpoint === Breakpoint.mobile) {\r\n this.maxAdjacentPageLinksPerSide = MAX_ADJACENT_PAGE_LINKS_PER_SIDE_MOBILE;\r\n } else if (newBreakpoint === Breakpoint.tablet) {\r\n this.maxAdjacentPageLinksPerSide = MAX_ADJACENT_PAGE_LINKS_PER_SIDE_TABLET;\r\n } else {\r\n this.maxAdjacentPageLinksPerSide = MAX_ADJACENT_PAGE_LINKS_PER_SIDE;\r\n }\r\n \r\n this.showPerPageSelector = newBreakpoint === Breakpoint.desktop;\r\n \r\n this.updatePageLinkSpacers();\r\n }\r\n \r\n populatePageLinks() {\r\n this.$pageSelector.find(\".pagination__page-link--specific\").detach();\r\n \r\n let $lastPageLink = this.$previousPage;\r\n \r\n for (let i = 0; i < this.totalPages; i++) {\r\n let $pageLink = this.buildPageLink(i);\r\n $lastPageLink.after($pageLink);\r\n $lastPageLink = $pageLink;\r\n }\r\n \r\n this.updatePageLinks();\r\n }\r\n \r\n updatePageLinks() {\r\n let $pageLinks = this.$pageSelector.find(\".pagination__page-link--specific\");\r\n $pageLinks\r\n .toggleClass(\"pagination__page-link--active\", false)\r\n .attr(\"aria-current\", null);\r\n \r\n $pageLinks.filter(\"[data-page=\" + this.page + \"]\")\r\n .toggleClass(\"pagination__page-link--active\", true)\r\n .attr(\"aria-current\", \"page\");\r\n \r\n this.updatePageLinkSpacers();\r\n }\r\n \r\n updatePageLinkSpacers() {\r\n let $pageLinks = this.$pageSelector.find(\".pagination__page-link--specific\");\r\n \r\n let $currentPageLink = $pageLinks.filter(\"[data-page=\" + this.page + \"]\");\r\n let currentPageIndex = $currentPageLink.index(\".pagination__page-link--specific\");\r\n \r\n let newLeftSpacerIndex = currentPageIndex - this.maxAdjacentPageLinksPerSide;\r\n let newRightSpacerIndex = currentPageIndex + this.maxAdjacentPageLinksPerSide;\r\n let rightSpacerIndexOffset = 0;\r\n let leftSpacerIndexOffset = 0;\r\n \r\n if (newLeftSpacerIndex < 0) {\r\n rightSpacerIndexOffset = -newLeftSpacerIndex;\r\n newLeftSpacerIndex = 0;\r\n }\r\n \r\n if (newRightSpacerIndex > $pageLinks.length - 1) {\r\n leftSpacerIndexOffset = newRightSpacerIndex - $pageLinks.length + 1;\r\n newRightSpacerIndex = $pageLinks.length - 1;\r\n }\r\n \r\n newLeftSpacerIndex -= leftSpacerIndexOffset;\r\n newRightSpacerIndex += rightSpacerIndexOffset;\r\n \r\n if (newLeftSpacerIndex < 0) {\r\n newLeftSpacerIndex = 0;\r\n }\r\n \r\n if (newRightSpacerIndex > $pageLinks.length - 1) {\r\n newRightSpacerIndex = $pageLinks.length - 1;\r\n }\r\n \r\n this.$pageLinkLeftSpacer.detach();\r\n this.$pageLinkRightSpacer.detach();\r\n \r\n $pageLinks.eq(newLeftSpacerIndex).before(this.$pageLinkLeftSpacer);\r\n $pageLinks.eq(newRightSpacerIndex).after(this.$pageLinkRightSpacer);\r\n }\r\n \r\n updateFixedPageLinks() {\r\n let currentPage = this.page;\r\n let totalPages = this.totalPages;\r\n \r\n let canDoPrevious = currentPage > 0;\r\n let canDoNext = currentPage < totalPages - 1;\r\n let canDoFirst = currentPage > 0;\r\n let canDoLast = totalPages - 1 - this.currentPage > 0;\r\n \r\n this.$firstPage\r\n .toggleClass(\"pagination__page-link--disabled\", !canDoFirst)\r\n .attr(\"aria-disabled\", !canDoFirst);\r\n this.$previousPage\r\n .toggleClass(\"pagination__page-link--disabled\", !canDoPrevious)\r\n .attr(\"aria-disabled\", !canDoPrevious);\r\n this.$nextPage\r\n .toggleClass(\"pagination__page-link--disabled\", !canDoNext)\r\n .attr(\"aria-disabled\", !canDoNext);\r\n this.$lastPage\r\n .toggleClass(\"pagination__page-link--disabled\", !canDoLast)\r\n .attr(\"aria-disabled\", !canDoLast);\r\n }\r\n \r\n populatePerPageSelectorOptions() {\r\n this.$perPage.append(PER_PAGE_OPTIONS.map(v => {\r\n return this.$(\"<option />\").val(v).text(v);\r\n }));\r\n }\r\n \r\n buildPageLink(pageNumber) {\r\n let $text = this.$(\"<span class=\\\"pagination__page-number\\\"></span>\").text(pageNumber + 1);\r\n return this.$(\"<a class=\\\"pagination__page-link pagination__page-link--specific\\\" role=\\\"link\\\" tabindex=\\\"0\\\" clickable></a>\")\r\n .html($text)\r\n .attr(\"data-page\", pageNumber)\r\n .attr(\"aria-label\", this._pageNumberLabel.replace(\"{0}\", pageNumber + 1));\r\n }\r\n \r\n buildPageLinkSpacer() {\r\n return this.$(\"<span class=\\\"pagination__page-link pagination__page-link--spacer\\\" aria-hidden=\\\"true\\\">...</span>\");\r\n }\r\n \r\n get range() {\r\n return [\r\n this.firstElementIndex,\r\n this.lastElementIndex\r\n ];\r\n }\r\n \r\n get enabled() {\r\n return this.isPaginating;\r\n }\r\n \r\n set enabled(value) {\r\n let willPaginate = !!value;\r\n \r\n if (willPaginate === this.isPaginating) {\r\n return;\r\n }\r\n \r\n this.isPaginating = willPaginate;\r\n \r\n this.$paginationRoot.toggleClass(\"pagination--disabled\", !willPaginate);\r\n \r\n this.invokePaginationEnabledListeners(willPaginate);\r\n \r\n if (this.enabled) {\r\n this.populatePageLinks();\r\n this.updateFixedPageLinks();\r\n this.invokePageSelectedListenersWithCurrentState();\r\n }\r\n }\r\n \r\n get totalItems() {\r\n return this.totalNumberOfItems;\r\n }\r\n \r\n set totalItems(value) {\r\n let totalItems = value;\r\n \r\n if (this.totalItems === totalItems) {\r\n return;\r\n }\r\n \r\n let newPage = this.currentPage;\r\n \r\n if (totalItems < this.totalItems) {\r\n // Reducing number of pages = must change page if current page is too large\r\n newPage = Math.min(newPage, Math.floor(totalItems / this.perPage));\r\n }\r\n \r\n this.totalNumberOfItems = totalItems;\r\n \r\n if (this.enabled) {\r\n this.populatePageLinks();\r\n }\r\n \r\n const samePage = this.page === newPage;\r\n this.page = newPage;\r\n \r\n if (this.enabled && samePage) {\r\n this.updateFixedPageLinks();\r\n this.invokePageSelectedListenersWithCurrentState();\r\n }\r\n \r\n }\r\n \r\n get perPage() {\r\n return this.displayedNumberOfItemsPerPage;\r\n }\r\n \r\n set perPage(value) {\r\n let perPage = value;\r\n \r\n if (this.displayedNumberOfItemsPerPage === perPage) {\r\n return;\r\n }\r\n \r\n // work out offset to first displayed element for current page\r\n let newPage = Math.floor(this.firstElementIndex / perPage);\r\n \r\n this.displayedNumberOfItemsPerPage = perPage;\r\n \r\n const samePage = this.page === newPage;\r\n \r\n if (this.enabled) {\r\n this.populatePageLinks();\r\n }\r\n \r\n this.page = newPage;\r\n \r\n if (this.enabled && samePage) {\r\n this.updateFixedPageLinks();\r\n this.invokePageSelectedListenersWithCurrentState();\r\n }\r\n }\r\n \r\n get page() {\r\n return this.currentPage;\r\n }\r\n \r\n set page(value) {\r\n let newPage = value;\r\n \r\n if (newPage < 0) {\r\n newPage = 0;\r\n }\r\n \r\n if (newPage > this.totalPages - 1) {\r\n newPage = this.totalPages - 1;\r\n }\r\n \r\n if (this.currentPage === newPage) {\r\n return;\r\n }\r\n \r\n let oldPage = this.currentPage;\r\n this.currentPage = newPage;\r\n \r\n if (this.enabled) {\r\n this.updatePageLinks();\r\n this.updateFixedPageLinks();\r\n this.invokePageSelectedListenersWithCurrentState(oldPage);\r\n }\r\n }\r\n \r\n get firstElementIndex() {\r\n return this.firstElementIndexForPage(this.page, this.perPage);\r\n }\r\n \r\n get lastElementIndex() {\r\n return this.lastPossibleElementIndexForPage(this.page, this.perPage, this.totalItems);\r\n }\r\n \r\n get totalPages() {\r\n return this.totalPagesForPerPage(this.perPage, this.totalItems);\r\n }\r\n \r\n firstElementIndexForPage(page, perPage) {\r\n return page * perPage;\r\n }\r\n \r\n lastElementIndexForPage(page, perPage) {\r\n return this.firstElementIndexForPage(page + 1, perPage) - 1;\r\n }\r\n \r\n lastPossibleElementIndexForPage(page, perPage, totalNumberOfItems) {\r\n let firstElementIndex = this.firstElementIndexForPage(page, perPage);\r\n let itemsOnPage = totalNumberOfItems - 1 - (page * perPage);\r\n \r\n return firstElementIndex + Math.min(perPage - 1, Math.max(0, itemsOnPage));\r\n }\r\n \r\n totalPagesForPerPage(perPage, totalNumberOfItems) {\r\n return Math.ceil(totalNumberOfItems / perPage);\r\n }\r\n \r\n addPageSelectedListener(callback) {\r\n if (this._onPageSelectedListeners.indexOf(callback) === -1) {\r\n this._onPageSelectedListeners.push(callback);\r\n }\r\n }\r\n \r\n invokePageSelectedListeners(event) {\r\n for (let i = 0, x = this._onPageSelectedListeners.length; i < x; i++) {\r\n this._onPageSelectedListeners[i].bind(this)(event);\r\n }\r\n }\r\n \r\n invokePageSelectedListenersWithCurrentState(oldPage) {\r\n let event = {\r\n newPage: this.currentPage,\r\n range: this.range\r\n };\r\n \r\n if (typeof oldPage !== typeof undefined) {\r\n event.oldPage = oldPage\r\n }\r\n \r\n this.invokePageSelectedListeners(event);\r\n }\r\n \r\n addPaginationEnabledListener(callback) {\r\n if (this._onPaginationEnabledListeners.indexOf(callback) === -1) {\r\n this._onPaginationEnabledListeners.push(callback);\r\n }\r\n }\r\n \r\n invokePaginationEnabledListeners(event) {\r\n for (let i = 0, x = this._onPaginationEnabledListeners.length; i < x; i++) {\r\n this._onPaginationEnabledListeners[i].bind(this)(event);\r\n }\r\n }\r\n}\r\nexport default PaginationControls;","'use strict';\nmodule.exports = {};\n","'use strict';\nvar 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","'use strict';\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 = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\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","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\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 = !isObject(IteratorPrototype) || 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 defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar 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","'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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\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 setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\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/iterator-create-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 defineBuiltIn = require('../internals/define-built-in');\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 && KIND in IterablePrototype) return IterablePrototype[KIND];\n\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 }\n\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 defineBuiltIn(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 defineBuiltIn(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 defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\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/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\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 index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], 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 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","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\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 defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// 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","'use strict';\nvar 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 setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\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 setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\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","class ListStatsControls {\r\n constructor($statsRoot) {\r\n this.$statsRoot = $statsRoot;\r\n\r\n this.totalFormatString = this.$statsRoot.data(\"totalText\");\r\n this.rangedFormatString = this.$statsRoot.data(\"rangedText\");\r\n this.emptyString = this.$statsRoot.data(\"emptyText\");\r\n\r\n this.isShowingRange = false;\r\n\r\n this.values = {\r\n total: 0,\r\n numberVisible: 0,\r\n start: 0\r\n };\r\n }\r\n\r\n update() {\r\n let formatString = this.totalFormatString;\r\n\r\n if (this.values.total === 0 && this.emptyString) {\r\n formatString = this.emptyString;\r\n } else if (this.values.numberVisible > 0 && this.values.total > this.values.numberVisible && this.rangedFormatString) {\r\n formatString = this.rangedFormatString;\r\n }\r\n\r\n this.$statsRoot.text(this.replacePlaceholders(formatString));\r\n }\r\n\r\n replacePlaceholders(input) {\r\n let keys = Object.keys(this.values);\r\n\r\n for (let i = 0; i < keys.length; i++) {\r\n let key = keys[i];\r\n input = input.replace(`{${key}}`, this.values[key]);\r\n }\r\n\r\n input = input.replace(\"{end}\", this.values.start + this.values.numberVisible - 1);\r\n\r\n return input;\r\n }\r\n\r\n set start(value) {\r\n this.values.start = value;\r\n }\r\n\r\n set numberVisible(value) {\r\n this.values.numberVisible = value;\r\n }\r\n\r\n set total(value) {\r\n this.values.total = value;\r\n }\r\n\r\n setVisibility(value) {\r\n this.$statsRoot.toggleClass(\"display-none\", !value);\r\n }\r\n}\r\nexport default ListStatsControls;\r\n","class StationListItem {\r\n constructor(options) {\r\n this.station = options.station;\r\n this.stationDetailComponent = null;\r\n this.$ = options.$;\r\n this.stationDetailComponentOptions = options.stationDetailComponentOptions;\r\n \r\n this.$element = this.buildHtml(options.stationDetailComponent);\r\n this.$element.data(\"list-item\", this);\r\n this.$element.toggleClass(\"display-none\", true);\r\n \r\n this.relevant = false;\r\n this._visible = false;\r\n }\r\n \r\n get visible() {\r\n return this._visible;\r\n }\r\n \r\n set visible(value) {\r\n let willBeVisible = !!value;\r\n \r\n this.$element.toggleClass(\"display-none\", !willBeVisible);\r\n \r\n this._visible = willBeVisible;\r\n }\r\n \r\n set highlight(value) {\r\n this.$element.toggleClass(\"station-list__item--highlighted\", !!value);\r\n }\r\n \r\n update(station) {\r\n if (this.stationDetailComponent !== null) {\r\n this.stationDetailComponent.update(station);\r\n }\r\n \r\n this.station = station;\r\n }\r\n \r\n buildHtml(stationDetailComponent) {\r\n let options = this.stationDetailComponentOptions;\r\n options.station = this.station;\r\n this.stationDetailComponent = new stationDetailComponent(options);\r\n let html = this.stationDetailComponent.render();\r\n return this.$(html);\r\n }\r\n}\r\n\r\nexport default StationListItem;","import PaginationControls from \"./PaginationControls\";\r\nimport ListStatsControls from \"./ListStatsControls\";\r\nimport Throttler from \"../../../Utils/js/Throttler\";\r\nimport StationListItem from \"./StationListItem\";\r\n\r\nconst widthElementSelectors = [\r\n \".station-parameter__title\",\r\n \".station-parameter__value\",\r\n \".station-parameter__date\"\r\n];\r\n\r\nclass StationListView {\r\n constructor(options) {\r\n this._stationDetailComponent = options.stationDetailComponent;\r\n this.stationDetailComponentOptions = options.stationDetailComponentOptions;\r\n this.$scrollingContainer = options.$scrollingContainer;\r\n this.$container = this.$scrollingContainer.find(\".station-list\");\r\n this.$listView = this.$container.find(\".station-list__container\");\r\n window.$ = this.$ = options.$; \r\n \r\n this.stations = {};\r\n this.stationIds = []; // Used for list sequencing/order\r\n \r\n this._currentHighlightedStationId = null;\r\n \r\n this._onListItemMouseenterListeners = [];\r\n this._onListItemMouseleaveListeners = [];\r\n \r\n this.updateWidthsThrottler = new Throttler(500);\r\n this.firstUpdateWidths = true;\r\n this.updateWidths = this.updateWidths.bind(this);\r\n \r\n this.$listView.on(\"mouseenter\",\r\n \".station-list__item\",\r\n ev => {\r\n ev.preventDefault();\r\n \r\n this.invokeListItemMouseenterListeners(this.$(ev.currentTarget).data(\"list-item\"), ev);\r\n })\r\n \r\n this.$listView.on(\"mouseleave\",\r\n \".station-list__item\",\r\n ev => {\r\n ev.preventDefault();\r\n \r\n this.invokeListItemMouseleaveListeners(this.$(ev.currentTarget).data(\"list-item\"), ev);\r\n })\r\n \r\n this.listStats = new ListStatsControls(this.$container.find(\".list-stats\"));\r\n \r\n this.pagination = new PaginationControls( {\r\n $paginationRoot: this.$container.find(\".pagination\"),\r\n pageNumberLabel: options.pageNumberLabel,\r\n $: this.$\r\n });\r\n this.pagination.addPageSelectedListener((page) => {\r\n this.updateView();\r\n });\r\n this.pagination.addPaginationEnabledListener((enabled) => {\r\n this.updateView();\r\n });\r\n \r\n this.$(window).resize(ev => {\r\n this.scheduleUpdateWidths();\r\n });\r\n \r\n this.$listView.on(\"layoutChanged\", ev => {\r\n // Event emitted from StationDetailComponent when its layout changes, usually when you click the \"show more\" button\r\n this.updateWidths();\r\n });\r\n }\r\n \r\n showRange(range) {\r\n let relevantStationIndex = 0;\r\n \r\n for (let i = 0; i < this.stationIds.length; i++) {\r\n let stationId = this.stationIds[i];\r\n let station = this.stations[stationId];\r\n \r\n if (station.visible && !station.relevant) {\r\n station.visible = false;\r\n } else if (station.relevant) {\r\n // If this station is allowed to be visible (\"relevant\")\r\n // Check if its index amongst other \"relevant\" stations is contained within the page.range\r\n if (relevantStationIndex >= range[0] && relevantStationIndex <= range[1]) {\r\n // If so, make it visible\r\n if (!station.visible) {\r\n station.visible = true;\r\n }\r\n } else {\r\n // Otherwise, it's on another page\r\n if (station.visible) {\r\n station.visible = false;\r\n }\r\n }\r\n \r\n relevantStationIndex++;\r\n }\r\n }\r\n }\r\n \r\n scheduleUpdateWidths() {\r\n if (this.firstUpdateWidths) {\r\n this.updateWidths();\r\n } else {\r\n this.updateWidthsThrottler.debounce(this.updateWidths);\r\n }\r\n }\r\n \r\n updateWidths() {\r\n const items = this.$listView.get(0);\r\n \r\n let anyUpdated = false;\r\n \r\n for (let i = 0; i < widthElementSelectors.length; i++) {\r\n const selector = widthElementSelectors[i];\r\n const width = this.updateWidthsOfElements(items.querySelectorAll(selector));\r\n \r\n if (width > 0) {\r\n anyUpdated = true;\r\n }\r\n }\r\n \r\n if (this.firstUpdateWidths) {\r\n this.firstUpdateWidths = !anyUpdated;\r\n }\r\n }\r\n \r\n updateWidthsOfElements(elements) {\r\n let maxWidthOfElements = 0;\r\n \r\n if (elements.length === 0) {\r\n return 0;\r\n }\r\n \r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n element.style.width = \"\";\r\n }\r\n \r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n maxWidthOfElements = Math.max(maxWidthOfElements, element.clientWidth);\r\n }\r\n \r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n element.style.width = maxWidthOfElements + \"px\";\r\n }\r\n \r\n return maxWidthOfElements;\r\n }\r\n \r\n setHighlightedStationId(stationId) {\r\n if (stationId === null) {\r\n if (this._currentHighlightedStationId !== null && this._currentHighlightedStationId in this.stations) {\r\n this.stations[this._currentHighlightedStationId].highlight = false;\r\n }\r\n \r\n this._currentHighlightedStationId = null;\r\n } else if (this._currentHighlightedStationId !== stationId) {\r\n if (this._currentHighlightedStationId !== null && this._currentHighlightedStationId in this.stations) {\r\n this.stations[this._currentHighlightedStationId].highlight = false;\r\n }\r\n \r\n this._currentHighlightedStationId = stationId;\r\n let station = this.stations[this._currentHighlightedStationId];\r\n station.highlight = true;\r\n \r\n // Scroll the scrollingContainer to the top edge of the station detail $element\r\n let scrollTop = station.$element.offset().top -\r\n this.$scrollingContainer.offset().top +\r\n this.$scrollingContainer.scrollTop();\r\n \r\n // Center it in the middle\r\n scrollTop -= (this.$scrollingContainer.outerHeight() / 2) - (station.$element.outerHeight() / 2);\r\n \r\n this.$scrollingContainer.animate({\r\n scrollTop: scrollTop\r\n }, 8 * 1000 / 60);\r\n }\r\n }\r\n \r\n addStations(stations) {\r\n for (let i = 0; i < stations.length; i++) {\r\n this.addStation(stations[i], true);\r\n }\r\n \r\n this.updateView();\r\n }\r\n \r\n addStation(station, ignoreViewUpdate) {\r\n let listItem = new StationListItem({\r\n station: station, \r\n stationDetailComponent: this._stationDetailComponent,\r\n $: this.$,\r\n stationDetailComponentOptions: this.stationDetailComponentOptions\r\n });\r\n let $element = listItem.$element;\r\n \r\n this.$listView.append($element);\r\n \r\n this.stationIds.push(station.id);\r\n this.stations[station.id] = listItem;\r\n \r\n if (!ignoreViewUpdate) {\r\n this.updateView();\r\n }\r\n }\r\n \r\n removeStation(id, ignoreViewUpdate) {\r\n if (!(id in this.stations)) {\r\n return;\r\n }\r\n \r\n let listItem = this.stations[id];\r\n listItem.$element.remove();\r\n \r\n this.stationIds = this.stationIds.filter(_id => id !== _id);\r\n delete this.stations[id];\r\n \r\n if (!ignoreViewUpdate) {\r\n this.updateView();\r\n }\r\n }\r\n \r\n clearStations() {\r\n this.$listView.empty();\r\n this.stations = {};\r\n \r\n this.updateView();\r\n }\r\n \r\n get relevantStations() {\r\n return this.stationIds.map(stationId => this.stations[stationId]).filter(s => s.relevant);\r\n }\r\n \r\n updateStationRelevance(stationId, willBeRelevant, ignoreViewUpdate) {\r\n this.stations[stationId].relevant = willBeRelevant;\r\n \r\n if (!ignoreViewUpdate) {\r\n this.updateView();\r\n }\r\n }\r\n \r\n shouldStationBeRelevant(station, mapExtent) {\r\n let withinMapExtent = true;\r\n \r\n if (typeof mapExtent !== typeof {}) {\r\n mapExtent = null;\r\n }\r\n \r\n if (mapExtent !== null) {\r\n withinMapExtent = mapExtent.contains(station.point);\r\n }\r\n \r\n return withinMapExtent;\r\n }\r\n \r\n updateAllStationsRelevance(filteredStations, mapExtent) {\r\n for (let i = 0; i < this.stationIds.length; i++) {\r\n let stationId = this.stationIds[i];\r\n this.updateStationRelevance(stationId, false, true);\r\n }\r\n \r\n for (let i = 0; i < filteredStations.length; i++) {\r\n let station = filteredStations[i];\r\n \r\n this.updateStationRelevance(station.id, this.shouldStationBeRelevant(station, mapExtent), true);\r\n }\r\n \r\n this.updateView();\r\n }\r\n \r\n updateView() {\r\n let relevantStations = this.relevantStations;\r\n \r\n this.pagination.totalItems = relevantStations.length;\r\n this.listStats.total = relevantStations.length;\r\n \r\n if (!this.pagination.enabled) {\r\n this.listStats.numberVisible = 0;\r\n \r\n for (let i = 0; i < this.stationIds.length; i++) {\r\n let station = this.stations[this.stationIds[i]];\r\n \r\n station.visible = station.relevant;\r\n }\r\n } else {\r\n const range = this.pagination.range\r\n this.listStats.numberVisible = range[1] - range[0] + 1;\r\n this.listStats.start = range[0] + 1;\r\n \r\n this.showRange(this.pagination.range);\r\n }\r\n \r\n this.listStats.update();\r\n this.updateWidths();\r\n }\r\n \r\n updateStations(stationsById) {\r\n let idsOfStationsInListView = this.stationIds;\r\n let idsToRemove = [];\r\n \r\n for (let i = 0; i < idsOfStationsInListView.length; i++) {\r\n let id = idsOfStationsInListView[i];\r\n \r\n if (id in stationsById) {\r\n this.stations[id].update(stationsById[id]);\r\n } else {\r\n console.info(`station id ${id} no longer in data result. Need to remove.`);\r\n idsToRemove.push(id);\r\n }\r\n }\r\n \r\n for (let i = 0; i < idsToRemove.length; i++) {\r\n let idToRemove = idsToRemove[i];\r\n this.removeStation(idToRemove, true);\r\n }\r\n \r\n let newStationsInData = Object.keys(stationsById).filter(id => !(id in this.stations)).map(id => stationsById[id]);\r\n \r\n for (let i = 0; i < newStationsInData.length; i++) {\r\n let stationToAdd = newStationsInData[i];\r\n this.addStation(stationToAdd, true);\r\n }\r\n \r\n this.updateView();\r\n }\r\n \r\n addListItemMouseenterListener(callback) {\r\n if (this._onListItemMouseenterListeners.indexOf(callback) === -1) {\r\n this._onListItemMouseenterListeners.push(callback);\r\n }\r\n }\r\n \r\n invokeListItemMouseenterListeners(listItem, event) {\r\n for (let i = 0, x = this._onListItemMouseenterListeners.length; i < x; i++) {\r\n this._onListItemMouseenterListeners[i](listItem, event);\r\n }\r\n }\r\n \r\n addListItemMouseleaveListener(callback) {\r\n if (this._onListItemMouseleaveListeners.indexOf(callback) === -1) {\r\n this._onListItemMouseleaveListeners.push(callback);\r\n }\r\n }\r\n \r\n invokeListItemMouseleaveListeners(listItem, event) {\r\n for (let i = 0, x = this._onListItemMouseleaveListeners.length; i < x; i++) {\r\n this._onListItemMouseleaveListeners[i](listItem, event);\r\n }\r\n }\r\n}\r\n\r\nexport default StationListView;","'use strict';\nvar $ = require('../internals/export');\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 doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\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');\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 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 || !arrayMethodHasSpeciesSupport('concat');\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, arity: 1, 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 doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\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 $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, {\n forEach: forEach\n});\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 nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject !== Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar $ = require('../internals/export');\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 nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = 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 nativeSlice(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 arraySlice = require('../internals/array-slice');\n\nvar floor = Math.floor;\n\nvar sort = function (array, comparefn) {\n var length = array.length;\n\n if (length < 8) {\n // insertion sort\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 }\n } else {\n // merge sort\n var middle = floor(length / 2);\n var left = sort(arraySlice(array, 0, middle), comparefn);\n var right = sort(arraySlice(array, middle), 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 }\n }\n\n return array;\n};\n\nmodule.exports = sort;\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","'use strict';\nvar UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\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 deletePropertyOrThrow = require('../internals/delete-property-or-throw');\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 nativeSort = 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 ? nativeSort(array) : nativeSort(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 = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar 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","'use strict';\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');\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","'use strict';\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 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","'use strict';\nvar $ = 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","'use strict';\nvar $ = 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\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\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\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 inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar create = require('../internals/object-create');\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 getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\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 exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper 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 || String(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 = create(null);\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 += 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 = getRegExpFlags(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 for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar 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","const ParameterType = Object.freeze({\r\n river: 1,\r\n rainfall: 2,\r\n tidal: 3\r\n});\r\n\r\nRegExp.escape = function (s) {\r\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n};\r\n\r\nconst Html = {\r\n escape: function (unsafe) {\r\n return unsafe // From https://stackoverflow.com/a/6234804\r\n .replace(/&/g, \"&\")\r\n .replace(/</g, \"<\")\r\n .replace(/>/g, \">\")\r\n .replace(/\"/g, \""\")\r\n .replace(/'/g, \"'\");\r\n },\r\n wrap: function wrap(item, searchText, startTag, endTag) {\r\n var regex = new RegExp(RegExp.escape(Html.escape(searchText)), \"gi\");\r\n return Html.escape(item).replace(regex, (match) => `${startTag}${match}${endTag}`);\r\n },\r\n renderTemplate: function (templateHtmlString, componentMap) {\r\n /*\r\n <div data-component=\"myComponent\"></div>\r\n \r\n This div would be replaced with the \"myComponent\" component in componentMap by using myComponent's render() method,\r\n which must return a DOMElement or an array of them.\r\n */\r\n let $dom = $(templateHtmlString);\r\n let root = $(\"<div></div>\")[0];\r\n\r\n $(root).append($dom);\r\n\r\n let componentKeys = Object.keys(componentMap);\r\n for (let i = 0; i < componentKeys.length; i++) {\r\n let key = componentKeys[i];\r\n let component = componentMap[key];\r\n\r\n let divToReplace = root.querySelector(`[data-component=\"${key}\"]`);\r\n\r\n let domToReplaceWith = component.render ? component.render() : $(`<p>MISSING COMPONENT ${key}</p>`)[0];\r\n\r\n $(divToReplace).replaceWith(domToReplaceWith);\r\n }\r\n\r\n return $(root).children().get();\r\n },\r\n staticComponent: function (element) {\r\n return {\r\n element: element,\r\n render: function () {\r\n return element;\r\n }\r\n };\r\n }\r\n\r\n};\r\n\r\nconst Language = {\r\n // Usage: Text.localise(station.name, s => s.english, s => s.welsh)\r\n // This function will try to use known defaults (like .english, .en, .welsh, .cymraeg. .cy)\r\n text: function (object, englishFn, welshFn) {\r\n if (typeof englishFn === typeof undefined) {\r\n let englishProperties = [\"english\", \"en\"];\r\n\r\n for (let i = 0; i < englishProperties.length; i++) {\r\n if (englishProperties[i] in object) {\r\n englishFn = a => a[englishProperties[i]];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (typeof welshFn === typeof undefined) {\r\n let welshProperties = [\"welsh\", \"cymraeg\", \"cy\"];\r\n\r\n for (let i = 0; i < welshProperties.length; i++) {\r\n if (welshProperties[i] in object) {\r\n welshFn = a => a[welshProperties[i]];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (typeof englishFn === typeof undefined || typeof welshFn === typeof undefined) {\r\n throw new Error(`Undefined language selector: EN: ${!!englishFn}, CY: ${!!welshFn}`);\r\n }\r\n\r\n const select = (twoLetterLanguageCode, object, englishFn, welshFn) => {\r\n switch (twoLetterLanguageCode.toLowerCase()) {\r\n case \"en\":\r\n return englishFn(object);\r\n case \"cy\":\r\n return welshFn(object);\r\n default:\r\n console.warn(`No valid page language! ${twoLetterLanguageCode}`);\r\n return englishFn(object);\r\n }\r\n };\r\n\r\n return select(document.documentElement.lang || \"en\", object, englishFn, welshFn);\r\n }\r\n};\r\n\r\nclass StationDetailComponent {\r\n constructor(options) {\r\n this.station = options.station;\r\n this.parametersComponents = {};\r\n this._dataExpanded = false;\r\n this.element = null;\r\n this.isPopup = options.isPopup;\r\n\r\n this.LinkBuilder = options.LinkBuilder;\r\n this.moment = options.moment;\r\n this.Constants = options.Constants; //TRANSPARENT_PIXEL_DATA_URI\r\n this.text = options.text; //stationTitle: Language.text(station.title)\r\n //stationStatusText: Language.text(this.station.statusText)\r\n //lessData: Resource.LessData\r\n //viewLessData: Resource.ViewLessData\r\n //moreData: Resource.MoreData\r\n //viewMoreData: Resource.ViewMoreData\r\n //viewGraph: Resource.ViewGraph\r\n //graph: Resource.Graph\r\n //upToDateReadingNotAvailable: Resource.UpToDateReadingNotAvailable\r\n //rainfallHelpText: Resource.RainfallHelpText\r\n //rainfallHelpText: Resource.RainfallHelpText\r\n //viewRiverLevelGraph: Resource.ViewRiverLevelGraph\r\n //viewRainfallLevelGraph: Resource.ViewRainfallLevelGraph\r\n //viewTidalLevelGraph: Resource.ViewTidalLevelGraph\r\n //offline: resource.Offline\r\n //levelFalling: resource.LevelFalling\r\n //levelSteady: resource.LevelSteady\r\n //levelRising: resource.LevelRising\r\n //rainfallDry: resource.RainfallDry\r\n //rainfallLightRain: resource.RainfallLightRain\r\n //rainfallModerateRain: resource.RainfallModerateRain\r\n //rainfallHeavyRain: resource.RainfallHeavyRain\r\n\r\n this.text.stationTitle = Language.text(this.station.title);\r\n this.text.stationStatusText = Language.text(this.station.statusText);\r\n }\r\n\r\n set dataExpanded(value) {\r\n this._dataExpanded = value;\r\n this._updateDataExpandedViewState();\r\n }\r\n\r\n get dataExpanded() {\r\n return this._dataExpanded;\r\n }\r\n\r\n update(station) {\r\n this.station = station;\r\n\r\n // Update station details\r\n let statusImage = this.getStationStatusImage();\r\n $(this.components.statusImage.element).replaceWith(statusImage);\r\n this.components.statusImage.element = statusImage;\r\n\r\n let statusText = this.getStationStatusSpan();\r\n $(this.components.statusSpan.element).replaceWith(statusText);\r\n this.components.statusSpan.element = statusText;\r\n\r\n // Update parameter details\r\n for (let i = 0; i < station.parameters.length; i++) {\r\n let parameter = station.parameters[i];\r\n\r\n if (!(parameter.id in this.parametersComponents)) {\r\n continue;\r\n }\r\n\r\n let parameterComponents = this.parametersComponents[parameter.id];\r\n \r\n let parameterDetails = this.getStationParameterDetailElements(parameter);\r\n $(parameterComponents.details.element).replaceWith(parameterDetails);\r\n parameterComponents.details.element = parameterDetails;\r\n\r\n let parameterStatusImageContainer = this.getStationParameterStatusImageContainer(parameter);\r\n $(parameterComponents.statusImageContainer.element).replaceWith(parameterStatusImageContainer);\r\n parameterComponents.statusImageContainer.element = parameterStatusImageContainer;\r\n }\r\n }\r\n\r\n //private\r\n _updateDataExpandedViewState() {\r\n if (this.element === null) {\r\n return;\r\n }\r\n let $station = $(this.element);\r\n let $graphButton = $station.find(\".station-detail__button--graph\");\r\n let $button = $station.find(\".station-detail__button--show-more\");\r\n let $parameters = $station.find(\".station-parameter\");\r\n\r\n if (this._dataExpanded) {\r\n $button.html(\r\n `<span class=\"mobile-only\">${this.text.lessData}</span>\r\n <span class=\"no-mobile\">${this.text.viewLessData}</span>`\r\n );\r\n $button.addClass(\"station-detail__button--show-more-minus\");\r\n $graphButton.hide();\r\n\r\n $parameters.each((index, item) => {\r\n let $parameter = $(item);\r\n let $parameterGraphButton = $parameter.find(\".station-parameter__button--graph\");\r\n\r\n $parameter.removeClass(\"station-parameter--hidden\");\r\n $parameterGraphButton.removeClass(\"station-parameter__button--hidden\");\r\n });\r\n\r\n } else {\r\n $button.html(\r\n `<span class=\"mobile-only\">${this.text.moreData}</span>\r\n <span class=\"no-mobile\">${this.text.viewMoreData}</span>`\r\n );\r\n\r\n $graphButton.show();\r\n $button.removeClass(\"station-detail__button--show-more-minus\");\r\n\r\n $parameters.each((index, item) => {\r\n let $parameter = $(item);\r\n let isFirst = index === 0;\r\n let $parameterGraphButton = $parameter.find(\".station-parameter__button--graph\");\r\n\r\n if (!isFirst) {\r\n $parameter.addClass(\"station-parameter--hidden\");\r\n }\r\n $parameterGraphButton.addClass(\"station-parameter__button--hidden\");\r\n });\r\n }\r\n\r\n $station.trigger(\"layoutChanged\");\r\n }\r\n\r\n //private\r\n _renderParameter(station, parameter, isPopup, isHidden) {\r\n var modifier = this.isPopup ? \"station-parameter--popup \" : \"\";\r\n modifier += isHidden ? \"station-parameter--hidden\" : \"\";\r\n \r\n this.parametersComponents[parameter.id] = {\r\n details: Html.staticComponent(this.getStationParameterDetailElements(parameter)),\r\n statusImageContainer: Html.staticComponent(this.getStationParameterStatusImageContainer(parameter)),\r\n };\r\n\r\n var parameterTypeIcon = this.getParameterTypeIcon(parameter);\r\n var graphButtonTooltip = this.getGraphButtonText(parameter) || \"\";\r\n var graphButtonModifier = isPopup ? \" station-parameter__button--hidden\" : \"\";\r\n\r\n return Html.renderTemplate(` \r\n <li class=\"station-parameter ${modifier}\"> \r\n <img class=\"station-parameter__icon station-parameter__icon--type\" \r\n alt=\"\" \r\n aria-hidden=\"true\"` /* Hidden as the image label is repeated immediately after the icon */ \r\n + `src=\"${Html.escape(parameterTypeIcon.src)}\" />\r\n \r\n <div data-component=\"details\"></div>\r\n\r\n <div class=\"station-parameter__right-container\">\r\n <div data-component=\"statusImageContainer\"></div>\r\n <span class=\"sro\">, </span>\r\n <a class=\"button button--primary station-parameter__button station-parameter__button--graph ${graphButtonModifier}\" \r\n href=\"${this.LinkBuilder.linkToGraph(station, parameter.typeId)}\" \r\n class=\"station-parameter__button station-parameter__button--graph ${graphButtonModifier}\"\r\n data-tooltip=\"${graphButtonTooltip}\"\r\n aria-label=\"${graphButtonTooltip}: ${this.text.stationTitle}\"\r\n >\r\n <span class=\"${isPopup ? \"sro\" : \"no-mobile\"}\">${this.text.viewGraph}</span>\r\n </a>\r\n </div>\r\n </li>\r\n `, this.parametersComponents[parameter.id])[0];\r\n }\r\n\r\n //overridden\r\n render() {\r\n if (this.element !== null) {\r\n return this.element;\r\n }\r\n\r\n let station = this.station;\r\n let isPopup = this.isPopup;\r\n var modifier = isPopup ? \"station-detail--popup\" : \"station-list__item\";\r\n\r\n var showMore = station.parameters.length > 1;\r\n var graphParameterType = null;\r\n var showMoreHtml = \"\";\r\n var graphButtonHtml = \"\";\r\n let graphButtonTooltip = \"\";\r\n let stationComment = \"\";\r\n if (station.parameters.length > 0) {\r\n graphParameterType = station.parameters[0].typeId;\r\n graphButtonTooltip = this.getGraphButtonText(station.parameters[0]) || \"\";\r\n }\r\n\r\n if (showMore) {\r\n showMoreHtml =\r\n `<button class=\"station-detail__button station-detail__button--show-more\">\r\n <span class=\"mobile-only\">${this.text.moreData}</span>\r\n <span class=\"no-mobile\">${this.text.viewMoreData}</span>\r\n </button>`;\r\n }\r\n\r\n if (isPopup && graphParameterType !== null) {\r\n graphButtonHtml = `\r\n <a class=\"station-detail__button station-detail__button--graph button\" href=\"${this.LinkBuilder.linkToGraph(station, graphParameterType)}\" data-tooltip=\"${graphButtonTooltip}\">\r\n <span class=\"mobile-only\">${this.text.graph}</span>\r\n <span class=\"no-mobile\">${this.text.viewGraph}</span>\r\n </a>\r\n `;\r\n }\r\n\r\n if (!isPopup && station.comment) {\r\n stationComment = `${station.comment}`;\r\n }\r\n\r\n //design state that if it is a list view item and only has one parameter then hide the footer.\r\n let hideFooter = !isPopup && station.parameters.length < 2 && !station.comment;\r\n\r\n let parameters = [];\r\n station.parameters.forEach((param, index) => {\r\n var isHidden = index > 0;\r\n parameters.push(this._renderParameter(station, param, isPopup, isHidden));\r\n });\r\n\r\n let footerHtml = `\r\n <div class=\"station-detail__footer\">\r\n ${stationComment}\r\n ${graphButtonHtml}\r\n ${showMoreHtml}\r\n </div>`;\r\n\r\n if (hideFooter) {\r\n footerHtml = \"\";\r\n }\r\n\r\n this.components = {\r\n statusSpan: Html.staticComponent(this.getStationStatusSpan()),\r\n statusImage: Html.staticComponent(this.getStationStatusImage()),\r\n parameters: Html.staticComponent(parameters)\r\n }\r\n\r\n let htmlString = `\r\n <div class=\"station-detail ${modifier}\">\r\n <div class=\"station-detail__header\">\r\n <div class=\"station-detail__icon-frame\">\r\n <div data-component=\"statusImage\"></div>\r\n </div>\r\n <a href=\"${this.LinkBuilder.linkToGraph(station)}\" class=\"station-detail__heading\">\r\n ${this.text.stationTitle}\r\n </a>\r\n <div data-component=\"statusSpan\"></div>\r\n </div>\r\n\r\n <ul class=\"station-detail__parameters-container\">\r\n <div data-component=\"parameters\"></div>\r\n </ul>\r\n ${footerHtml}\r\n </div>\r\n `;\r\n \r\n this.element = Html.renderTemplate(htmlString, this.components)[0];\r\n this.element.component = this;\r\n return this.element;\r\n }\r\n\r\n getStationStatusSpan() {\r\n return $(\"<span class=\\\"station-detail__state\\\"></span>\").text(this.text.stationStatusText)[0];\r\n }\r\n\r\n getStationStatusImage() {\r\n let icon = this.getStationTypeIconFromParameters(this.station);\r\n return $(\"<img class=\\\"station-detail__icon\\\" />\")\r\n .attr(\"src\", icon.src)\r\n .attr(\"alt\", \"\");\r\n }\r\n\r\n getStationParameterDetailElements(parameter) {\r\n let div = $(\"<div class=\\\"station-parameter__left-container station-parameter__details\\\"></div>\");\r\n\r\n if (parameter.status === 0) {\r\n div.append($(\"<span class=\\\"station-parameter__notice\\\"></span>\").text(this.text.upToDateReadingNotAvailable));\r\n } else {\r\n div.append([\r\n $(\"<span class=\\\"station-parameter__title\\\"></span>\").text(Language.text(parameter.typeText))[0],\r\n \"<span class=\\\"sro\\\">, </span>\",\r\n $(\"<span class=\\\"station-parameter__value\\\"></span>\").text((Math.round(parameter.latestValue * 1000) / 1000) + parameter.unit)[0],\r\n \"<span class=\\\"sro\\\">, </span>\",\r\n $(\"<span class=\\\"station-parameter__date\\\"></span>\")\r\n .text(this.moment(parameter.latestTime).format('DD/MM/YYYY HH:mm'))\r\n .append(\"<span class=\\\"sro\\\">, </span>\")\r\n .append(parameter.typeId === ParameterType.rainfall\r\n ? $([\r\n document.createTextNode(' '),\r\n $(\"<i class=\\\"info-icon\\\"></i>\").attr(\"data-tooltip\", this.text.rainfallHelpText).attr(\"aria-label\", this.text.ainfallHelpText).get(0),\r\n $(\"<span class=\\\"sro\\\">, </span>\").get(0)\r\n ])\r\n : \"\")\r\n .get(0),\r\n ]);\r\n }\r\n\r\n return div[0];\r\n }\r\n\r\n getStationParameterStatusImageContainer(parameter) {\r\n let parameterStatusIcon = this.getParameterStatusIcon(parameter, \"blue\");\r\n \r\n if (!parameterStatusIcon) {\r\n parameterStatusIcon = { \r\n src: this.Constants.TRANSPARENT_PIXEL_DATA_URI,\r\n alt: this.getParameterStatusText(parameter)\r\n };\r\n }\r\n\r\n let img = $(\"<img class=\\\"station-parameter__icon station-parameter__icon--state\\\" />\")\r\n .attr(\"src\", parameterStatusIcon.src)\r\n .attr(\"alt\", parameterStatusIcon.alt);\r\n\r\n\r\n let div = $(\"<div class=\\\"station-parameter__img-container\\\"></div>\")\r\n .attr(\"data-tooltip\", parameterStatusIcon.alt)\r\n .append(img);\r\n\r\n return div[0];\r\n }\r\n\r\n //imported\r\n getStationTypeIconFromParameters(station) {\r\n let parameters = station.parameters.slice(0); // clone array before sorting\r\n\r\n if (parameters.length === 0) {\r\n return this.getStationStatusIcon(station);\r\n }\r\n\r\n parameters.sort((a, b) => a.typeId - b.typeId);\r\n\r\n return {\r\n src: `/images/pins/${parameters.length}-${parameters.map(p => p.typeId).join(\"__\")}--horizontal.svg`,\r\n alt: parameters.map(p => Language.text(p.typeText)).join(\" / \")\r\n };\r\n }\r\n\r\n getParameterTypeIcon(parameter) {\r\n let type = parameter.typeId;\r\n\r\n if (!type) {\r\n throw new Error(\"Station parameter's type is undefined\");\r\n }\r\n\r\n return {\r\n src: `/images/pins/1-${type}--horizontal.svg`,\r\n alt: Language.text(parameter.typeText)\r\n };\r\n }\r\n\r\n getParameterStatusIcon(parameter, colour) {\r\n return {\r\n src: `/images/status/parameter-${parameter.status}-${colour}.svg`,\r\n alt: this.getParameterStatusText(parameter)\r\n };\r\n }\r\n\r\n getParameterStatusText(parameter) {\r\n let statuses = {\r\n 0: this.text.offline,\r\n 1: this.text.levelFalling,\r\n 2: this.text.levelSteady,\r\n 3: this.text.levelRising,\r\n 4: this.text.rainfallDry,\r\n 5: this.text.rainfallLightRain,\r\n 6: this.text.rainfallModerateRain,\r\n 7: this.text.rainfallHeavyRain\r\n };\r\n\r\n if (!statuses[parameter.status]) {\r\n return null;\r\n }\r\n\r\n const statusText = statuses[parameter.status];\r\n\r\n if (statusText === null) {\r\n return null;\r\n }\r\n\r\n let cleanStatusText = \"\";\r\n if (statusText.indexOf(\"level\") >= 0) {\r\n cleanStatusText = Resource.Water + \" \" + statusText.replace(\"--\", \" \");\r\n } else {\r\n cleanStatusText = statusText.replace(\"--\", \" \");\r\n }\r\n\r\n return cleanStatusText;\r\n }\r\n\r\n getGraphButtonText(parameter) {\r\n let types = {\r\n 1: this.text.viewRiverLevelGraph,\r\n 2: this.text.viewRainfallLevelGraph,\r\n 3: this.text.viewTidalLevelGraph\r\n };\r\n\r\n if (!types[parameter.typeId]) {\r\n return null;\r\n }\r\n\r\n return types[parameter.typeId];\r\n }\r\n \r\n}\r\n\r\nexport default StationDetailComponent;","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\nvar 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","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\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/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-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 defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\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/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\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';\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 RangeError = global.RangeError;\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\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 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 fallbackDefineProperty = 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};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : 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, nativeObjectCreate(null)));\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 (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 new 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 var $this = this === undefined ? global : this;\n if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor($this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty($this, tag, descriptor);\n }\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 defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($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 defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: 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 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});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\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 fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\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 WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\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// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = 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\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\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 result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\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 defineBuiltInAccessor = require('../internals/define-built-in-accessor');\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('description detection')) === 'Symbol(description detection)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar 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 + '</' + tag + '>';\n};\n","'use strict';\nvar 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","'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","import attributes from \"../../../Constants/js/attributes\";\r\n\r\nconst NotificationPopupItemHandler = (function(){\r\n\r\n function clear(){\r\n let ul = document.querySelector('.notification-popup ul');\r\n ul.innerHTML = '';\r\n }\r\n\r\n function render(item) {\r\n let ul = document.querySelector('.notification-popup ul');\r\n if(!ul) throw new Error('List container is missing');\r\n\r\n const active = 'notification-popup__item--active';\r\n\r\n let li = document.createElement('li');\r\n li.setAttribute('data-id', item.id);\r\n li.classList.add('notification-popup__item');\r\n\r\n if (item.active) {\r\n li.classList.add(active);\r\n }\r\n\r\n // Coupe Link\r\n let a = document.createElement('a');\r\n a.setAttribute('href', item.link);\r\n\r\n let spanText = document.createElement('span');\r\n spanText.innerText = item.text;\r\n\r\n a.appendChild(spanText);\r\n\r\n // Description / Text\r\n let spanDate = document.createElement('span');\r\n spanDate.innerText = `${item.description} ${item.date}`;\r\n\r\n // Notification Type Icon\r\n if (item.typeIconCss) {\r\n let typeIcon = document.createElement('i');\r\n typeIcon.setAttribute('class', item.typeIconCss);\r\n\r\n if (item.typeIconTitle) {\r\n typeIcon.setAttribute('title', item.typeIconTitle);\r\n typeIcon.setAttribute('alt', item.typeIconTitle);\r\n }\r\n \r\n li.appendChild(typeIcon);\r\n }\r\n\r\n // Content Container\r\n let container = document.createElement('div');\r\n container.classList.add('description');\r\n container.appendChild(a);\r\n container.appendChild(spanDate);\r\n\r\n li.appendChild(container);\r\n\r\n // Read/unread icon\r\n if(item.statusIconCss) {\r\n let activeIcon = document.createElement('i');\r\n activeIcon.setAttribute('class', item.statusIconCss);\r\n\r\n if (item.active) {\r\n activeIcon.setAttribute('tabindex', '0');\r\n }\r\n\r\n if (item.statusIconTitle) {\r\n activeIcon.setAttribute('title', item.statusIconTitle);\r\n activeIcon.setAttribute('alt', item.statusIconTitle);\r\n }\r\n \r\n li.appendChild(activeIcon);\r\n }\r\n \r\n li.addEventListener(attributes.events.click, e => {\r\n if(!this._itemChangedEventListeners) {\r\n return;\r\n }\r\n\r\n this._itemChangedEventListeners.forEach(handler => {\r\n handler(item, li);\r\n });\r\n });\r\n\r\n ul.appendChild(li);\r\n }\r\n\r\n function addItemChangedEventListener(handler){\r\n if(!this._itemChangedEventListeners) {\r\n this._itemChangedEventListeners = [];\r\n }\r\n\r\n this._itemChangedEventListeners.push(handler);\r\n }\r\n\r\n return {\r\n render: render,\r\n clear: clear,\r\n addItemChangedEventListener: addItemChangedEventListener\r\n };\r\n\r\n})();\r\n\r\nexport default NotificationPopupItemHandler;","import NotificationPopupItemHandler from './NotificationPopupItemHandler';\r\nimport attributes from '../../../Constants/js/attributes';\r\nimport Keys from '../../../Constants/js/Keys';\r\n\r\nconst NotificationPopup = (function () {\r\n\r\n const activeClass = 'notification-popup--active';\r\n const notificationButtonId = 'notificationsButton';\r\n const closeButton = '.notification-popup__close';\r\n\r\n var _notificationCounter = document.querySelector('#notificationsButton span');\r\n var _popupContainer = document.querySelector('.notification-popup__container');\r\n\r\n var _popupItemHander;\r\n var _items = [];\r\n\r\n function init(popupItemHander) {\r\n\r\n _popupItemHander = popupItemHander ?? NotificationPopupItemHandler;\r\n if(!_popupItemHander.render) throw new Error('Popup Item Handler is missing render() method');\r\n\r\n _items = [];\r\n\r\n updateCounter();\r\n\r\n document.querySelector(`#${notificationButtonId}`).addEventListener(attributes.events.click, e => {\r\n _popupContainer.classList.toggle(activeClass);\r\n e.preventDefault();\r\n });\r\n\r\n _popupContainer.querySelector(`${closeButton}`).addEventListener(attributes.events.click, e => {\r\n _popupContainer.classList.toggle(activeClass);\r\n e.preventDefault();\r\n });\r\n\r\n window.addEventListener(attributes.events.keyup, e => {\r\n if(e.keyCode === Keys.codes.esc) \r\n {\r\n _popupContainer.classList.remove(activeClass);\r\n } \r\n });\r\n \r\n //setup global click handler to hide component when click is outside of it\r\n window.addEventListener(attributes.events.click, e => {\r\n let parent = e.target;\r\n for(let i = 0; i < 5; i ++)\r\n {\r\n if(!parent) continue; \r\n\r\n if(parent.classList && \r\n (parent.classList.contains('notification-popup__item') || \r\n parent.classList.contains('notification-popup') ||\r\n parent.id === notificationButtonId)) \r\n {\r\n return;\r\n }\r\n\r\n parent = parent.parentElement;\r\n }\r\n\r\n _popupContainer.classList.remove(activeClass);\r\n });\r\n }\r\n\r\n function updateCounter(){\r\n const count = _items.filter(x => x.active === true).length;\r\n setCount(count);\r\n }\r\n\r\n function setCount(total) {\r\n _notificationCounter.innerText = total;\r\n if(total === 0) {\r\n _notificationCounter.classList.add(attributes.css.class.displayNone);\r\n }else{\r\n _notificationCounter.classList.remove(attributes.css.class.displayNone);\r\n }\r\n }\r\n\r\n function addItem(item) {\r\n _popupItemHander.render(item);\r\n _items.push(item);\r\n }\r\n\r\n function clearItems(){\r\n _popupItemHander.clear();\r\n _items = [];\r\n\r\n updateCounter();\r\n }\r\n\r\n return {\r\n init: init,\r\n addItem: addItem,\r\n clearItems: clearItems,\r\n setCount: setCount\r\n };\r\n\r\n})();\r\n\r\nexport default NotificationPopup;","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","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.github.io/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 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 TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\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' && typeof O.callee == 'function' ? 'Arguments' : result;\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.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\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.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\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 defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\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","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","module.exports = {};\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');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\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 // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\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 no-throw-literal\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 anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/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 : aFunction(S);\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(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(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(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 (classof(process) == 'process') {\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, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\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 global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\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 // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\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 (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, 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","'use strict';\nvar aFunction = require('../internals/a-function');\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 = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\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 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","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\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 NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\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 InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\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 (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['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(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\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) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\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(promise, 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 then.call(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 state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, 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 (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\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 (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, 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(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === 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 then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { 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, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/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, promise, state);\n this.reject = bind(internalReject, promise, 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 && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\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.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(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.github.io/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.github.io/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 = aFunction(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 values.push(undefined);\n remaining++;\n $promiseResolve.call(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.github.io/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 = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/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 charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(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 results.push(result);\n if (!global) break;\n\n var matchStr = String(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 = String(result[0]);\n var position = max(min(toInteger(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++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(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 nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(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 ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\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","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(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","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\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 = String(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","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = String(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line unicorn/no-unsafe-regex\nmodule.exports = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\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.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\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 callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\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 = String(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 nativeSplit.call(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 = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(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 || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(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 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/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 (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\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 (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', 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 = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\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 = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var 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]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\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.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.github.io/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true }, {\n EPSILON: Math.pow(2, -52)\n});\n","/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n/* Geodesy representation conversion functions (c) Chris Veness 2002-2019 */\n/* MIT Licence */\n/* www.movable-type.co.uk/scripts/latlong.html */\n/* www.movable-type.co.uk/scripts/js/geodesy/geodesy-library.html#dms */\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\n/* eslint no-irregular-whitespace: [2, { skipComments: true }] */\n\n\n/**\n * Latitude/longitude points may be represented as decimal degrees, or subdivided into sexagesimal\n * minutes and seconds. This module provides methods for parsing and representing degrees / minutes\n * / seconds.\n *\n * @module dms\n */\n\n\n/* Degree-minutes-seconds (& cardinal directions) separator character */\nlet dmsSeparator = '\\u202f'; // U+202F = 'narrow no-break space'\n\n\n/**\n * Functions for parsing and representing degrees / minutes / seconds.\n */\nclass Dms {\n\n // note Unicode Degree = U+00B0. Prime = U+2032, Double prime = U+2033\n\n /**\n * Separator character to be used to separate degrees, minutes, seconds, and cardinal directions.\n *\n * Default separator is U+202F ‘narrow no-break space’.\n *\n * To change this (e.g. to empty string or full space), set Dms.separator prior to invoking\n * formatting.\n *\n * @example\n * import LatLon, { Dms } from '/js/geodesy/latlon-spherical.js';\n * const p = new LatLon(51.2, 0.33).toString('dms'); // 51° 12′ 00″ N, 000° 19′ 48″ E\n * Dms.separator = ''; // no separator\n * const pʹ = new LatLon(51.2, 0.33).toString('dms'); // 51°12′00″N, 000°19′48″E\n */\n static get separator() { return dmsSeparator; }\n static set separator(char) { dmsSeparator = char; }\n\n\n /**\n * Parses string representing degrees/minutes/seconds into numeric degrees.\n *\n * This is very flexible on formats, allowing signed decimal degrees, or deg-min-sec optionally\n * suffixed by compass direction (NSEW); a variety of separators are accepted. Examples -3.62,\n * '3 37 12W', '3°37′12″W'.\n *\n * Thousands/decimal separators must be comma/dot; use Dms.fromLocale to convert locale-specific\n * thousands/decimal separators.\n *\n * @param {string|number} dms - Degrees or deg/min/sec in variety of formats.\n * @returns {number} Degrees as decimal number.\n *\n * @example\n * const lat = Dms.parse('51° 28′ 40.37″ N');\n * const lon = Dms.parse('000° 00′ 05.29″ W');\n * const p1 = new LatLon(lat, lon); // 51.4779°N, 000.0015°W\n */\n static parse(dms) {\n // check for signed decimal degrees without NSEW, if so return it directly\n if (!isNaN(parseFloat(dms)) && isFinite(dms)) return Number(dms);\n\n // strip off any sign or compass dir'n & split out separate d/m/s\n const dmsParts = String(dms).trim().replace(/^-/, '').replace(/[NSEW]$/i, '').split(/[^0-9.,]+/);\n if (dmsParts[dmsParts.length-1]=='') dmsParts.splice(dmsParts.length-1); // from trailing symbol\n\n if (dmsParts == '') return NaN;\n\n // and convert to decimal degrees...\n let deg = null;\n switch (dmsParts.length) {\n case 3: // interpret 3-part result as d/m/s\n deg = dmsParts[0]/1 + dmsParts[1]/60 + dmsParts[2]/3600;\n break;\n case 2: // interpret 2-part result as d/m\n deg = dmsParts[0]/1 + dmsParts[1]/60;\n break;\n case 1: // just d (possibly decimal) or non-separated dddmmss\n deg = dmsParts[0];\n // check for fixed-width unseparated format eg 0033709W\n //if (/[NS]/i.test(dmsParts)) deg = '0' + deg; // - normalise N/S to 3-digit degrees\n //if (/[0-9]{7}/.test(deg)) deg = deg.slice(0,3)/1 + deg.slice(3,5)/60 + deg.slice(5)/3600;\n break;\n default:\n return NaN;\n }\n if (/^-|[WS]$/i.test(dms.trim())) deg = -deg; // take '-', west and south as -ve\n\n return Number(deg);\n }\n\n\n /**\n * Converts decimal degrees to deg/min/sec format\n * - degree, prime, double-prime symbols are added, but sign is discarded, though no compass\n * direction is added.\n * - degrees are zero-padded to 3 digits; for degrees latitude, use .slice(1) to remove leading\n * zero.\n *\n * @private\n * @param {number} deg - Degrees to be formatted as specified.\n * @param {string} [format=d] - Return value as 'd', 'dm', 'dms' for deg, deg+min, deg+min+sec.\n * @param {number} [dp=4|2|0] - Number of decimal places to use – default 4 for d, 2 for dm, 0 for dms.\n * @returns {string} Degrees formatted as deg/min/secs according to specified format.\n */\n static toDms(deg, format='d', dp=undefined) {\n if (isNaN(deg)) return null; // give up here if we can't make a number from deg\n if (typeof deg == 'string' && deg.trim() == '') return null;\n if (typeof deg == 'boolean') return null;\n if (deg == Infinity) return null;\n if (deg == null) return null;\n\n // default values\n if (dp === undefined) {\n switch (format) {\n case 'd': case 'deg': dp = 4; break;\n case 'dm': case 'deg+min': dp = 2; break;\n case 'dms': case 'deg+min+sec': dp = 0; break;\n default: format = 'd'; dp = 4; break; // be forgiving on invalid format\n }\n }\n\n deg = Math.abs(deg); // (unsigned result ready for appending compass dir'n)\n\n let dms = null, d = null, m = null, s = null;\n switch (format) {\n default: // invalid format spec!\n case 'd': case 'deg':\n d = deg.toFixed(dp); // round/right-pad degrees\n if (d<100) d = '0' + d; // left-pad with leading zeros (note may include decimals)\n if (d<10) d = '0' + d;\n dms = d + '°';\n break;\n case 'dm': case 'deg+min':\n d = Math.floor(deg); // get component deg\n m = ((deg*60) % 60).toFixed(dp); // get component min & round/right-pad\n if (m == 60) { m = (0).toFixed(dp); d++; } // check for rounding up\n d = ('000'+d).slice(-3); // left-pad with leading zeros\n if (m<10) m = '0' + m; // left-pad with leading zeros (note may include decimals)\n dms = d + '°'+Dms.separator + m + '′';\n break;\n case 'dms': case 'deg+min+sec':\n d = Math.floor(deg); // get component deg\n m = Math.floor((deg*3600)/60) % 60; // get component min\n s = (deg*3600 % 60).toFixed(dp); // get component sec & round/right-pad\n if (s == 60) { s = (0).toFixed(dp); m++; } // check for rounding up\n if (m == 60) { m = 0; d++; } // check for rounding up\n d = ('000'+d).slice(-3); // left-pad with leading zeros\n m = ('00'+m).slice(-2); // left-pad with leading zeros\n if (s<10) s = '0' + s; // left-pad with leading zeros (note may include decimals)\n dms = d + '°'+Dms.separator + m + '′'+Dms.separator + s + '″';\n break;\n }\n\n return dms;\n }\n\n\n /**\n * Converts numeric degrees to deg/min/sec latitude (2-digit degrees, suffixed with N/S).\n *\n * @param {number} deg - Degrees to be formatted as specified.\n * @param {string} [format=d] - Return value as 'd', 'dm', 'dms' for deg, deg+min, deg+min+sec.\n * @param {number} [dp=4|2|0] - Number of decimal places to use – default 4 for d, 2 for dm, 0 for dms.\n * @returns {string} Degrees formatted as deg/min/secs according to specified format.\n *\n * @example\n * const lat = Dms.toLat(-3.62, 'dms'); // 3°37′12″S\n */\n static toLat(deg, format, dp) {\n const lat = Dms.toDms(Dms.wrap90(deg), format, dp);\n return lat===null ? '–' : lat.slice(1) + Dms.separator + (deg<0 ? 'S' : 'N'); // knock off initial '0' for lat!\n }\n\n\n /**\n * Convert numeric degrees to deg/min/sec longitude (3-digit degrees, suffixed with E/W).\n *\n * @param {number} deg - Degrees to be formatted as specified.\n * @param {string} [format=d] - Return value as 'd', 'dm', 'dms' for deg, deg+min, deg+min+sec.\n * @param {number} [dp=4|2|0] - Number of decimal places to use – default 4 for d, 2 for dm, 0 for dms.\n * @returns {string} Degrees formatted as deg/min/secs according to specified format.\n *\n * @example\n * const lon = Dms.toLon(-3.62, 'dms'); // 3°37′12″W\n */\n static toLon(deg, format, dp) {\n const lon = Dms.toDms(Dms.wrap180(deg), format, dp);\n return lon===null ? '–' : lon + Dms.separator + (deg<0 ? 'W' : 'E');\n }\n\n\n /**\n * Converts numeric degrees to deg/min/sec as a bearing (0°..360°).\n *\n * @param {number} deg - Degrees to be formatted as specified.\n * @param {string} [format=d] - Return value as 'd', 'dm', 'dms' for deg, deg+min, deg+min+sec.\n * @param {number} [dp=4|2|0] - Number of decimal places to use – default 4 for d, 2 for dm, 0 for dms.\n * @returns {string} Degrees formatted as deg/min/secs according to specified format.\n *\n * @example\n * const lon = Dms.toBrng(-3.62, 'dms'); // 356°22′48″\n */\n static toBrng(deg, format, dp) {\n const brng = Dms.toDms(Dms.wrap360(deg), format, dp);\n return brng===null ? '–' : brng.replace('360', '0'); // just in case rounding took us up to 360°!\n }\n\n\n /**\n * Converts DMS string from locale thousands/decimal separators to JavaScript comma/dot separators\n * for subsequent parsing.\n *\n * Both thousands and decimal separators must be followed by a numeric character, to facilitate\n * parsing of single lat/long string (in which whitespace must be left after the comma separator).\n *\n * @param {string} str - Degrees/minutes/seconds formatted with locale separators.\n * @returns {string} Degrees/minutes/seconds formatted with standard Javascript separators.\n *\n * @example\n * const lat = Dms.fromLocale('51°28′40,12″N'); // '51°28′40.12″N' in France\n * const p = new LatLon(Dms.fromLocale('51°28′40,37″N, 000°00′05,29″W'); // '51.4779°N, 000.0015°W' in France\n */\n static fromLocale(str) {\n const locale = (123456.789).toLocaleString();\n const separator = { thousands: locale.slice(3, 4), decimal: locale.slice(7, 8) };\n return str.replace(separator.thousands, 'âœ').replace(separator.decimal, '.').replace('âœ', ',');\n }\n\n\n /**\n * Converts DMS string from JavaScript comma/dot thousands/decimal separators to locale separators.\n *\n * Can also be used to format standard numbers such as distances.\n *\n * @param {string} str - Degrees/minutes/seconds formatted with standard Javascript separators.\n * @returns {string} Degrees/minutes/seconds formatted with locale separators.\n *\n * @example\n * const Dms.toLocale('123,456.789'); // '123.456,789' in France\n * const Dms.toLocale('51°28′40.12″N, 000°00′05.31″W'); // '51°28′40,12″N, 000°00′05,31″W' in France\n */\n static toLocale(str) {\n const locale = (123456.789).toLocaleString();\n const separator = { thousands: locale.slice(3, 4), decimal: locale.slice(7, 8) };\n return str.replace(/,([0-9])/, 'âœ$1').replace('.', separator.decimal).replace('âœ', separator.thousands);\n }\n\n\n /**\n * Returns compass point (to given precision) for supplied bearing.\n *\n * @param {number} bearing - Bearing in degrees from north.\n * @param {number} [precision=3] - Precision (1:cardinal / 2:intercardinal / 3:secondary-intercardinal).\n * @returns {string} Compass point for supplied bearing.\n *\n * @example\n * const point = Dms.compassPoint(24); // point = 'NNE'\n * const point = Dms.compassPoint(24, 1); // point = 'N'\n */\n static compassPoint(bearing, precision=3) {\n if (![ 1, 2, 3 ].includes(Number(precision))) throw new RangeError(`invalid precision ‘${precision}’`);\n // note precision could be extended to 4 for quarter-winds (eg NbNW), but I think they are little used\n\n bearing = Dms.wrap360(bearing); // normalise to range 0..360°\n\n const cardinals = [\n 'N', 'NNE', 'NE', 'ENE',\n 'E', 'ESE', 'SE', 'SSE',\n 'S', 'SSW', 'SW', 'WSW',\n 'W', 'WNW', 'NW', 'NNW' ];\n const n = 4 * 2**(precision-1); // no of compass points at req’d precision (1=>4, 2=>8, 3=>16)\n const cardinal = cardinals[Math.round(bearing*n/360)%n * 16/n];\n\n return cardinal;\n }\n\n\n /**\n * Constrain degrees to range 0..360 (e.g. for bearings); -1 => 359, 361 => 1.\n *\n * @private\n * @param {number} degrees\n * @returns degrees within range 0..360.\n */\n static wrap360(degrees) {\n if (0<=degrees && degrees<360) return degrees; // avoid rounding due to arithmetic ops if within range\n return (degrees%360+360) % 360; // sawtooth wave p:360, a:360\n }\n\n /**\n * Constrain degrees to range -180..+180 (e.g. for longitude); -181 => 179, 181 => -179.\n *\n * @private\n * @param {number} degrees\n * @returns degrees within range -180..+180.\n */\n static wrap180(degrees) {\n if (-180<degrees && degrees<=180) return degrees; // avoid rounding due to arithmetic ops if within range\n return (degrees+540)%360-180; // sawtooth wave p:180, a:±180\n }\n\n /**\n * Constrain degrees to range -90..+90 (e.g. for latitude); -91 => -89, 91 => 89.\n *\n * @private\n * @param {number} degrees\n * @returns degrees within range -90..+90.\n */\n static wrap90(degrees) {\n if (-90<=degrees && degrees<=90) return degrees; // avoid rounding due to arithmetic ops if within range\n return Math.abs((degrees%360 + 270)%360 - 180) - 90; // triangle wave p:360 a:±90 TODO: fix e.g. -315°\n }\n\n}\n\n\n// Extend Number object with methods to convert between degrees & radians\nNumber.prototype.toRadians = function() { return this * Math.PI / 180; };\nNumber.prototype.toDegrees = function() { return this * 180 / Math.PI; };\n\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nexport default Dms;\n","/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n/* Vector handling functions (c) Chris Veness 2011-2019 */\n/* MIT Licence */\n/* www.movable-type.co.uk/scripts/geodesy-library.html#vector3d */\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\n\n/**\n * Library of 3-d vector manipulation routines.\n *\n * @module vector3d\n */\n\n\n/* Vector3d - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\n\n/**\n * Functions for manipulating generic 3-d vectors.\n *\n * Functions return vectors as return results, so that operations can be chained.\n *\n * @example\n * const v = v1.cross(v2).dot(v3) // ≡ v1×v2â‹…v3\n */\nclass Vector3d {\n\n /**\n * Creates a 3-d vector.\n *\n * @param {number} x - X component of vector.\n * @param {number} y - Y component of vector.\n * @param {number} z - Z component of vector.\n *\n * @example\n * import Vector3d from '/js/geodesy/vector3d.js';\n * const v = new Vector3d(0.267, 0.535, 0.802);\n */\n constructor(x, y, z) {\n if (isNaN(x) || isNaN(x) || isNaN(x)) throw new TypeError(`invalid vector [${x},${y},${z}]`);\n\n this.x = Number(x);\n this.y = Number(y);\n this.z = Number(z);\n }\n\n\n /**\n * Length (magnitude or norm) of ‘this’ vector.\n *\n * @returns {number} Magnitude of this vector.\n */\n get length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n }\n\n\n /**\n * Adds supplied vector to ‘this’ vector.\n *\n * @param {Vector3d} v - Vector to be added to this vector.\n * @returns {Vector3d} Vector representing sum of this and v.\n */\n plus(v) {\n if (!(v instanceof Vector3d)) throw new TypeError('v is not Vector3d object');\n\n return new Vector3d(this.x + v.x, this.y + v.y, this.z + v.z);\n }\n\n\n /**\n * Subtracts supplied vector from ‘this’ vector.\n *\n * @param {Vector3d} v - Vector to be subtracted from this vector.\n * @returns {Vector3d} Vector representing difference between this and v.\n */\n minus(v) {\n if (!(v instanceof Vector3d)) throw new TypeError('v is not Vector3d object');\n\n return new Vector3d(this.x - v.x, this.y - v.y, this.z - v.z);\n }\n\n\n /**\n * Multiplies ‘this’ vector by a scalar value.\n *\n * @param {number} x - Factor to multiply this vector by.\n * @returns {Vector3d} Vector scaled by x.\n */\n times(x) {\n if (isNaN(x)) throw new TypeError(`invalid scalar value ‘${x}’`);\n\n return new Vector3d(this.x * x, this.y * x, this.z * x);\n }\n\n\n /**\n * Divides ‘this’ vector by a scalar value.\n *\n * @param {number} x - Factor to divide this vector by.\n * @returns {Vector3d} Vector divided by x.\n */\n dividedBy(x) {\n if (isNaN(x)) throw new TypeError(`invalid scalar value ‘${x}’`);\n\n return new Vector3d(this.x / x, this.y / x, this.z / x);\n }\n\n\n /**\n * Multiplies ‘this’ vector by the supplied vector using dot (scalar) product.\n *\n * @param {Vector3d} v - Vector to be dotted with this vector.\n * @returns {number} Dot product of ‘this’ and v.\n */\n dot(v) {\n if (!(v instanceof Vector3d)) throw new TypeError('v is not Vector3d object');\n\n return this.x * v.x + this.y * v.y + this.z * v.z;\n }\n\n\n /**\n * Multiplies ‘this’ vector by the supplied vector using cross (vector) product.\n *\n * @param {Vector3d} v - Vector to be crossed with this vector.\n * @returns {Vector3d} Cross product of ‘this’ and v.\n */\n cross(v) {\n if (!(v instanceof Vector3d)) throw new TypeError('v is not Vector3d object');\n\n const x = this.y * v.z - this.z * v.y;\n const y = this.z * v.x - this.x * v.z;\n const z = this.x * v.y - this.y * v.x;\n\n return new Vector3d(x, y, z);\n }\n\n\n /**\n * Negates a vector to point in the opposite direction.\n *\n * @returns {Vector3d} Negated vector.\n */\n negate() {\n return new Vector3d(-this.x, -this.y, -this.z);\n }\n\n\n /**\n * Normalizes a vector to its unit vector\n * – if the vector is already unit or is zero magnitude, this is a no-op.\n *\n * @returns {Vector3d} Normalised version of this vector.\n */\n unit() {\n const norm = this.length;\n if (norm == 1) return this;\n if (norm == 0) return this;\n\n const x = this.x / norm;\n const y = this.y / norm;\n const z = this.z / norm;\n\n return new Vector3d(x, y, z);\n }\n\n\n /**\n * Calculates the angle between ‘this’ vector and supplied vector atan2(|pâ‚×pâ‚‚|, pâ‚·pâ‚‚) (or if\n * (extra-planar) ‘n’ supplied then atan2(n·pâ‚×pâ‚‚, pâ‚·pâ‚‚).\n *\n * @param {Vector3d} v - Vector whose angle is to be determined from ‘this’ vector.\n * @param {Vector3d} [n] - Plane normal: if supplied, angle is signed +ve if this->v is\n * clockwise looking along n, -ve in opposite direction.\n * @returns {number} Angle (in radians) between this vector and supplied vector (in range 0..Ï€\n * if n not supplied, range -Ï€..+Ï€ if n supplied).\n */\n angleTo(v, n=undefined) {\n if (!(v instanceof Vector3d)) throw new TypeError('v is not Vector3d object');\n if (!(n instanceof Vector3d || n == undefined)) throw new TypeError('n is not Vector3d object');\n\n // q.v. stackoverflow.com/questions/14066933#answer-16544330, but n·pâ‚×pâ‚‚ is numerically\n // ill-conditioned, so just calculate sign to apply to |pâ‚×pâ‚‚|\n\n // if n·pâ‚×pâ‚‚ is -ve, negate |pâ‚×pâ‚‚|\n const sign = n==undefined || this.cross(v).dot(n)>=0 ? 1 : -1;\n\n const sinθ = this.cross(v).length * sign;\n const cosθ = this.dot(v);\n\n return Math.atan2(sinθ, cosθ);\n }\n\n\n /**\n * Rotates ‘this’ point around an axis by a specified angle.\n *\n * @param {Vector3d} axis - The axis being rotated around.\n * @param {number} angle - The angle of rotation (in degrees).\n * @returns {Vector3d} The rotated point.\n */\n rotateAround(axis, angle) {\n if (!(axis instanceof Vector3d)) throw new TypeError('axis is not Vector3d object');\n\n const θ = angle.toRadians();\n\n // en.wikipedia.org/wiki/Rotation_matrix#Rotation_matrix_from_axis_and_angle\n // en.wikipedia.org/wiki/Quaternions_and_spatial_rotation#Quaternion-derived_rotation_matrix\n const p = this.unit();\n const a = axis.unit();\n\n const s = Math.sin(θ);\n const c = Math.cos(θ);\n const t = 1-c;\n const x = a.x, y = a.y, z = a.z;\n\n const r = [ // rotation matrix for rotation about supplied axis\n [ t*x*x + c, t*x*y - s*z, t*x*z + s*y ],\n [ t*x*y + s*z, t*y*y + c, t*y*z - s*x ],\n [ t*x*z - s*y, t*y*z + s*x, t*z*z + c ],\n ];\n\n // multiply r × p\n const rp = [\n r[0][0]*p.x + r[0][1]*p.y + r[0][2]*p.z,\n r[1][0]*p.x + r[1][1]*p.y + r[1][2]*p.z,\n r[2][0]*p.x + r[2][1]*p.y + r[2][2]*p.z,\n ];\n const p2 = new Vector3d(rp[0], rp[1], rp[2]);\n\n return p2;\n // qv en.wikipedia.org/wiki/Rodrigues'_rotation_formula...\n }\n\n\n /**\n * String representation of vector.\n *\n * @param {number} [dp=3] - Number of decimal places to be used.\n * @returns {string} Vector represented as [x,y,z].\n */\n toString(dp=3) {\n return `[${this.x.toFixed(dp)},${this.y.toFixed(dp)},${this.z.toFixed(dp)}]`;\n }\n\n}\n\n\n// Extend Number object with methods to convert between degrees & radians\nNumber.prototype.toRadians = function() { return this * Math.PI / 180; };\nNumber.prototype.toDegrees = function() { return this * 180 / Math.PI; };\n\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nexport default Vector3d;\n","/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n/* Geodesy tools for an ellipsoidal earth model (c) Chris Veness 2005-2019 */\n/* MIT Licence */\n/* www.movable-type.co.uk/scripts/latlong-convert-coords.html */\n/* www.movable-type.co.uk/scripts/geodesy-library.html#latlon-ellipsoidal */\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nimport Dms from './dms.js';\nimport Vector3d from './vector3d.js';\n\n\n/**\n * A latitude/longitude point defines a geographic location on or above/below the earth’s surface,\n * measured in degrees from the equator & the International Reference Meridian and in metres above\n * the ellipsoid, and based on a given datum.\n *\n * As so much modern geodesy is based on WGS-84 (as used by GPS), this module includes WGS-84\n * ellipsoid parameters, and it has methods for converting geodetic (latitude/longitude) points to/from\n * geocentric cartesian points; the latlon-ellipsoidal-datum and latlon-ellipsoidal-referenceframe\n * modules provide transformation parameters for converting between historical datums and between\n * modern reference frames.\n *\n * This module is used for both trigonometric geodesy (eg latlon-ellipsoidal-vincenty) and n-vector\n * geodesy (eg latlon-nvector-ellipsoidal), and also for UTM/MGRS mapping.\n *\n * @module latlon-ellipsoidal\n */\n\n\n/*\n * Ellipsoid parameters; exposed through static getter below.\n *\n * The only ellipsoid defined is WGS84, for use in utm/mgrs, vincenty, nvector.\n */\nconst ellipsoids = {\n WGS84: { a: 6378137, b: 6356752.314245, f: 1/298.257223563 },\n};\n\n\n/*\n * Datums; exposed through static getter below.\n *\n * The only datum defined is WGS84, for use in utm/mgrs, vincenty, nvector.\n */\nconst datums = {\n WGS84: { ellipsoid: ellipsoids.WGS84 },\n};\n\n\n// freeze static properties\nObject.freeze(ellipsoids.WGS84);\nObject.freeze(datums.WGS84);\n\n\n/* LatLonEllipsoidal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\n\n/**\n * Latitude/longitude points on an ellipsoidal model earth, with ellipsoid parameters and methods\n * for converting points to/from cartesian (ECEF) coordinates.\n *\n * This is the core class, which will usually be used via LatLonEllipsoidal_Datum or\n * LatLonEllipsoidal_ReferenceFrame.\n */\nclass LatLonEllipsoidal {\n\n /**\n * Creates a geodetic latitude/longitude point on a (WGS84) ellipsoidal model earth.\n *\n * @param {number} lat - Latitude (in degrees).\n * @param {number} lon - Longitude (in degrees).\n * @param {number} [height=0] - Height above ellipsoid in metres.\n * @throws {TypeError} Invalid lat/lon/height.\n *\n * @example\n * import LatLon from '/js/geodesy/latlon-ellipsoidal.js';\n * const p = new LatLon(51.47788, -0.00147, 17);\n */\n constructor(lat, lon, height=0) {\n if (isNaN(lat)) throw new TypeError(`invalid lat ‘${lat}’`);\n if (isNaN(lon)) throw new TypeError(`invalid lon ‘${lon}’`);\n if (isNaN(height)) throw new TypeError(`invalid height ‘${height}’`);\n\n this._lat = Dms.wrap90(Number(lat));\n this._lon = Dms.wrap180(Number(lon));\n this._height = Number(height);\n }\n\n\n /**\n * Latitude in degrees north from equator (including aliases lat, latitude): can be set as\n * numeric or hexagesimal (deg-min-sec); returned as numeric.\n */\n get lat() { return this._lat; }\n get latitude() { return this._lat; }\n set lat(lat) {\n this._lat = isNaN(lat) ? Dms.wrap90(Dms.parse(lat)) : Dms.wrap90(Number(lat));\n if (isNaN(this._lat)) throw new TypeError(`invalid lat ‘${lat}’`);\n }\n set latitude(lat) {\n this._lat = isNaN(lat) ? Dms.wrap90(Dms.parse(lat)) : Dms.wrap90(Number(lat));\n if (isNaN(this._lat)) throw new TypeError(`invalid latitude ‘${lat}’`);\n }\n\n /**\n * Longitude in degrees east from international reference meridian (including aliases lon, lng,\n * longitude): can be set as numeric or hexagesimal (deg-min-sec); returned as numeric.\n */\n get lon() { return this._lon; }\n get lng() { return this._lon; }\n get longitude() { return this._lon; }\n set lon(lon) {\n this._lon = isNaN(lon) ? Dms.wrap180(Dms.parse(lon)) : Dms.wrap180(Number(lon));\n if (isNaN(this._lon)) throw new TypeError(`invalid lon ‘${lon}’`);\n }\n set lng(lon) {\n this._lon = isNaN(lon) ? Dms.wrap180(Dms.parse(lon)) : Dms.wrap180(Number(lon));\n if (isNaN(this._lon)) throw new TypeError(`invalid lng ‘${lon}’`);\n }\n set longitude(lon) {\n this._lon = isNaN(lon) ? Dms.wrap180(Dms.parse(lon)) : Dms.wrap180(Number(lon));\n if (isNaN(this._lon)) throw new TypeError(`invalid longitude ‘${lon}’`);\n }\n\n /**\n * Height in metres above ellipsoid.\n */\n get height() { return this._height; }\n set height(height) { this._height = Number(height); if (isNaN(this._height)) throw new TypeError(`invalid height ‘${height}’`); }\n\n\n /**\n * Datum.\n *\n * Note this is replicated within LatLonEllipsoidal in order that a LatLonEllipsoidal object can\n * be monkey-patched to look like a LatLonEllipsoidal_Datum, for Vincenty calculations on\n * different ellipsoids.\n *\n * @private\n */\n get datum() { return this._datum; }\n set datum(datum) { this._datum = datum; }\n\n\n /**\n * Ellipsoids with their parameters; this module only defines WGS84 parameters a = 6378137, b =\n * 6356752.314245, f = 1/298.257223563.\n *\n * @example\n * const a = LatLon.ellipsoids.WGS84.a; // 6378137\n */\n static get ellipsoids() {\n return ellipsoids;\n }\n\n /**\n * Datums; this module only defines WGS84 datum, hence no datum transformations.\n *\n * @example\n * const a = LatLon.datums.WGS84.ellipsoid.a; // 6377563.396\n */\n static get datums() {\n return datums;\n }\n\n\n /**\n * Parses a latitude/longitude point from a variety of formats.\n *\n * Latitude & longitude (in degrees) can be supplied as two separate parameters, as a single\n * comma-separated lat/lon string, or as a single object with { lat, lon } or GeoJSON properties.\n *\n * The latitude/longitude values may be numeric or strings; they may be signed decimal or\n * deg-min-sec (hexagesimal) suffixed by compass direction (NSEW); a variety of separators are\n * accepted. Examples -3.62, '3 37 12W', '3°37′12″W'.\n *\n * Thousands/decimal separators must be comma/dot; use Dms.fromLocale to convert locale-specific\n * thousands/decimal separators.\n *\n * @param {number|string|Object} lat|latlon - Latitude (in degrees), or comma-separated lat/lon, or lat/lon object.\n * @param {number} [lon] - Longitude (in degrees).\n * @param {number} [height=0] - Height above ellipsoid in metres.\n * @returns {LatLon} Latitude/longitude point on WGS84 ellipsoidal model earth.\n * @throws {TypeError} Invalid coordinate.\n *\n * @example\n * const p1 = LatLon.parse(51.47788, -0.00147); // numeric pair\n * const p2 = LatLon.parse('51°28′40″N, 000°00′05″W', 17); // dms string + height\n * const p3 = LatLon.parse({ lat: 52.205, lon: 0.119 }, 17); // { lat, lon } object numeric + height\n */\n static parse(...args) {\n if (args.length == 0) throw new TypeError('invalid (empty) point');\n\n let lat=undefined, lon=undefined, height=undefined;\n\n // single { lat, lon } object\n if (typeof args[0]=='object' && (args.length==1 || !isNaN(parseFloat(args[1])))) {\n const ll = args[0];\n if (ll.type == 'Point' && Array.isArray(ll.coordinates)) { // GeoJSON\n [ lon, lat, height ] = ll.coordinates;\n height = height || 0;\n } else { // regular { lat, lon } object\n if (ll.latitude != undefined) lat = ll.latitude;\n if (ll.lat != undefined) lat = ll.lat;\n if (ll.longitude != undefined) lon = ll.longitude;\n if (ll.lng != undefined) lon = ll.lng;\n if (ll.lon != undefined) lon = ll.lon;\n if (ll.height != undefined) height = ll.height;\n lat = Dms.wrap90(Dms.parse(lat));\n lon = Dms.wrap180(Dms.parse(lon));\n }\n if (args[1] != undefined) height = args[1];\n if (isNaN(lat) || isNaN(lon)) throw new TypeError(`invalid point ‘${JSON.stringify(args[0])}’`);\n }\n\n // single comma-separated lat/lon\n if (typeof args[0] == 'string' && args[0].split(',').length == 2) {\n [ lat, lon ] = args[0].split(',');\n lat = Dms.wrap90(Dms.parse(lat));\n lon = Dms.wrap180(Dms.parse(lon));\n height = args[1] || 0;\n if (isNaN(lat) || isNaN(lon)) throw new TypeError(`invalid point ‘${args[0]}’`);\n }\n\n // regular (lat, lon) arguments\n if (lat==undefined && lon==undefined) {\n [ lat, lon ] = args;\n lat = Dms.wrap90(Dms.parse(lat));\n lon = Dms.wrap180(Dms.parse(lon));\n height = args[2] || 0;\n if (isNaN(lat) || isNaN(lon)) throw new TypeError(`invalid point ‘${args.toString()}’`);\n }\n\n return new this(lat, lon, height); // 'new this' as may return subclassed types\n }\n\n\n /**\n * Converts ‘this’ point from (geodetic) latitude/longitude coordinates to (geocentric)\n * cartesian (x/y/z) coordinates.\n *\n * @returns {Cartesian} Cartesian point equivalent to lat/lon point, with x, y, z in metres from\n * earth centre.\n */\n toCartesian() {\n // x = (ν+h)â‹…cosφ⋅cosλ, y = (ν+h)â‹…cosφ⋅sinλ, z = (ν⋅(1-e²)+h)â‹…sinφ\n // where ν = a/√(1−e²⋅sinφ⋅sinφ), e² = (a²-b²)/a² or (better conditioned) 2â‹…f-f²\n const ellipsoid = this.datum\n ? this.datum.ellipsoid\n : this.referenceFrame ? this.referenceFrame.ellipsoid : ellipsoids.WGS84;\n\n const φ = this.lat.toRadians();\n const λ = this.lon.toRadians();\n const h = this.height;\n const { a, f } = ellipsoid;\n\n const sinφ = Math.sin(φ), cosφ = Math.cos(φ);\n const sinλ = Math.sin(λ), cosλ = Math.cos(λ);\n\n const eSq = 2*f - f*f; // 1st eccentricity squared ≡ (a²-b²)/a²\n const ν = a / Math.sqrt(1 - eSq*sinφ*sinφ); // radius of curvature in prime vertical\n\n const x = (ν+h) * cosφ * cosλ;\n const y = (ν+h) * cosφ * sinλ;\n const z = (ν*(1-eSq)+h) * sinφ;\n\n return new Cartesian(x, y, z);\n }\n\n\n /**\n * Checks if another point is equal to ‘this’ point.\n *\n * @param {LatLon} point - Point to be compared against this point.\n * @returns {bool} True if points have identical latitude, longitude, height, and datum/referenceFrame.\n * @throws {TypeError} Invalid point.\n *\n * @example\n * const p1 = new LatLon(52.205, 0.119);\n * const p2 = new LatLon(52.205, 0.119);\n * const equal = p1.equals(p2); // true\n */\n equals(point) {\n if (!(point instanceof LatLonEllipsoidal)) throw new TypeError(`invalid point ‘${point}’`);\n\n if (Math.abs(this.lat - point.lat) > Number.EPSILON) return false;\n if (Math.abs(this.lon - point.lon) > Number.EPSILON) return false;\n if (Math.abs(this.height - point.height) > Number.EPSILON) return false;\n if (this.datum != point.datum) return false;\n if (this.referenceFrame != point.referenceFrame) return false;\n if (this.epoch != point.epoch) return false;\n\n return true;\n }\n\n\n /**\n * Returns a string representation of ‘this’ point, formatted as degrees, degrees+minutes, or\n * degrees+minutes+seconds.\n *\n * @param {string} [format=d] - Format point as 'd', 'dm', 'dms', or 'n' for signed numeric.\n * @param {number} [dp=4|2|0] - Number of decimal places to use: default 4 for d, 2 for dm, 0 for dms.\n * @param {number} [dpHeight=null] - Number of decimal places to use for height; default is no height display.\n * @returns {string} Comma-separated formatted latitude/longitude.\n * @throws {RangeError} Invalid format.\n *\n * @example\n * const greenwich = new LatLon(51.47788, -0.00147, 46);\n * const d = greenwich.toString(); // 51.4779°N, 000.0015°W\n * const dms = greenwich.toString('dms', 2); // 51°28′40″N, 000°00′05″W\n * const [lat, lon] = greenwich.toString('n').split(','); // 51.4779, -0.0015\n * const dmsh = greenwich.toString('dms', 0, 0); // 51°28′40″N, 000°00′06″W +46m\n */\n toString(format='d', dp=undefined, dpHeight=null) {\n // note: explicitly set dp to undefined for passing through to toLat/toLon\n if (![ 'd', 'dm', 'dms', 'n' ].includes(format)) throw new RangeError(`invalid format ‘${format}’`);\n\n const height = (this.height>=0 ? ' +' : ' ') + this.height.toFixed(dpHeight) + 'm';\n if (format == 'n') { // signed numeric degrees\n if (dp == undefined) dp = 4;\n const lat = this.lat.toFixed(dp);\n const lon = this.lon.toFixed(dp);\n return `${lat}, ${lon}${dpHeight==null ? '' : height}`;\n }\n\n const lat = Dms.toLat(this.lat, format, dp);\n const lon = Dms.toLon(this.lon, format, dp);\n\n return `${lat}, ${lon}${dpHeight==null ? '' : height}`;\n }\n\n}\n\n\n/* Cartesian - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\n\n/**\n * ECEF (earth-centered earth-fixed) geocentric cartesian coordinates.\n *\n * @extends Vector3d\n */\nclass Cartesian extends Vector3d {\n\n /**\n * Creates cartesian coordinate representing ECEF (earth-centric earth-fixed) point.\n *\n * @param {number} x - X coordinate in metres (=> 0°N,0°E).\n * @param {number} y - Y coordinate in metres (=> 0°N,90°E).\n * @param {number} z - Z coordinate in metres (=> 90°N).\n *\n * @example\n * import { Cartesian } from '/js/geodesy/latlon-ellipsoidal.js';\n * const coord = new Cartesian(3980581.210, -111.159, 4966824.522);\n */\n constructor(x, y, z) {\n super(x, y, z); // arguably redundant constructor, but specifies units & axes\n }\n\n\n /**\n * Converts ‘this’ (geocentric) cartesian (x/y/z) coordinate to (geodetic) latitude/longitude\n * point on specified ellipsoid.\n *\n * Uses Bowring’s (1985) formulation for μm precision in concise form; ‘The accuracy of geodetic\n * latitude and height equations’, B R Bowring, Survey Review vol 28, 218, Oct 1985.\n *\n * @param {LatLon.ellipsoids} [ellipsoid=WGS84] - Ellipsoid to use when converting point.\n * @returns {LatLon} Latitude/longitude point defined by cartesian coordinates, on given ellipsoid.\n * @throws {TypeError} Invalid ellipsoid.\n *\n * @example\n * const c = new Cartesian(4027893.924, 307041.993, 4919474.294);\n * const p = c.toLatLon(); // 50.7978°N, 004.3592°E\n */\n toLatLon(ellipsoid=ellipsoids.WGS84) {\n // note ellipsoid is available as a parameter for when toLatLon gets subclassed to\n // Ellipsoidal_Datum / Ellipsoidal_Referenceframe.\n if (!ellipsoid || !ellipsoid.a) throw new TypeError(`invalid ellipsoid ‘${ellipsoid}’`);\n\n const { x, y, z } = this;\n const { a, b, f } = ellipsoid;\n\n const e2 = 2*f - f*f; // 1st eccentricity squared ≡ (a²−b²)/a²\n const ε2 = e2 / (1-e2); // 2nd eccentricity squared ≡ (a²−b²)/b²\n const p = Math.sqrt(x*x + y*y); // distance from minor axis\n const R = Math.sqrt(p*p + z*z); // polar radius\n\n // parametric latitude (Bowring eqn.17, replacing tanβ = z·a / p·b)\n const tanβ = (b*z)/(a*p) * (1+ε2*b/R);\n const sinβ = tanβ / Math.sqrt(1+tanβ*tanβ);\n const cosβ = sinβ / tanβ;\n\n // geodetic latitude (Bowring eqn.18: tanφ = z+ε²⋅bâ‹…sin³β / p−e²⋅cos³β)\n const φ = isNaN(cosβ) ? 0 : Math.atan2(z + ε2*b*sinβ*sinβ*sinβ, p - e2*a*cosβ*cosβ*cosβ);\n\n // longitude\n const λ = Math.atan2(y, x);\n\n // height above ellipsoid (Bowring eqn.7)\n const sinφ = Math.sin(φ), cosφ = Math.cos(φ);\n const ν = a / Math.sqrt(1-e2*sinφ*sinφ); // length of the normal terminated by the minor axis\n const h = p*cosφ + z*sinφ - (a*a/ν);\n\n const point = new LatLonEllipsoidal(φ.toDegrees(), λ.toDegrees(), h);\n\n return point;\n }\n\n\n /**\n * Returns a string representation of ‘this’ cartesian point.\n *\n * @param {number} [dp=0] - Number of decimal places to use.\n * @returns {string} Comma-separated latitude/longitude.\n */\n toString(dp=0) {\n const x = this.x.toFixed(dp), y = this.y.toFixed(dp), z = this.z.toFixed(dp);\n return `[${x},${y},${z}]`;\n }\n\n}\n\n\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nexport { LatLonEllipsoidal as default, Cartesian, Vector3d, Dms };\n","/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n/* Geodesy tools for conversions between (historical) datums (c) Chris Veness 2005-2019 */\n/* MIT Licence */\n/* www.movable-type.co.uk/scripts/latlong-convert-coords.html */\n/* www.movable-type.co.uk/scripts/geodesy-library.html#latlon-ellipsoidal-datum */\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nimport LatLonEllipsoidal, { Cartesian, Dms } from './latlon-ellipsoidal.js';\n\n\n/**\n * Historical geodetic datums: a latitude/longitude point defines a geographic location on or\n * above/below the earth’s surface, measured in degrees from the equator & the International\n * Reference Meridian and metres above the ellipsoid, and based on a given datum. The datum is\n * based on a reference ellipsoid and tied to geodetic survey reference points.\n *\n * Modern geodesy is generally based on the WGS84 datum (as used for instance by GPS systems), but\n * previously various reference ellipsoids and datum references were used.\n *\n * This module extends the core latlon-ellipsoidal module to include ellipsoid parameters and datum\n * transformation parameters, and methods for converting between different (generally historical)\n * datums.\n *\n * It can be used for UK Ordnance Survey mapping (OS National Grid References are still based on the\n * otherwise historical OSGB36 datum), as well as for historical purposes.\n *\n * q.v. Ordnance Survey ‘A guide to coordinate systems in Great Britain’ Section 6,\n * www.ordnancesurvey.co.uk/docs/support/guide-coordinate-systems-great-britain.pdf, and also\n * www.ordnancesurvey.co.uk/blog/2014/12/2.\n *\n * @module latlon-ellipsoidal-datum\n */\n\n\n/*\n * Ellipsoid parameters; exposed through static getter below.\n */\nconst ellipsoids = {\n WGS84: { a: 6378137, b: 6356752.314245, f: 1/298.257223563 },\n Airy1830: { a: 6377563.396, b: 6356256.909, f: 1/299.3249646 },\n AiryModified: { a: 6377340.189, b: 6356034.448, f: 1/299.3249646 },\n Bessel1841: { a: 6377397.155, b: 6356078.962818, f: 1/299.1528128 },\n Clarke1866: { a: 6378206.4, b: 6356583.8, f: 1/294.978698214 },\n Clarke1880IGN: { a: 6378249.2, b: 6356515.0, f: 1/293.466021294 },\n GRS80: { a: 6378137, b: 6356752.314140, f: 1/298.257222101 },\n Intl1924: { a: 6378388, b: 6356911.946, f: 1/297 }, // aka Hayford\n WGS72: { a: 6378135, b: 6356750.5, f: 1/298.26 },\n};\n\n\n/*\n * Datums; exposed through static getter below.\n */\nconst datums = {\n // transforms: t in metres, s in ppm, r in arcseconds tx ty tz s rx ry rz\n ED50: { ellipsoid: ellipsoids.Intl1924, transform: [ 89.5, 93.8, 123.1, -1.2, 0.0, 0.0, 0.156 ] }, // epsg.io/1311\n ETRS89: { ellipsoid: ellipsoids.GRS80, transform: [ 0, 0, 0, 0, 0, 0, 0 ] }, // epsg.io/1149; @ 1-metre level\n Irl1975: { ellipsoid: ellipsoids.AiryModified, transform: [ -482.530, 130.596, -564.557, -8.150, 1.042, 0.214, 0.631 ] }, // epsg.io/1954\n NAD27: { ellipsoid: ellipsoids.Clarke1866, transform: [ 8, -160, -176, 0, 0, 0, 0 ] },\n NAD83: { ellipsoid: ellipsoids.GRS80, transform: [ 0.9956, -1.9103, -0.5215, -0.00062, 0.025915, 0.009426, 0.011599 ] },\n NTF: { ellipsoid: ellipsoids.Clarke1880IGN, transform: [ 168, 60, -320, 0, 0, 0, 0 ] },\n OSGB36: { ellipsoid: ellipsoids.Airy1830, transform: [ -446.448, 125.157, -542.060, 20.4894, -0.1502, -0.2470, -0.8421 ] }, // epsg.io/1314\n Potsdam: { ellipsoid: ellipsoids.Bessel1841, transform: [ -582, -105, -414, -8.3, 1.04, 0.35, -3.08 ] },\n TokyoJapan: { ellipsoid: ellipsoids.Bessel1841, transform: [ 148, -507, -685, 0, 0, 0, 0 ] },\n WGS72: { ellipsoid: ellipsoids.WGS72, transform: [ 0, 0, -4.5, -0.22, 0, 0, 0.554 ] },\n WGS84: { ellipsoid: ellipsoids.WGS84, transform: [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] },\n};\n/* sources:\n * - ED50: www.gov.uk/guidance/oil-and-gas-petroleum-operations-notices#pon-4\n * - Irl1975: www.osi.ie/wp-content/uploads/2015/05/transformations_booklet.pdf\n * - NAD27: en.wikipedia.org/wiki/Helmert_transformation\n * - NAD83: www.uvm.edu/giv/resources/WGS84_NAD83.pdf [strictly, WGS84(G1150) -> NAD83(CORS96) @ epoch 1997.0]\n * (note NAD83(1986) ≡ WGS84(Original); confluence.qps.nl/pages/viewpage.action?pageId=29855173)\n * - NTF: Nouvelle Triangulation Francaise geodesie.ign.fr/contenu/fichiers/Changement_systeme_geodesique.pdf\n * - OSGB36: www.ordnancesurvey.co.uk/docs/support/guide-coordinate-systems-great-britain.pdf\n * - Potsdam: kartoweb.itc.nl/geometrics/Coordinate%20transformations/coordtrans.html\n * - TokyoJapan: www.geocachingtoolbox.com?page=datumEllipsoidDetails\n * - WGS72: www.icao.int/safety/pbn/documentation/eurocontrol/eurocontrol wgs 84 implementation manual.pdf\n *\n * more transform parameters are available from earth-info.nga.mil/GandG/coordsys/datums/NATO_DT.pdf,\n * www.fieldenmaps.info/cconv/web/cconv_params.js\n */\n/* note:\n * - ETRS89 reference frames are coincident with WGS-84 at epoch 1989.0 (ie null transform) at the one metre level.\n */\n\n\n// freeze static properties\nObject.keys(ellipsoids).forEach(e => Object.freeze(ellipsoids[e]));\nObject.keys(datums).forEach(d => { Object.freeze(datums[d]); Object.freeze(datums[d].transform); });\n\n\n/* LatLon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\n\n/**\n * Latitude/longitude points on an ellipsoidal model earth, with ellipsoid parameters and methods\n * for converting between datums and to geocentric (ECEF) cartesian coordinates.\n *\n * @extends LatLonEllipsoidal\n */\nclass LatLonEllipsoidal_Datum extends LatLonEllipsoidal {\n\n /**\n * Creates a geodetic latitude/longitude point on an ellipsoidal model earth using given datum.\n *\n * @param {number} lat - Latitude (in degrees).\n * @param {number} lon - Longitude (in degrees).\n * @param {number} [height=0] - Height above ellipsoid in metres.\n * @param {LatLon.datums} datum - Datum this point is defined within.\n *\n * @example\n * import LatLon from '/js/geodesy/latlon-ellipsoidal-datum.js';\n * const p = new LatLon(53.3444, -6.2577, 17, LatLon.datums.Irl1975);\n */\n constructor(lat, lon, height=0, datum=datums.WGS84) {\n if (!datum || datum.ellipsoid==undefined) throw new TypeError(`unrecognised datum ‘${datum}’`);\n\n super(lat, lon, height);\n\n this._datum = datum;\n }\n\n\n /**\n * Datum this point is defined within.\n */\n get datum() {\n return this._datum;\n }\n\n\n /**\n * Ellipsoids with their parameters; semi-major axis (a), semi-minor axis (b), and flattening (f).\n *\n * Flattening f = (a−b)/a; at least one of these parameters is derived from defining constants.\n *\n * @example\n * const a = LatLon.ellipsoids.Airy1830.a; // 6377563.396\n */\n static get ellipsoids() {\n return ellipsoids;\n }\n\n\n /**\n * Datums; with associated ellipsoid, and Helmert transform parameters to convert from WGS-84\n * into given datum.\n *\n * Note that precision of various datums will vary, and WGS-84 (original) is not defined to be\n * accurate to better than ±1 metre. No transformation should be assumed to be accurate to\n * better than a metre, for many datums somewhat less.\n *\n * This is a small sample of commoner datums from a large set of historical datums. I will add\n * new datums on request.\n *\n * @example\n * const a = LatLon.datums.OSGB36.ellipsoid.a; // 6377563.396\n * const tx = LatLon.datums.OSGB36.transform; // [ tx, ty, tz, s, rx, ry, rz ]\n * const availableDatums = Object.keys(LatLon.datums).join(', '); // ED50, Irl1975, NAD27, ...\n */\n static get datums() {\n return datums;\n }\n\n\n // note instance datum getter/setters are in LatLonEllipsoidal\n\n\n /**\n * Parses a latitude/longitude point from a variety of formats.\n *\n * Latitude & longitude (in degrees) can be supplied as two separate parameters, as a single\n * comma-separated lat/lon string, or as a single object with { lat, lon } or GeoJSON properties.\n *\n * The latitude/longitude values may be numeric or strings; they may be signed decimal or\n * deg-min-sec (hexagesimal) suffixed by compass direction (NSEW); a variety of separators are\n * accepted. Examples -3.62, '3 37 12W', '3°37′12″W'.\n *\n * Thousands/decimal separators must be comma/dot; use Dms.fromLocale to convert locale-specific\n * thousands/decimal separators.\n *\n * @param {number|string|Object} lat|latlon - Geodetic Latitude (in degrees) or comma-separated lat/lon or lat/lon object.\n * @param {number} [lon] - Longitude in degrees.\n * @param {number} [height=0] - Height above ellipsoid in metres.\n * @param {LatLon.datums} [datum=WGS84] - Datum this point is defined within.\n * @returns {LatLon} Latitude/longitude point on ellipsoidal model earth using given datum.\n * @throws {TypeError} Unrecognised datum.\n *\n * @example\n * const p = LatLon.parse('51.47736, 0.0000', 0, LatLon.datums.OSGB36);\n */\n static parse(...args) {\n let datum = datums.WGS84;\n\n // if the last argument is a datum, use that, otherwise use default WGS-84\n if (args.length==4 || (args.length==3 && typeof args[2] == 'object')) datum = args.pop();\n\n if (!datum || datum.ellipsoid==undefined) throw new TypeError(`unrecognised datum ‘${datum}’`);\n\n const point = super.parse(...args);\n\n point._datum = datum;\n\n return point;\n }\n\n\n /**\n * Converts ‘this’ lat/lon coordinate to new coordinate system.\n *\n * @param {LatLon.datums} toDatum - Datum this coordinate is to be converted to.\n * @returns {LatLon} This point converted to new datum.\n * @throws {TypeError} Unrecognised datum.\n *\n * @example\n * const pWGS84 = new LatLon(51.47788, -0.00147, 0, LatLon.datums.WGS84);\n * const pOSGB = pWGS84.convertDatum(LatLon.datums.OSGB36); // 51.4773°N, 000.0001°E\n */\n convertDatum(toDatum) {\n if (!toDatum || toDatum.ellipsoid==undefined) throw new TypeError(`unrecognised datum ‘${toDatum}’`);\n\n const oldCartesian = this.toCartesian(); // convert geodetic to cartesian\n const newCartesian = oldCartesian.convertDatum(toDatum); // convert datum\n const newLatLon = newCartesian.toLatLon(); // convert cartesian back to geodetic\n\n return newLatLon;\n }\n\n\n /**\n * Converts ‘this’ point from (geodetic) latitude/longitude coordinates to (geocentric) cartesian\n * (x/y/z) coordinates, based on the same datum.\n *\n * Shadow of LatLonEllipsoidal.toCartesian(), returning Cartesian augmented with\n * LatLonEllipsoidal_Datum methods/properties.\n *\n * @returns {Cartesian} Cartesian point equivalent to lat/lon point, with x, y, z in metres from\n * earth centre, augmented with reference frame conversion methods and properties.\n */\n toCartesian() {\n const cartesian = super.toCartesian();\n const cartesianDatum = new Cartesian_Datum(cartesian.x, cartesian.y, cartesian.z, this.datum);\n return cartesianDatum;\n }\n\n}\n\n\n/* Cartesian - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\n\n/**\n * Augments Cartesian with datum the cooordinate is based on, and methods to convert between datums\n * (using Helmert 7-parameter transforms) and to convert cartesian to geodetic latitude/longitude\n * point.\n *\n * @extends Cartesian\n */\nclass Cartesian_Datum extends Cartesian {\n\n /**\n * Creates cartesian coordinate representing ECEF (earth-centric earth-fixed) point, on a given\n * datum. The datum will identify the primary meridian (for the x-coordinate), and is also\n * useful in transforming to/from geodetic (lat/lon) coordinates.\n *\n * @param {number} x - X coordinate in metres (=> 0°N,0°E).\n * @param {number} y - Y coordinate in metres (=> 0°N,90°E).\n * @param {number} z - Z coordinate in metres (=> 90°N).\n * @param {LatLon.datums} [datum] - Datum this coordinate is defined within.\n * @throws {TypeError} Unrecognised datum.\n *\n * @example\n * import { Cartesian } from '/js/geodesy/latlon-ellipsoidal-datum.js';\n * const coord = new Cartesian(3980581.210, -111.159, 4966824.522);\n */\n constructor(x, y, z, datum=undefined) {\n if (datum && datum.ellipsoid==undefined) throw new TypeError(`unrecognised datum ‘${datum}’`);\n\n super(x, y, z);\n\n if (datum) this._datum = datum;\n }\n\n\n /**\n * Datum this point is defined within.\n */\n get datum() {\n return this._datum;\n }\n set datum(datum) {\n if (!datum || datum.ellipsoid==undefined) throw new TypeError(`unrecognised datum ‘${datum}’`);\n this._datum = datum;\n }\n\n\n /**\n * Converts ‘this’ (geocentric) cartesian (x/y/z) coordinate to (geodetic) latitude/longitude\n * point (based on the same datum, or WGS84 if unset).\n *\n * Shadow of Cartesian.toLatLon(), returning LatLon augmented with LatLonEllipsoidal_Datum\n * methods convertDatum, toCartesian, etc.\n *\n * @returns {LatLon} Latitude/longitude point defined by cartesian coordinates.\n * @throws {TypeError} Unrecognised datum\n *\n * @example\n * const c = new Cartesian(4027893.924, 307041.993, 4919474.294);\n * const p = c.toLatLon(); // 50.7978°N, 004.3592°E\n */\n toLatLon(deprecatedDatum=undefined) {\n if (deprecatedDatum) {\n console.info('datum parameter to Cartesian_Datum.toLatLon is deprecated: set datum before calling toLatLon()');\n this.datum = deprecatedDatum;\n }\n const datum = this.datum || datums.WGS84;\n if (!datum || datum.ellipsoid==undefined) throw new TypeError(`unrecognised datum ‘${datum}’`);\n\n const latLon = super.toLatLon(datum.ellipsoid); // TODO: what if datum is not geocentric?\n const point = new LatLonEllipsoidal_Datum(latLon.lat, latLon.lon, latLon.height, this.datum);\n return point;\n }\n\n\n /**\n * Converts ‘this’ cartesian coordinate to new datum using Helmert 7-parameter transformation.\n *\n * @param {LatLon.datums} toDatum - Datum this coordinate is to be converted to.\n * @returns {Cartesian} This point converted to new datum.\n * @throws {Error} Undefined datum.\n *\n * @example\n * const c = new Cartesian(3980574.247, -102.127, 4966830.065, LatLon.datums.OSGB36);\n * c.convertDatum(LatLon.datums.Irl1975); // [??,??,??]\n */\n convertDatum(toDatum) {\n // TODO: what if datum is not geocentric?\n if (!toDatum || toDatum.ellipsoid == undefined) throw new TypeError(`unrecognised datum ‘${toDatum}’`);\n if (!this.datum) throw new TypeError('cartesian coordinate has no datum');\n\n let oldCartesian = null;\n let transform = null;\n\n if (this.datum == undefined || this.datum == datums.WGS84) {\n // converting from WGS 84\n oldCartesian = this;\n transform = toDatum.transform;\n }\n if (toDatum == datums.WGS84) {\n // converting to WGS 84; use inverse transform\n oldCartesian = this;\n transform = this.datum.transform.map(p => -p);\n }\n if (transform == null) {\n // neither this.datum nor toDatum are WGS84: convert this to WGS84 first\n oldCartesian = this.convertDatum(datums.WGS84);\n transform = toDatum.transform;\n }\n\n const newCartesian = oldCartesian.applyTransform(transform);\n newCartesian.datum = toDatum;\n\n return newCartesian;\n }\n\n\n /**\n * Applies Helmert 7-parameter transformation to ‘this’ coordinate using transform parameters t.\n *\n * This is used in converting datums (geodetic->cartesian, apply transform, cartesian->geodetic).\n *\n * @private\n * @param {number[]} t - Transformation to apply to this coordinate.\n * @returns {Cartesian} Transformed point.\n */\n applyTransform(t) {\n // this point\n const { x: x1, y: y1, z: z1 } = this;\n\n // transform parameters\n const tx = t[0]; // x-shift in metres\n const ty = t[1]; // y-shift in metres\n const tz = t[2]; // z-shift in metres\n const s = t[3]/1e6 + 1; // scale: normalise parts-per-million to (s+1)\n const rx = (t[4]/3600).toRadians(); // x-rotation: normalise arcseconds to radians\n const ry = (t[5]/3600).toRadians(); // y-rotation: normalise arcseconds to radians\n const rz = (t[6]/3600).toRadians(); // z-rotation: normalise arcseconds to radians\n\n // apply transform\n const x2 = tx + x1*s - y1*rz + z1*ry;\n const y2 = ty + x1*rz + y1*s - z1*rx;\n const z2 = tz - x1*ry + y1*rx + z1*s;\n\n return new Cartesian_Datum(x2, y2, z2);\n }\n}\n\n\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nexport { LatLonEllipsoidal_Datum as default, Cartesian_Datum as Cartesian, datums, Dms };\n","/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n/* Ordnance Survey Grid Reference functions (c) Chris Veness 2005-2019 */\n/* MIT Licence */\n/* www.movable-type.co.uk/scripts/latlong-gridref.html */\n/* www.movable-type.co.uk/scripts/geodesy-library.html#osgridref */\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nimport LatLonEllipsoidal, { Dms } from './latlon-ellipsoidal-datum.js';\n\n/**\n * Ordnance Survey OSGB grid references provide geocoordinate references for UK mapping purposes.\n *\n * Formulation implemented here due to Thomas, Redfearn, etc is as published by OS, but is inferior\n * to Krüger as used by e.g. Karney 2011.\n *\n * www.ordnancesurvey.co.uk/docs/support/guide-coordinate-systems-great-britain.pdf.\n *\n * Note OSGB grid references cover Great Britain only; Ireland and the Channel Islands have their\n * own references.\n *\n * Note that these formulae are based on ellipsoidal calculations, and according to the OS are\n * accurate to about 4–5 metres – for greater accuracy, a geoid-based transformation (OSTN15) must\n * be used.\n */\n\n/*\n * Converted 2015 to work with WGS84 by default, OSGB36 as option;\n * www.ordnancesurvey.co.uk/blog/2014/12/confirmation-on-changes-to-latitude-and-longitude\n */\n\n\n/* OsGridRef - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\n\n/**\n * OS grid references with methods to parse and convert them to latitude/longitude points.\n *\n * @module osgridref\n */\nclass OsGridRef {\n\n /**\n * Creates an OsGridRef object.\n *\n * @param {number} easting - Easting in metres from OS false origin.\n * @param {number} northing - Northing in metres from OS false origin.\n *\n * @example\n * import OsGridRef from '/js/geodesy/osgridref.js';\n * const gridref = new OsGridRef(651409, 313177);\n */\n constructor(easting, northing) {\n this.easting = Number(easting);\n this.northing = Number(northing);\n\n if (isNaN(easting) || this.easting<0 || this.easting>700e3) throw new RangeError(`invalid easting ‘${easting}’`);\n if (isNaN(northing) || this.northing<0 || this.northing>1300e3) throw new RangeError(`invalid northing ‘${northing}’`);\n }\n\n\n /**\n * Converts ‘this’ Ordnance Survey grid reference easting/northing coordinate to latitude/longitude\n * (SW corner of grid square).\n *\n * While OS grid references are based on OSGB-36, the Ordnance Survey have deprecated the use of\n * OSGB-36 for latitude/longitude coordinates (in favour of WGS-84), hence this function returns\n * WGS-84 by default, with OSGB-36 as an option. See www.ordnancesurvey.co.uk/blog/2014/12/2.\n *\n * Note formulation implemented here due to Thomas, Redfearn, etc is as published by OS, but is\n * inferior to Krüger as used by e.g. Karney 2011.\n *\n * @param {LatLon.datum} [datum=WGS84] - Datum to convert grid reference into.\n * @returns {LatLon} Latitude/longitude of supplied grid reference.\n *\n * @example\n * const gridref = new OsGridRef(651409.903, 313177.270);\n * const pWgs84 = gridref.toLatLon(); // 52°39′28.723″N, 001°42′57.787″E\n * // to obtain (historical) OSGB36 lat/lon point:\n * const pOsgb = gridref.toLatLon(LatLon.datums.OSGB36); // 52°39′27.253″N, 001°43′04.518″E\n */\n toLatLon(datum=LatLonEllipsoidal.datums.WGS84) {\n const { easting: E, northing: N } = this;\n\n const a = 6377563.396, b = 6356256.909; // Airy 1830 major & minor semi-axes\n const F0 = 0.9996012717; // NatGrid scale factor on central meridian\n const φ0 = (49).toRadians(), λ0 = (-2).toRadians(); // NatGrid true origin is 49°N,2°W\n const N0 = -100e3, E0 = 400e3; // northing & easting of true origin, metres\n const e2 = 1 - (b*b)/(a*a); // eccentricity squared\n const n = (a-b)/(a+b), n2 = n*n, n3 = n*n*n; // n, n², n³\n\n let φ=φ0, M=0;\n do {\n φ = (N-N0-M)/(a*F0) + φ;\n\n const Ma = (1 + n + (5/4)*n2 + (5/4)*n3) * (φ-φ0);\n const Mb = (3*n + 3*n*n + (21/8)*n3) * Math.sin(φ-φ0) * Math.cos(φ+φ0);\n const Mc = ((15/8)*n2 + (15/8)*n3) * Math.sin(2*(φ-φ0)) * Math.cos(2*(φ+φ0));\n const Md = (35/24)*n3 * Math.sin(3*(φ-φ0)) * Math.cos(3*(φ+φ0));\n M = b * F0 * (Ma - Mb + Mc - Md); // meridional arc\n\n } while (Math.abs(N-N0-M) >= 0.00001); // ie until < 0.01mm\n\n const cosφ = Math.cos(φ), sinφ = Math.sin(φ);\n const ν = a*F0/Math.sqrt(1-e2*sinφ*sinφ); // nu = transverse radius of curvature\n const Ï = a*F0*(1-e2)/Math.pow(1-e2*sinφ*sinφ, 1.5); // rho = meridional radius of curvature\n const η2 = ν/Ï-1; // eta = ?\n\n const tanφ = Math.tan(φ);\n const tan2φ = tanφ*tanφ, tan4φ = tan2φ*tan2φ, tan6φ = tan4φ*tan2φ;\n const secφ = 1/cosφ;\n const ν3 = ν*ν*ν, ν5 = ν3*ν*ν, ν7 = ν5*ν*ν;\n const VII = tanφ/(2*Ï*ν);\n const VIII = tanφ/(24*Ï*ν3)*(5+3*tan2φ+η2-9*tan2φ*η2);\n const IX = tanφ/(720*Ï*ν5)*(61+90*tan2φ+45*tan4φ);\n const X = secφ/ν;\n const XI = secφ/(6*ν3)*(ν/Ï+2*tan2φ);\n const XII = secφ/(120*ν5)*(5+28*tan2φ+24*tan4φ);\n const XIIA = secφ/(5040*ν7)*(61+662*tan2φ+1320*tan4φ+720*tan6φ);\n\n const dE = (E-E0), dE2 = dE*dE, dE3 = dE2*dE, dE4 = dE2*dE2, dE5 = dE3*dE2, dE6 = dE4*dE2, dE7 = dE5*dE2;\n φ = φ - VII*dE2 + VIII*dE4 - IX*dE6;\n const λ = λ0 + X*dE - XI*dE3 + XII*dE5 - XIIA*dE7;\n\n let point = new LatLon_OsGridRef(φ.toDegrees(), λ.toDegrees(), 0, LatLonEllipsoidal.datums.OSGB36);\n\n if (datum != LatLonEllipsoidal.datums.OSGB36) {\n // if point is required in datum other than OSGB36, convert it\n point = point.convertDatum(datum);\n // convertDatum() gives us a LatLon: convert to LatLon_OsGridRef which includes toOsGrid()\n point = new LatLon_OsGridRef(point.lat, point.lon, point.height, point.datum);\n }\n\n return point;\n }\n\n\n /**\n * Parses grid reference to OsGridRef object.\n *\n * Accepts standard grid references (eg 'SU 387 148'), with or without whitespace separators, from\n * two-digit references up to 10-digit references (1m × 1m square), or fully numeric comma-separated\n * references in metres (eg '438700,114800').\n *\n * @param {string} gridref - Standard format OS grid reference.\n * @returns {OsGridRef} Numeric version of grid reference in metres from false origin (SW corner of\n * supplied grid square).\n * @throws {Error} Invalid grid reference.\n *\n * @example\n * const grid = OsGridRef.parse('TG 51409 13177'); // grid: { easting: 651409, northing: 313177 }\n */\n static parse(gridref) {\n gridref = String(gridref).trim();\n\n // check for fully numeric comma-separated gridref format\n let match = gridref.match(/^(\\d+),\\s*(\\d+)$/);\n if (match) return new OsGridRef(match[1], match[2]);\n\n // validate format\n match = gridref.match(/^[A-Z]{2}\\s*[0-9]+\\s*[0-9]+$/i);\n if (!match) throw new Error(`invalid grid reference ‘${gridref}’`);\n\n // get numeric values of letter references, mapping A->0, B->1, C->2, etc:\n let l1 = gridref.toUpperCase().charCodeAt(0) - 'A'.charCodeAt(0);\n let l2 = gridref.toUpperCase().charCodeAt(1) - 'A'.charCodeAt(0);\n // shuffle down letters after 'I' since 'I' is not used in grid:\n if (l1 > 7) l1--;\n if (l2 > 7) l2--;\n\n // sanity check\n if (l1<8 || l1 > 18) throw new Error(`invalid grid reference ‘${gridref}’`);\n\n // convert grid letters into 100km-square indexes from false origin (grid square SV):\n const e100km = ((l1 - 2) % 5) * 5 + (l2 % 5);\n const n100km = (19 - Math.floor(l1 / 5) * 5) - Math.floor(l2 / 5);\n\n // skip grid letters to get numeric (easting/northing) part of ref\n let en = gridref.slice(2).trim().split(/\\s+/);\n // if e/n not whitespace separated, split half way\n if (en.length == 1) en = [ en[0].slice(0, en[0].length / 2), en[0].slice(en[0].length / 2) ];\n\n // validation\n if (en[0].length != en[1].length) throw new Error(`invalid grid reference ‘${gridref}’`);\n\n // standardise to 10-digit refs (metres)\n en[0] = en[0].padEnd(5, '0');\n en[1] = en[1].padEnd(5, '0');\n\n const e = e100km + en[0];\n const n = n100km + en[1];\n\n return new OsGridRef(e, n);\n }\n\n\n /**\n * Converts ‘this’ numeric grid reference to standard OS grid reference.\n *\n * @param {number} [digits=10] - Precision of returned grid reference (10 digits = metres);\n * digits=0 will return grid reference in numeric format.\n * @returns {string} This grid reference in standard format.\n *\n * @example\n * const gridref = new OsGridRef(651409, 313177).toString(8); // 'TG 5140 1317'\n * const gridref = new OsGridRef(651409, 313177).toString(0); // '651409,313177'\n */\n toString(digits=10) {\n if (![ 0,2,4,6,8,10,12,14,16 ].includes(Number(digits))) throw new RangeError(`invalid precision ‘${digits}’`); // eslint-disable-line comma-spacing\n\n let { easting: e, northing: n } = this;\n\n // use digits = 0 to return numeric format (in metres) - note northing may be >= 1e7\n if (digits == 0) {\n const format = { useGrouping: false, minimumIntegerDigits: 6, maximumFractionDigits: 3 };\n const ePad = e.toLocaleString('en', format);\n const nPad = n.toLocaleString('en', format);\n return `${ePad},${nPad}`;\n }\n\n // get the 100km-grid indices\n const e100km = Math.floor(e / 100000), n100km = Math.floor(n / 100000);\n\n // translate those into numeric equivalents of the grid letters\n let l1 = (19 - n100km) - (19 - n100km) % 5 + Math.floor((e100km + 10) / 5);\n let l2 = (19 - n100km) * 5 % 25 + e100km % 5;\n\n // compensate for skipped 'I' and build grid letter-pairs\n if (l1 > 7) l1++;\n if (l2 > 7) l2++;\n const letterPair = String.fromCharCode(l1 + 'A'.charCodeAt(0), l2 + 'A'.charCodeAt(0));\n\n // strip 100km-grid indices from easting & northing, and reduce precision\n e = Math.floor((e % 100000) / Math.pow(10, 5 - digits / 2));\n n = Math.floor((n % 100000) / Math.pow(10, 5 - digits / 2));\n\n // pad eastings & northings with leading zeros\n e = e.toString().padStart(digits/2, '0');\n n = n.toString().padStart(digits/2, '0');\n\n return `${letterPair} ${e} ${n}`;\n }\n\n}\n\n\n/* LatLon_OsGridRef - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\n\n/**\n * Extends LatLon class with method to convert LatLon point to OS grid reference.\n *\n * @extends LatLon\n */\nclass LatLon_OsGridRef extends LatLonEllipsoidal {\n\n /**\n * Converts latitude/longitude to Ordnance Survey grid reference easting/northing coordinate.\n *\n * @returns {OsGridRef} OS Grid Reference easting/northing.\n *\n * @example\n * const grid = new LatLon(52.65798, 1.71605).toOsGrid(); // TG 51409 13177\n * // for conversion of (historical) OSGB36 latitude/longitude point:\n * const grid = new LatLon(52.65798, 1.71605).toOsGrid(LatLon.datums.OSGB36);\n */\n toOsGrid() {\n // if necessary convert to OSGB36 first\n const point = this.datum == LatLonEllipsoidal.datums.OSGB36\n ? this\n : this.convertDatum(LatLonEllipsoidal.datums.OSGB36);\n\n const φ = point.lat.toRadians();\n const λ = point.lon.toRadians();\n\n const a = 6377563.396, b = 6356256.909; // Airy 1830 major & minor semi-axes\n const F0 = 0.9996012717; // NatGrid scale factor on central meridian\n const φ0 = (49).toRadians(), λ0 = (-2).toRadians(); // NatGrid true origin is 49°N,2°W\n const N0 = -100000, E0 = 400000; // northing & easting of true origin, metres\n const e2 = 1 - (b*b)/(a*a); // eccentricity squared\n const n = (a-b)/(a+b), n2 = n*n, n3 = n*n*n; // n, n², n³\n\n const cosφ = Math.cos(φ), sinφ = Math.sin(φ);\n const ν = a*F0/Math.sqrt(1-e2*sinφ*sinφ); // nu = transverse radius of curvature\n const Ï = a*F0*(1-e2)/Math.pow(1-e2*sinφ*sinφ, 1.5); // rho = meridional radius of curvature\n const η2 = ν/Ï-1; // eta = ?\n\n const Ma = (1 + n + (5/4)*n2 + (5/4)*n3) * (φ-φ0);\n const Mb = (3*n + 3*n*n + (21/8)*n3) * Math.sin(φ-φ0) * Math.cos(φ+φ0);\n const Mc = ((15/8)*n2 + (15/8)*n3) * Math.sin(2*(φ-φ0)) * Math.cos(2*(φ+φ0));\n const Md = (35/24)*n3 * Math.sin(3*(φ-φ0)) * Math.cos(3*(φ+φ0));\n const M = b * F0 * (Ma - Mb + Mc - Md); // meridional arc\n\n const cos3φ = cosφ*cosφ*cosφ;\n const cos5φ = cos3φ*cosφ*cosφ;\n const tan2φ = Math.tan(φ)*Math.tan(φ);\n const tan4φ = tan2φ*tan2φ;\n\n const I = M + N0;\n const II = (ν/2)*sinφ*cosφ;\n const III = (ν/24)*sinφ*cos3φ*(5-tan2φ+9*η2);\n const IIIA = (ν/720)*sinφ*cos5φ*(61-58*tan2φ+tan4φ);\n const IV = ν*cosφ;\n const V = (ν/6)*cos3φ*(ν/Ï-tan2φ);\n const VI = (ν/120) * cos5φ * (5 - 18*tan2φ + tan4φ + 14*η2 - 58*tan2φ*η2);\n\n const Δλ = λ-λ0;\n const Δλ2 = Δλ*Δλ, Δλ3 = Δλ2*Δλ, Δλ4 = Δλ3*Δλ, Δλ5 = Δλ4*Δλ, Δλ6 = Δλ5*Δλ;\n\n let N = I + II*Δλ2 + III*Δλ4 + IIIA*Δλ6;\n let E = E0 + IV*Δλ + V*Δλ3 + VI*Δλ5;\n\n N = Number(N.toFixed(3)); // round to mm precision\n E = Number(E.toFixed(3));\n\n return new OsGridRef(E, N); // gets truncated to SW corner of 1m grid square\n }\n\n}\n\n\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nexport { OsGridRef as default, LatLon_OsGridRef as LatLon, Dms };\n","import EsriMap from 'esri/Map';\nimport MapView from 'esri/views/MapView';\nimport watchUtils from 'esri/core/watchUtils';\nimport Extent from 'esri/geometry/Extent';\nimport webMercatorUtils from 'esri/geometry/support/webMercatorUtils';\nimport VerticalTwoFingerDrag from 'esri/views/input/recognizers/VerticalTwoFingerDrag';\nimport DragPan from 'esri/views/2d/input/handlers/DragPan';\nimport PinchAction from 'esri/views/2d/input/handlers/PinchAction';\nimport SpatialReference from 'esri/geometry/SpatialReference';\nimport Basemap from 'esri/Basemap';\nimport 'esri/layers/Layer';\nimport OsGridRef, { LatLon } from 'geodesy/osgridref';\nimport Home from 'esri/widgets/Home';\nimport Viewpoint from 'esri/Viewpoint';\nimport $$1 from 'jquery';\nimport FeatureLayer from 'esri/layers/FeatureLayer';\nimport Point from 'esri/geometry/Point';\nimport Graphic from 'esri/Graphic';\nimport SimpleLineSymbol from 'esri/symbols/SimpleLineSymbol';\nimport SimpleFillSymbol from 'esri/symbols/SimpleFillSymbol';\nimport Color from 'esri/Color';\nimport Polygon from 'esri/geometry/Polygon';\nimport Popup from 'esri/widgets/Popup';\n\nclass MapExtentRestrictionStrategy {\n constructor(boundingExtent) {\n this.boundingExtent = boundingExtent;\n }\n validateCenter(centerPoint) {\n if (!this.boundingExtent || centerPoint.spatialReference.wkid !== this.boundingExtent.spatialReference.wkid) {\n return this._validResult();\n }\n const center = centerPoint.clone();\n const extentErrors = new MapExtentRestrictionStrategyErrors();\n if (this.boundingExtent.xmin > center.x) {\n // Nudge over to the right\n const diff = this.boundingExtent.xmin - center.x;\n center.x += diff;\n extentErrors.xmin = true;\n }\n if (center.x > this.boundingExtent.xmax) {\n // Nudge over to the left\n const diff = center.x - this.boundingExtent.xmax;\n center.x -= diff;\n extentErrors.xmax = true;\n }\n if (this.boundingExtent.ymin > center.y) {\n // Nudge up\n const diff = this.boundingExtent.ymin - center.y;\n center.y += diff;\n extentErrors.ymin = true;\n }\n if (center.y > this.boundingExtent.ymax) {\n // Nudge down\n const diff = center.y - this.boundingExtent.ymax;\n center.y -= diff;\n extentErrors.ymax = true;\n }\n if (extentErrors.any()) {\n return this._invalidResult(center, extentErrors);\n }\n return this._validResult();\n }\n validateExtent(extent) {\n if (!this.boundingExtent || extent.spatialReference.wkid !== this.boundingExtent.spatialReference.wkid) {\n return this._validResult();\n }\n if (!extent || !extent.center) {\n throw new Error('Extent is not an Extent class');\n }\n extent = extent.clone();\n const extentErrors = new MapExtentRestrictionStrategyErrors();\n if (extent.width > this.boundingExtent.width && extent.height > this.boundingExtent.height) {\n if (extent.width > this.boundingExtent.width) {\n extentErrors.width = true;\n const diff = (extent.width - this.boundingExtent.width) / 2;\n extent.xmin += diff;\n extent.xmax -= diff;\n }\n if (extent.height > this.boundingExtent.height) {\n extentErrors.height = true;\n const diff = (extent.height - this.boundingExtent.height) / 2;\n extent.ymin += diff;\n extent.ymax -= diff;\n }\n }\n if (extentErrors.any()) {\n return this._invalidResult(extent, extentErrors);\n }\n return this._validResult();\n }\n _validResult() {\n return {\n ok: true,\n target: null,\n errors: null\n };\n }\n _invalidResult(target, errors) {\n return {\n ok: false,\n target,\n errors\n };\n }\n}\nclass MapExtentRestrictionStrategyErrors {\n constructor() {\n this.width = false;\n this.height = false;\n this.xmin = false;\n this.xmax = false;\n this.ymin = false;\n this.ymax = false;\n }\n any() {\n const keys = Object.keys(this);\n for (let i = 0; i < keys.length; i++) {\n if (this[keys[i]]) {\n return true;\n }\n }\n return false;\n }\n}\n\nconst ESRI_VIEW_SURFACE_SELECTOR = \".esri-view-surface\";\nclass MapController {\n /**\r\n * \r\n * @param {Layer[]} layers array of feature layers to be rendered\r\n * @param {{ MapInteractivityCtrlScroll?: string; MapInteractivityTwoFingerTouch?: string; }} resource translation resource strings for use with labels\r\n * @param {string} mapContainerId the ID of the HTML element\r\n * @param {Basemap} basemap map's basemap\r\n * @param {boolean} showHomeButton Show or hide the home button\r\n * @param {Extent} wgs84walesExtent overwrite the default Wales extent\r\n */\n\n constructor(layers, resource, mapContainerId, basemap, showHomeButton = false, wgs84walesExtent = undefined) {\n if (!basemap) {\n basemap = Basemap.fromId('streets');\n }\n const walesExtents = this.buildWalesExtentForEachSpatialReference(wgs84walesExtent);\n this._resource = resource !== null ? resource : {\n MapInteractivityCtrlScroll: 'Use Ctrl+Scroll to zoom the map',\n MapInteractivityTwoFingerTouch: 'Use two fingers to zoom and pan the map'\n };\n this.domNode = document.getElementById(mapContainerId || 'viewDiv');\n this.map = new EsriMap({\n basemap,\n layers\n });\n this.domNode.addEventListener('wheel', event => {\n if (!event.ctrlKey) {\n event.stopImmediatePropagation();\n event.stopPropagation();\n this.showInteractivityOverlayWithMessage(this._resource.MapInteractivityCtrlScroll);\n this.scheduleInteractivityOverlayTimeout(1000);\n } else {\n this.cancelScheduledInteractivityOverlayTimeout();\n this.hideInteractivityOverlay();\n }\n }, {\n capture: true\n });\n this.mapView = new MapView({\n container: this.domNode,\n // Reference to the DOM node that will contain the view\n map: this.map,\n // References the map object created in step 3\n // set highlightOptions like color and fillOpacity\n highlightOptions: {\n color: [255, 241, 58],\n fillOpacity: 0.4\n },\n constraints: {\n maxZoom: 17,\n rotationEnabled: false,\n snapToZoom: false\n },\n padding: {\n top: 15,\n bottom: 15 + 24,\n left: 15,\n right: 15\n }\n });\n this._interactivityOverlay = document.createElement('div');\n this._interactivityOverlay.className = 'map-interactivity-notice';\n this._lastScale = null;\n this._mapViewReady = false;\n this._onMapClickListeners = [];\n this._onMapPointerMoveListeners = [];\n this._onMapExtentChangedListeners = [];\n this._onMapViewpointChangedListeners = [];\n this._onMapHomeButtonInvokedListeners = [];\n this._mapExtentRestrictionStrategyBoundingExtentSet = false;\n this._mapExtentRestrictionStrategy = new MapExtentRestrictionStrategy(null);\n this._isCurrentlyChangingExtent = false;\n this._isAnimating = false;\n this._isPointerDown = false;\n this._activePointers = 0;\n this._activeDraggingPointers = 0;\n this._interactivityOverlayTimeout = null;\n this._pendingMapExtentChangedEventArgs = null;\n this._pendingMapViewpointChangedEventArgs = null;\n watchUtils.watch(this.mapView, 'extent', (newExtent, oldExtent) => {\n if (!this._isCurrentlyChangingExtent) {\n this.invokeMapExtentChangedListeners(newExtent);\n }\n });\n watchUtils.watch(this.mapView, 'viewpoint', (newViewpoint, oldViewpoint) => {\n this.onViewpointChanged(newViewpoint);\n });\n watchUtils.watch(this.mapView, 'animation', animation => {\n if (animation) {\n this._isAnimating = true;\n animation.when(() => {\n this._isAnimating = false;\n this.invokeMapExtentChangedListenersIfNeeded();\n }).catch(() => {\n this._isAnimating = false;\n this.invokeMapExtentChangedListenersIfNeeded();\n });\n }\n });\n watchUtils.watch(this.mapView, 'rotation', r => {\n this.mapView.rotation = 0;\n });\n this.mapView.on('immediate-click', e => {\n this.cancelScheduledInteractivityOverlayTimeout();\n this.hideInteractivityOverlay();\n });\n this.mapView.on('click', e => {\n this.invokeMapClickListeners(e);\n });\n this.domNode.addEventListener('touchstart', e => {\n this.cancelScheduledInteractivityOverlayTimeout();\n const touchingMap = $$1(e.target).closest(\".esri-view-surface\").length > 0;\n if (!touchingMap) {\n return;\n }\n if (e.touches.length === 1) {\n this.getEsriViewSurfaceElement().style.touchAction = 'none';\n this.scheduleInteractivityOverlayTimeout(0, this._resource.MapInteractivityTwoFingerTouch); // 0ms to reduce the flicker between the overlay being visible and then being turned off by immediate-click listener\n } else {\n this.hideInteractivityOverlay();\n e.preventDefault();\n }\n }, {\n capture: true\n });\n this.domNode.addEventListener('touchmove', e => {\n const originalPreventDefault = e.preventDefault;\n e.preventDefault = () => {\n if (e.touches.length !== 1) {\n // Only call the actual prevent default when the user is using 2 or more fingers, which will stop scrolling\n originalPreventDefault.call(e);\n }\n };\n }, {\n capture: true\n });\n this.domNode.addEventListener('touchend', e => {\n if (e.touches.length === 0) {\n this.getEsriViewSurfaceElement().style.touchAction = 'auto';\n this.cancelScheduledInteractivityOverlayTimeout();\n this.hideInteractivityOverlay();\n }\n });\n this.mapView.on('pointer-down', e => {\n this._isPointerDown = true;\n });\n this.mapView.on('pointer-up', e => {\n this._isPointerDown = false;\n this.invokeMapExtentChangedListenersIfNeeded();\n this.invokeMapViewpointChangedListenersIfNeeded();\n });\n this.mapView.on('pointer-move', e => {\n this.invokeMapPointerMoveListeners(e);\n });\n this.addMapExtentChangedListener(extent => {\n this._lastSetExtent = extent;\n });\n this.onMapReady = this.mapView.when(r => {\n this._mapViewReady = true;\n const basemapLayer = basemap.baseLayers.toArray()[0] || {};\n this.mapSpatialReference = this.mapView.spatialReference || basemapLayer.spatialReference;\n if (!this._mapExtentRestrictionStrategyBoundingExtentSet) {\n const walesExtent = walesExtents[this.mapSpatialReference ? this.mapSpatialReference.wkid : undefined];\n if (!walesExtent) {\n throw new Error(`Spatial reference ${this.mapSpatialReference.wkid} not supported`);\n }\n this._mapExtentRestrictionStrategy.boundingExtent = walesExtent;\n }\n if (this._mapExtentRestrictionStrategy.boundingExtent) {\n this.mapView.extent = this._mapExtentRestrictionStrategy.boundingExtent;\n }\n if (showHomeButton) {\n var homeBtn = new Home({\n view: this.mapView,\n viewpoint: new Viewpoint({\n targetGeometry: this._mapExtentRestrictionStrategy.boundingExtent\n })\n });\n homeBtn.on(\"go\", _ => this.invokeMapHomeButtonInvokedListeners());\n\n // Add the home button to the top left corner of the view\n this.mapView.ui.add(homeBtn, \"top-left\");\n }\n this.insertInteractivityOverlay();\n this.patchInputHandlers();\n this.getEsriViewSurfaceElement().style.touchAction = 'auto';\n });\n }\n buildWalesExtentForEachSpatialReference(wgs84walesExtent) {\n const wgs84Extent = wgs84walesExtent || new Extent({\n xmin: -5.4,\n xmax: -2.3,\n ymin: 51.3,\n ymax: 53.5,\n spatialReference: new SpatialReference({\n wkid: 4326\n })\n });\n const minOsGridRef = new LatLon(wgs84Extent.ymin, wgs84Extent.xmin).toOsGrid();\n const maxOsGridRef = new LatLon(wgs84Extent.ymax, wgs84Extent.xmax).toOsGrid();\n const osgbExtent = new Extent({\n xmin: minOsGridRef.easting,\n ymin: minOsGridRef.northing,\n xmax: maxOsGridRef.easting,\n ymax: maxOsGridRef.northing,\n spatialReference: new SpatialReference({\n wkid: 27700\n })\n });\n /**\r\n * @type {Extent}\r\n */\n const webMercatorExtent = webMercatorUtils.geographicToWebMercator(wgs84Extent);\n return {\n 27700: osgbExtent,\n 4326: wgs84Extent,\n 102100: webMercatorExtent\n };\n }\n get boundingExtent() {\n return this._mapExtentRestrictionStrategy.boundingExtent;\n }\n\n /**\r\n * @param {Extent} extent\r\n */\n set boundingExtent(extent) {\n this._mapExtentRestrictionStrategyBoundingExtentSet = true;\n this._mapExtentRestrictionStrategy.boundingExtent = extent;\n }\n get extent() {\n return this._lastSetExtent;\n }\n set extent(extent) {\n this._lastSetExtent = extent;\n this.mapView.extent = extent;\n }\n getEsriViewSurfaceElement() {\n return this.domNode.querySelector(ESRI_VIEW_SURFACE_SELECTOR);\n }\n scheduleInteractivityOverlayTimeout(duration, message) {\n this.cancelScheduledInteractivityOverlayTimeout();\n this._interactivityOverlayTimeout = setTimeout(() => {\n if (message) {\n this.showInteractivityOverlayWithMessage(message);\n } else {\n this.hideInteractivityOverlay();\n }\n }, duration);\n }\n cancelScheduledInteractivityOverlayTimeout() {\n if (this._interactivityOverlayTimeout !== null) {\n clearTimeout(this._interactivityOverlayTimeout);\n this._interactivityOverlayTimeout = null;\n }\n }\n insertInteractivityOverlay() {\n this.domNode.appendChild(this._interactivityOverlay);\n }\n showInteractivityOverlayWithMessage(message) {\n try {\n $$1(this._interactivityOverlay).toggleClass('show', true);\n } catch (e) {\n console.error(e);\n }\n this._interactivityOverlay.innerText = message;\n }\n hideInteractivityOverlay() {\n try {\n $$1(this._interactivityOverlay).toggleClass('show', false);\n } catch (e) {\n console.error(e);\n }\n }\n isInteractivityOverlayVisible() {\n try {\n return $$1(this._interactivityOverlay).hasClass('show');\n } catch (e) {\n console.error(e);\n }\n }\n patchInputHandlers() {\n for (let i = 0; i < this.mapView.inputManager._inputManager._handlers.length; i++) {\n const handlerRegistration = this.mapView.inputManager._inputManager._handlers[i];\n let remove = false;\n if (handlerRegistration.handler instanceof VerticalTwoFingerDrag.VerticalTwoFingerDrag) {\n // This handler breaks two-finger vertical panning. Remove it.\n remove = true;\n }\n if (handlerRegistration.handler instanceof DragPan.DragPan) {\n // The default condition is to check whether count (number of pointers) == 1\n const condition = handlerRegistration.handler.dragEventSeparator.callbacks.condition;\n\n // Override it to handle 2 pointers instead by pretending 1 is present when we actually have 2 (otherwise tell it we have 0)\n handlerRegistration.handler.dragEventSeparator.callbacks.condition = (count, b) => {\n if (b.data.pointerType === 'touch') {\n return condition(count >= 2 ? 1 : 0, b);\n }\n return condition(count, b);\n };\n handlerRegistration.handler._handleDrag = d => {\n handlerRegistration.handler.dragEventSeparator.handle(d); // Passthru to original handler\n d._stopPropagation = false; // Allow PinchRotateAndZoom to receive this event\n };\n }\n\n if (handlerRegistration.handler instanceof PinchAction.PinchRotateAndZoom) {\n handlerRegistration.handler._handleDrag = d => {\n handlerRegistration.handler.dragEventSeparator.handle(d); // Passthru to original handler\n d._stopPropagation = false; // Allow DragPan to receive this event\n };\n }\n\n if (remove) {\n this.mapView.inputManager._inputManager._handlers.splice(i, 1);\n i--;\n }\n }\n }\n safeGoTo(target, options) {\n if (!this._mapViewReady) {\n if (target instanceof Extent) {\n this.extent = target;\n } else if (target.target instanceof Extent) {\n this.extent = target.extent;\n } else {\n console.warn('safeGoTo was called without an extent. Other targets like point/scale/center/viewpoint are not supported yet.');\n }\n return $$1.Deferred().resolve();\n }\n this._isCurrentlyChangingExtent = true;\n return this.mapView.goTo(target, options);\n }\n\n // #region Internal map event listeners\n onViewpointChanged(newViewpoint) {\n if (newViewpoint === null || !this._mapExtentRestrictionStrategy) {\n return; // Fixes setting mapView.viewpoint (which populates extent after rendering)\n }\n\n if (this._isCurrentlyChangingExtent) {\n this._isCurrentlyChangingExtent = false;\n this.invokeMapViewpointChangedListeners(newViewpoint);\n this._lastScale = newViewpoint.scale;\n return;\n }\n if (newViewpoint.targetGeometry.type !== 'point') {\n return;\n }\n const centerResult = this._mapExtentRestrictionStrategy.validateCenter(newViewpoint.targetGeometry);\n const sizeResult = this._mapExtentRestrictionStrategy.validateExtent(this.mapView.extent);\n if (!centerResult.ok || !sizeResult.ok) {\n const viewpoint = newViewpoint.clone();\n let viewpointChanged = false;\n if (!centerResult.ok) {\n viewpoint.targetGeometry = centerResult.target;\n viewpointChanged = true;\n }\n if (!sizeResult.ok && viewpoint.scale >= this._lastScale) {\n viewpoint.scale = this._lastScale;\n viewpointChanged = true;\n }\n if (viewpointChanged) {\n if (this.mapView.animation) {\n this.mapView.animation.stop();\n }\n this._isCurrentlyChangingExtent = true;\n this.mapView.viewpoint = viewpoint;\n return;\n }\n }\n this.invokeMapViewpointChangedListeners(newViewpoint);\n this._lastScale = newViewpoint.scale;\n }\n // #endregion\n\n // #region Event listener boilerplate methods\n addMapClickListener(callback) {\n if (this._onMapClickListeners.indexOf(callback) === -1) {\n this._onMapClickListeners.push(callback);\n }\n }\n invokeMapClickListeners(event) {\n for (let i = 0, x = this._onMapClickListeners.length; i < x; i++) {\n this._onMapClickListeners[i].bind(this)(event);\n }\n }\n addMapPointerMoveListener(callback) {\n if (this._onMapPointerMoveListeners.indexOf(callback) === -1) {\n this._onMapPointerMoveListeners.push(callback);\n }\n }\n invokeMapPointerMoveListeners(event) {\n for (let i = 0, x = this._onMapPointerMoveListeners.length; i < x; i++) {\n this._onMapPointerMoveListeners[i](event);\n }\n }\n addMapHomeButtonInvokedListener(callback) {\n if (this._onMapHomeButtonInvokedListeners.indexOf(callback) === -1) {\n this._onMapHomeButtonInvokedListeners.push(callback);\n }\n }\n invokeMapHomeButtonInvokedListeners() {\n for (let i = 0, x = this._onMapHomeButtonInvokedListeners.length; i < x; i++) {\n this._onMapHomeButtonInvokedListeners[i]();\n }\n }\n addMapViewpointChangedListener(callback) {\n if (this._onMapViewpointChangedListeners.indexOf(callback) === -1) {\n this._onMapViewpointChangedListeners.push(callback);\n }\n }\n invokeMapViewpointChangedListenersIfNeeded() {\n if (this._pendingMapViewpointChangedEventArgs !== null) {\n const args = this._pendingMapViewpointChangedEventArgs;\n this._pendingMapViewpointChangedEventArgs = null;\n this.invokeMapViewpointChangedListeners.apply(this, args);\n }\n }\n invokeMapViewpointChangedListeners(viewpoint) {\n if (this._isAnimating || this._isPointerDown) {\n this._pendingMapViewpointChangedEventArgs = arguments;\n return;\n }\n for (let i = 0, x = this._onMapViewpointChangedListeners.length; i < x; i++) {\n this._onMapViewpointChangedListeners[i](viewpoint);\n }\n }\n addMapExtentChangedListener(callback) {\n if (this._onMapExtentChangedListeners.indexOf(callback) === -1) {\n this._onMapExtentChangedListeners.push(callback);\n }\n }\n invokeMapExtentChangedListenersIfNeeded() {\n if (this._pendingMapExtentChangedEventArgs !== null) {\n const args = this._pendingMapExtentChangedEventArgs;\n this._pendingMapExtentChangedEventArgs = null;\n this.invokeMapExtentChangedListeners.apply(this, args);\n }\n }\n invokeMapExtentChangedListeners(extent) {\n if (this._isAnimating || this._isPointerDown) {\n this._pendingMapExtentChangedEventArgs = arguments;\n return;\n }\n for (let i = 0, x = this._onMapExtentChangedListeners.length; i < x; i++) {\n this._onMapExtentChangedListeners[i](extent);\n }\n }\n // #endregion\n}\n\nclass MapLayerBase {\n /*\r\n * Params:\r\n * resourceUrl (string): the full URL of the endpoint to retrieve geometric data\r\n * resourceUrl (object): can be passed in as an object containing a parameter to prevent load on init\r\n * graphicSymbol (function(attributes)): a function that accepts attributes as its parameter used to return the graphic symbol\r\n * dataSorce (Promise): a promise that provides a datasource, this avoids having to hit an API to retrieve data if it is already available elsewhere\r\n * featureGeometryType (string): the type of feature, polygon, point...\r\n */\n constructor(resourceUrl, graphicSymbol, datasource, featureGeometryType) {\n this._loadDataOnInit = true;\n if (resourceUrl.loadDataOnInit === false || resourceUrl.loadDataOnInit) {\n this._loadDataOnInit = resourceUrl.loadDataOnInit;\n this._resourceUrl = resourceUrl.Url;\n } else {\n this._resourceUrl = resourceUrl;\n }\n this._graphicSymbol = graphicSymbol;\n this._dataLoaded = false;\n this._featureLayer = new FeatureLayer({\n source: [],\n fields: ['*'],\n objectIdField: 'TargetAreaID',\n geometryType: featureGeometryType\n });\n if (!this._loadDataOnInit) {\n this._dataLoaded = true;\n return;\n }\n if (!datasource) {\n this._loadData();\n } else {\n // if the same datasource is used by two layers then this avoids having to download a copy for each layer\n datasource().then(data => {\n this._data = data;\n this._dataLoaded = true;\n if (this._addFeaturesToLayer) {\n this._addFeaturesToLayer(data);\n }\n }).catch(error => {\n console.error(error);\n });\n }\n }\n\n /*\r\n * Loads data from the resourceUrl: if successful appends graphics to layer\r\n */\n UpdateDataFromResource(query) {\n this._loadData(query);\n }\n\n /*\r\n * (Promise) Returns the data used to render the features once it is available.\r\n */\n GetData() {\n this._checkDataCount = 0;\n return new Promise(this._checkDataPromise.bind(this));\n }\n\n /*\r\n * (FeatureLayer): returns the underlying feature layer\r\n */\n GetLayer() {\n return this._featureLayer;\n }\n RemoveAllFeatures() {\n this._featureLayer.source.removeAll();\n }\n _checkData(resolve, reject, intervalId) {\n this._checkDataCount += 1;\n if (this._checkDataCount > 200) {\n // exceeded timeout\n this._dataLoaded = true;\n }\n if (this._dataLoaded) {\n if (this._data) {\n resolve(this._data);\n } else {\n reject('Failed to load data');\n }\n const intervalEntry = this._intervals.find(x => x.id === intervalId);\n if (!intervalEntry) throw new Error('Failed to clear interval');\n clearInterval(intervalEntry.interval);\n }\n }\n _checkDataPromise(resolve, reject) {\n if (!this._intervals) this._intervals = [];\n const intervalId = Date.now();\n this._intervals.push({\n id: intervalId,\n interval: setInterval(this._checkData.bind(this, resolve, reject, intervalId), 500)\n });\n }\n _loadData(query) {\n this._dataLoaded = false;\n let url = this._resourceUrl;\n if (query) {\n url = `${this._resourceUrl}${query}`;\n }\n fetch(url).then(data => {\n try {\n return data.json();\n } catch (ex) {\n this._dataLoaded = true;\n console.error(ex);\n return null;\n }\n }).then(json => {\n if (json === null) {\n // todo: log this to telemetry\n console.error(`Error downloading data from ${this._resourceUrl}`);\n return '';\n }\n const data = JSON.parse(json);\n if (this._addFeaturesToLayer) {\n this._addFeaturesToLayer(data);\n }\n this._data = data;\n return this._featureLayer.source;\n }).then(g => {\n this._dataLoaded = true;\n console.info(`feature loaded ${this._resourceUrl}`);\n }).catch(error => {\n this._dataLoaded = true;\n console.error(`error loading feature ${this._resourceUrl}`);\n });\n }\n}\n\nconst latLngSpatialReference = new SpatialReference({\n wkid: 4326\n});\nclass MapLayerPointData {\n constructor(options) {\n this._options = options;\n if (!this._options.dataUrl) {\n console.error('Data URL has not been defined');\n throw 'Data URL has not been defined';\n }\n this._options.convertPointToOSGridRef = this._options.convertPointToOSGridRef === undefined ? true : this._options.convertPointToOSGridRef;\n this.data = [];\n this._dataLoaded = false;\n }\n get loaded() {\n return this._dataLoaded;\n }\n fetch() {\n return $$1.ajax(this._options.dataUrl, {\n context: this\n }).then(data => {\n this.data = data;\n if (this._options.convertPointToOSGridRef) {\n this._convertDataPointsToOsGridReference();\n }\n this._dataLoaded = true;\n return this; // return this to prohibit accessing the response directly, and must go through this class\n });\n }\n\n _convertDataPointsToOsGridReference() {\n for (let i = 0; i < this.data.length; i++) {\n const datum = this.data[i];\n const gridRef = new OsGridRef(datum.britishNationalGrid.x, datum.britishNationalGrid.y);\n const latlng = gridRef.toLatLon();\n datum.point = new Point({\n type: 'point',\n latitude: latlng.lat,\n longitude: latlng.lon,\n spatialReference: latLngSpatialReference\n });\n }\n }\n}\n\nclass MapPolygonLayer extends MapLayerBase {\n /*\r\n * Params:\r\n * resourceUrl (string): the full URL of the endpoint to retrieve geometric data\r\n * graphicSymbol (function(attributes)): a function that accepts attributes as its parameter used to return the graphic symbol\r\n * dataSorce (Promise): a promise that provides a datasource, this avoids having to hit an API to retrieve data if it is already available elsewhere\r\n */\n constructor(resourceUrl, graphicSymbol, datasource) {\n super(resourceUrl, graphicSymbol, datasource, 'polygon');\n }\n _addFeaturesToLayer(data) {\n data.forEach(geometryData => {\n geometryData.geometry.rings.forEach(ring => {\n const graphic = this._createGraphic(ring, geometryData.attributes);\n this._featureLayer.source.add(graphic);\n });\n });\n }\n _createGraphic(rings, attributes) {\n const polygonJson = {\n rings,\n spatialReference: {\n wkid: 4326\n }\n };\n const poly = new Polygon(polygonJson);\n let fs = this._graphicSymbol ? this._graphicSymbol(attributes) : null;\n if (!fs) {\n fs = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0, 0]), 2), new Color([255, 0, 0, 0.6]));\n }\n return new Graphic(poly, fs);\n }\n}\n\nclass MapPointLayer extends MapLayerBase {\n /*\r\n * Params:\r\n * resourceUrl (string): the full URL of the endpoint to retrieve geometric data\r\n * graphicSymbol (function(attributes)): a function that accepts attributes as its parameter used to return the graphic symbol\r\n * dataSorce (Promise): a promise that provides a datasource, this avoids having to hit an API to retrieve data if it is already available elsewhere\r\n */\n constructor(resourceUrl, graphicSymbol, datasource) {\n super(resourceUrl, graphicSymbol, datasource, 'point');\n }\n _addFeaturesToLayer(data) {\n data.forEach(geometryData => {\n const graphic = this._createGraphic(geometryData.geometry.Points, geometryData.attributes);\n this._featureLayer.source.add(graphic);\n });\n }\n _createGraphic(pointData, attributes) {\n const point = {\n type: 'point',\n // autocasts as new Point()\n longitude: pointData[0],\n latitude: pointData[1]\n };\n let fs = this._graphicSymbol ? this._graphicSymbol(attributes) : null;\n if (!fs) {\n fs = {\n type: 'simple-marker',\n // autocasts as new SimpleMarkerSymbol()\n color: [255, 0, 0]\n };\n }\n return new Graphic({\n geometry: point,\n symbol: fs\n });\n }\n}\n\nclass EventDispatcher {\n constructor() {\n this.listeners = [];\n }\n invokeListeners(args, context) {\n for (let i = 0, x = this.listeners.length; i < x; i++) {\n this.invokeListener(this.listeners[i], args, context);\n }\n }\n invokeListener(listener, args, context) {\n if (typeof context === typeof undefined) {\n context = this;\n }\n listener.apply(context, args);\n }\n addListener(listener) {\n return new EventDispatcherSubscription(this, listener);\n }\n static noop() {\n return new NoopEventDispatcher();\n }\n}\nclass EventDispatcherSubscription {\n constructor(eventDispatcher, reference) {\n this.eventDispatcher = eventDispatcher;\n this.reference = reference;\n this.disposed = false;\n if (this.eventDispatcher.listeners.indexOf(reference) === -1) {\n this.eventDispatcher.listeners.push(reference);\n }\n }\n dispose() {\n let index = this.eventDispatcher.listeners.indexOf(this.reference);\n this.disposed = true;\n if (index === -1) {\n return false;\n } else {\n this.eventDispatcher.listeners.splice(index, 1);\n return true;\n }\n }\n}\nclass NoopEventDispatcher {\n invokeListeners() {\n //noop\n }\n addListener() {\n //noop\n }\n}\n\nclass MapPopup extends Popup {\n constructor(mapView, createMapPopupDetailComponent) {\n super({\n buttonEnabled: false,\n dockEnabled: false,\n dockOptions: {\n buttonEnabled: false,\n breakpoint: false\n },\n actions: []\n });\n this._createMapPopupDetailComponent = createMapPopupDetailComponent;\n this.mapView = mapView;\n this._popupHideTimerId = null;\n this.onMouseEnter = new EventDispatcher();\n }\n clear() {\n super.clear.apply(this, arguments);\n }\n show(data) {\n console.log(data);\n if (this.mapView.popup !== this) {\n this.mapView.popup = this;\n }\n this.viewModel.visible = true;\n this.viewModel.content = this._buildContent(data);\n this.clearPopupHideTimeout();\n this.visible = true;\n console.log('here');\n }\n\n // #region Popup auto-hide methods\n beginPopupHideTimeout() {\n if (this._popupHideTimerId !== null) {\n return;\n }\n this._popupHideTimerId = setTimeout(() => {\n this._popupHideTimerId = null;\n this.visible = false;\n }, 1000);\n }\n clearPopupHideTimeout() {\n if (this._popupHideTimerId !== null) {\n clearTimeout(this._popupHideTimerId);\n this._popupHideTimerId = null;\n }\n }\n // #endregion\n\n // private\n _buildContent(data) {\n const component = this._createMapPopupDetailComponent(data, true);\n const element = component.render();\n $(element).on('mousewheel DOMMouseScroll', event => {\n if (event.ctrlKey) {\n event.preventDefault();\n }\n });\n $(element).on('mouseenter', () => {\n this.onMouseEnter.invokeListeners([], this);\n this.clearPopupHideTimeout();\n });\n return element;\n }\n _isOutsideView(a) {\n // a contains popupHeight, which is derived from the popup container's height and max-height. Force it to use the height instead.\n a.popupHeight = this._mainContainerNode === null ? 0 : parseInt(window.getComputedStyle(this._mainContainerNode).height.replace(/[^-\\d\\.]/g, ''), 10);\n return super._isOutsideView(a);\n }\n _calculateAlignmentPosition(x, y, mapView, fullWidth) {\n const result = super._calculateAlignmentPosition(x, y, mapView, fullWidth);\n\n // Negate the mapView.padding that ESRI adds to its function\n if ('left' in result) {\n result.left += this.view.padding.left + 5;\n }\n if ('right' in result) {\n result.right += this.view.padding.right - 5;\n }\n if ('bottom' in result) {\n result.bottom += this.view.padding.bottom;\n }\n if ('top' in result) {\n result.top += this.view.padding.top;\n }\n return result;\n }\n}\n\nclass MapPopupDetailComponent {\n constructor(data, isPopup) {}\n render() {\n const element = $('<div>Override this to show custom popup content</div>')[0];\n return element;\n }\n}\n\nexport { MapController, MapExtentRestrictionStrategy, MapLayerBase, MapLayerPointData, MapPointLayer, MapPolygonLayer, MapPopup, MapPopupDetailComponent };\n//# sourceMappingURL=nrw.core.map.esm.js.map\n","export default class AccordionHelper {\r\n\tstatic classAccordionCloseModifier() { return \"accordion--closed\"; }\r\n\tstatic classAccordionContent() { return \".accordion__content\"; }\r\n\r\n\tToggleState(accordion, force = null) {\r\n\t\tvar $accordion = $(accordion);\r\n\t\t$accordion.toggleClass(AccordionHelper.classAccordionCloseModifier());\r\n\r\n\t\tvar $title = $accordion.find(\".accordion__title-bar\");\r\n\t\tvar $content = $accordion.find(AccordionHelper.classAccordionContent());\r\n\r\n\t\tvar contentId = $content[0].id;\r\n\r\n\t\tif (!contentId) {\r\n\t\t\t// an id is required for accessibility aria tags.\r\n\t\t\tcontentId = \"random-id-\" + Math.random().toString(36).slice(-5);\r\n\t\t\t$content[0].id = contentId;\r\n\t\t}\r\n\r\n\t\tvar titleId = $title[0].id;\r\n\r\n\t\tif (!titleId) {\r\n\t\t\t// an id is required for accessibility aria tags.\r\n\t\t\ttitleId = \"random-id-\" + Math.random().toString(36).slice(-5);\r\n\t\t\t$title[0].id = titleId;\r\n\t\t}\r\n\r\n\t\tvar activeElement = document.activeElement;\r\n\r\n\t\tif (force === false || (force !== true && $accordion.hasClass(AccordionHelper.classAccordionCloseModifier()))) {\r\n\t\t\t$content\r\n\t\t\t\t.attr(\"aria-labelledby\", titleId)\r\n\t\t\t\t.slideUp(250);\r\n\t\t\t$title\r\n\t\t\t\t.attr(\"aria-expanded\", false)\r\n\t\t\t\t.removeAttr(\"aria-activedescendant\");\r\n\r\n\t\t\tif ($(activeElement).closest($content).length !== 0) {\r\n\t\t\t\t$title.focus();\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t} else {\r\n\t\t\t$content\r\n\t\t\t\t.attr(\"aria-labelledby\", titleId)\r\n\t\t\t\t.slideDown(250, function () {\r\n\t\t\t\t\t$title\r\n\t\t\t\t\t\t.attr(\"aria-activedescendant\", contentId);\r\n\t\t\t\t});\r\n\r\n\t\t\t$title\r\n\t\t\t\t.attr(\"aria-expanded\", true);\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tClose(accordion) {\r\n\t\tvar $accordion = $(accordion);\r\n\t\tvar $content = $(accordion).find(AccordionHelper.classAccordionContent());\r\n\t\t$accordion.addClass(AccordionHelper.classAccordionCloseModifier());\r\n\t\t$content.slideUp(250);\r\n\t}\r\n}","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\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\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\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\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\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) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(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.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\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 IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\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 (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(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#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\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 return methods;\n};\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 defineIterator = require('../internals/define-iterator');\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.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/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.github.io/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.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\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.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/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","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\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\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\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","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://теÑÑ‚').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\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\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(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 no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\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 ? objectKeys(S).concat(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 || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(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 = toLength(O.length);\n result = new C(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","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.appent` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+\\-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","class LinkBuilder {\r\n linkToGraph(station, parameterType) {\r\n if (station.url === null) {\r\n let query = new URLSearchParams();\r\n if (typeof parameterType !== typeof undefined) {\r\n query.set(\"parameterType\", parameterType);\r\n }\r\n return `/Station/${station.id}?${query.toString()}`;\r\n }\r\n return station.url;\r\n }\r\n}\r\nexport default new LinkBuilder();\r\n","import moment from \"moment\";\r\nclass Configuration {\r\n constructor() {\r\n $.extend(true, this, {\r\n serviceRefreshInterval: \"5 minutes\",\r\n rainfallReadingOffset: \"15 minutes\",\r\n mapBasemap: null\r\n });\r\n }\r\n\r\n apply(config) {\r\n let keys = Object.keys(this);\r\n\r\n for (let i = 0; i < keys.length; i++) {\r\n if (config[keys[i]]) {\r\n this[keys[i]] = config[keys[i]];\r\n }\r\n }\r\n }\r\n\r\n get rainfallReadingOffsetMilliseconds() {\r\n let string = this.rainfallReadingOffset.split(\" \");\r\n let number = +string[0];\r\n let unit = string[1];\r\n\r\n return moment.duration(number, unit).asMilliseconds();\r\n }\r\n\r\n get refreshIntervalMilliseconds() {\r\n let string = this.serviceRefreshInterval.split(\" \");\r\n let number = +string[0];\r\n let unit = string[1];\r\n \r\n return moment.duration(number, unit).asMilliseconds();\r\n }\r\n}\r\nlet instance = new Configuration();\r\nexport default instance;\r\n","import Extent from \"esri/geometry/Extent\";\r\nimport SpatialReference from \"esri/geometry/SpatialReference\";\r\nimport webMercatorUtils from \"esri/geometry/support/webMercatorUtils\";\r\n\r\nconst OS_GB_SPATIAL_REFERENCE = new SpatialReference({\r\n wkid: 27700\r\n});\r\n\r\nexport default {\r\n LAT_LNG_SPATIAL_REFERENCE: new SpatialReference({\r\n wkid: 4326\r\n }),\r\n WEB_MERCATOR_SPATIAL_REFERENCE: new SpatialReference({\r\n wkid: 3857\r\n }),\r\n OS_GB_SPATIAL_REFERENCE,\r\n WALES_EXTENT: new Extent({\r\n xmin: 163085,\r\n xmax: 380197,\r\n ymin: 161145,\r\n ymax: 400409,\r\n spatialReference: OS_GB_SPATIAL_REFERENCE\r\n }),\r\n LOCATION_ZOOM_RADIUS_KM: 10,\r\n TRANSPARENT_PIXEL_DATA_URI: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQI12P4DwQACfsD/WMmxY8AAAAASUVORK5CYII=\",\r\n WALES_MASK_LAYER_URL: \"/map/layers/Basemap\",\r\n FONT_FAMILY: \"'Gotham SSm A', 'Gotham SSm B', 'Montserrat', sans-serif\"\r\n};\r\n","class CookieJar {\r\n get viewTypeCookieKey() { return \"RLOI_lastVisitViewType\"; }\r\n get persistentCookieExpiryTimeInDays() { return 365; }\r\n\r\n get viewType() {\r\n return CookieJar.readCookie(this.viewTypeCookieKey);\r\n }\r\n\r\n set viewType(value) {\r\n CookieJar.createCookie(this.viewTypeCookieKey, value, this.persistentCookieExpiryTimeInDays);\r\n }\r\n\r\n //#region Cookie utility methods from https://www.quirksmode.org/js/cookies.html\r\n static createCookie(name, value, days) {\r\n if (days) {\r\n var date = new Date();\r\n date.setTime(date.getTime()+(days*24*60*60*1000));\r\n var expires = \"; expires=\"+date.toGMTString();\r\n }\r\n else var expires = \"\";\r\n document.cookie = name+\"=\"+value+expires+\"; path=/\";\r\n }\r\n\r\n static readCookie(name) {\r\n var nameEQ = name + \"=\";\r\n var ca = document.cookie.split(';');\r\n for(var i=0;i < ca.length;i++) {\r\n var c = ca[i];\r\n while (c.charAt(0)==' ') c = c.substring(1,c.length);\r\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\r\n }\r\n return null;\r\n }\r\n //#endregion\r\n}\r\n\r\nexport default CookieJar;","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 Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var 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 typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\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 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 nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\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\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, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, 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","'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 C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\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, IS_MAP);\n });\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(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 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 // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\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 // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\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 // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n defineIterator(C, 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 // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// Add resources coming from the server here.\r\n// Note: if this list contains something that the server doesn't provide, this entire file will not work.\r\nlet availableResources = [\r\n \"Actual\",\r\n \"Average\",\r\n \"Back\",\r\n \"ContextualGraphHelpText\",\r\n \"CumulativeActual\",\r\n \"CumulativeDailyHeading\",\r\n \"CurrentLangCode\",\r\n \"FiltersNeedsAtLeastOneSelected\",\r\n \"ForPrevious12Months\",\r\n \"Graph\",\r\n \"GraphAccessibilityLabel\",\r\n \"LessData\",\r\n \"LevelFalling\",\r\n \"LevelRising\",\r\n \"LevelSteady\",\r\n \"LongTermComparison\",\r\n \"MapCouldNotBeLoaded\",\r\n \"MapInteractivityCtrlScroll\",\r\n \"MapInteractivityTwoFingerTouch\",\r\n \"MonthlyAverage\",\r\n \"MonthlyGraphHeading\",\r\n \"MoreData\",\r\n \"NextMonth\",\r\n \"NoDataAvailable\",\r\n \"NoDataAvailableForCurrentRange\",\r\n \"NoExactMatchAction\",\r\n \"NoExactMatchActionWithTooManyResults\",\r\n \"NoExactMatchClearLink\",\r\n \"NoResults\",\r\n \"Offline\",\r\n \"PageNumber\",\r\n \"PreviousMonth\",\r\n \"RainfallDry\",\r\n \"RainfallHeavyRain\",\r\n \"RainfallHelpText\",\r\n \"RainfallLightRain\",\r\n \"RainfallModerateRain\",\r\n \"Search\",\r\n \"SearchPlaceholder\",\r\n \"SearchedClearHint\",\r\n \"SearchedClearHintLink\",\r\n \"SearchedNrwCatchment\",\r\n \"SearchedNrwRiver\",\r\n \"SearchedNrwStation\",\r\n \"SearchedSpatial\",\r\n \"TypicalLevel\",\r\n \"UpToDateReadingNotAvailable\",\r\n \"UserLocationOutsideWales\",\r\n \"View\",\r\n \"ViewGraph\",\r\n \"ViewLessData\",\r\n \"ViewMoreData\",\r\n \"ViewRainfallLevelGraph\",\r\n \"ViewRiverLevelGraph\",\r\n \"ViewTidalLevelGraph\",\r\n \"Water\",\r\n \"YourLocationError1\",\r\n \"YourLocationError2\",\r\n \"YourLocationError3\",\r\n \"YourLocationErrorMessage\",\r\n \"YourLocationSearchTerm\"\r\n];\r\n\r\nlet pageResources = window.__resources;\r\n\r\n// Use __resourcesList() in console to generate list of resources to dump in availableResources\r\n// NOTE: This method will never remove a key if it's specified in one place and not the other.\r\nwindow.__resourcesList = () => {\r\n let keys = new Set(Object.keys(pageResources));\r\n for (let i = 0; i < availableResources.length; i++) {\r\n keys.add(availableResources[i]);\r\n }\r\n\r\n keys = Array.from(keys.values()).sort();\r\n\r\n return `let availableResources = ${JSON.stringify(keys, null, 4)};`;\r\n\r\n}\r\n\r\nlet resourceMap = availableResources.reduce((resources, key) => {\r\n if (!(key in pageResources)) {\r\n throw new Error(`Key ${key} doesn't exist in resources`);\r\n }\r\n resources[key] = pageResources[key];\r\n return resources;\r\n}, {});\r\n\r\nexport default resourceMap;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nimport Resource from \"NRW/Util/Resource\";\r\n\r\nclass Filter {\r\n constructor(validLayerTypes) {\r\n this.$filterCheckboxes = $(\".map-filter-button__checkbox\");\r\n this.$filterElements = $(\".map-radio-container__element\");\r\n this.$mobileMenuButton = $(\".search__mobile-menu-button\");\r\n this.$mobileFilterContainer = $(\".search__container--mobile\");\r\n this.$mobileActiveFilterCounter = $(\".search__mobile-menu-button--filter-counter\");\r\n\r\n this.$filterCheckboxes.change((event) => this.filterChanged(event));\r\n\r\n this.$filterElements.keypress((event) => {\r\n const keycode = (event.keyCode ? event.keyCode : event.which);\r\n if (keycode == \"13\") {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n let input = $(event.currentTarget).find(\"input\")[0];\r\n input.checked = !input.checked;\r\n this.filterChanged(event);\r\n }\r\n });\r\n\r\n this.$mobileMenuButton.click(() => this.toggleMobileMenu());\r\n\r\n this._validLayerTypes = validLayerTypes;\r\n\r\n this.onChange = new EventDispatcher();\r\n\r\n this._updatingFilters = false;\r\n this._filterDidChange = false;\r\n\r\n this._state = {};\r\n\r\n for (let i = 0; i < validLayerTypes.length; i++) {\r\n let validLayerType = validLayerTypes[i];\r\n\r\n this._state[validLayerType] = false;\r\n }\r\n\r\n this.onChange.addListener(this.updateActiveFilterCounter);\r\n }\r\n\r\n get validLayerTypes() {\r\n return this._validLayerTypes;\r\n }\r\n\r\n filterChanged(event) {\r\n let layerId = $(event.target).data(\"layerId\");\r\n let layerIsActive = event.target.checked;\r\n\r\n if (!layerIsActive && this.getNumberOfActiveFilters() === 1 && this.state[layerId] === true) {\r\n // If this is the only filter left and is being unchecked\r\n this.setLayerState(layerId, true);\r\n alert(Resource.FiltersNeedsAtLeastOneSelected);\r\n } else {\r\n //toggle class\r\n this.setLayerState(layerId, layerIsActive);\r\n }\r\n }\r\n\r\n setLayerState(layerId, layerIsActive) {\r\n let didChangeState = this._state[layerId] !== layerIsActive;\r\n this._state[layerId] = layerIsActive;\r\n\r\n var $checkbox = $(`[data-layer-id='${layerId}']`);\r\n\r\n $checkbox.prop(\"checked\", layerIsActive);\r\n\r\n if (didChangeState) {\r\n if (!this._updatingFilters) {\r\n this.onChange.invokeListeners([this.state], this);\r\n } else {\r\n this._filterDidChange = true;\r\n }\r\n }\r\n }\r\n\r\n get state() {\r\n return this._state;\r\n }\r\n\r\n replaceState(filterState) {\r\n let newState = {};\r\n\r\n for (let i = 0; i < this.validLayerTypes.length; i++) {\r\n let validLayerType = this.validLayerTypes[i];\r\n newState[validLayerType] = false;\r\n }\r\n\r\n let layerTypes = Object.keys(filterState);\r\n for (let i = 0; i < layerTypes.length; i++) {\r\n let layerType = layerTypes[i];\r\n\r\n if (this.validLayerTypes.indexOf(layerType) >= 0) {\r\n let layerIsActive = filterState[layerType];\r\n newState[layerType] = layerIsActive;\r\n }\r\n }\r\n\r\n return this.patchState(newState);\r\n }\r\n\r\n patchState(filterState) {\r\n this._updatingFilters = true;\r\n\r\n let layerIds = Object.keys(filterState);\r\n\r\n for (let i = 0; i < layerIds.length; i++) {\r\n let layerId = layerIds[i];\r\n let layerIsActive = filterState[layerId];\r\n\r\n this.setLayerState(layerId, layerIsActive);\r\n }\r\n\r\n this._updatingFilters = false;\r\n\r\n if (this._filterDidChange) {\r\n this.onChange.invokeListeners([this.state], this);\r\n }\r\n\r\n this._filterDidChange = false;\r\n }\r\n\r\n toggleMobileMenu() {\r\n var isOpen = this.$mobileMenuButton.hasClass(\r\n \"search__mobile-menu-button--menu-open\"\r\n );\r\n\r\n this.$mobileMenuButton\r\n .toggleClass(\"search__mobile-menu-button--menu-open\", !isOpen)\r\n .attr(\"aria-expanded\", !isOpen)\r\n .attr(\r\n \"aria-activedescendant\",\r\n isOpen ? null : this.$mobileFilterContainer.get(0).id\r\n );\r\n\r\n this.$mobileFilterContainer\r\n .toggleClass(\"search__container--mobile-off\", isOpen)\r\n .attr(\"aria-expanded\", !isOpen);\r\n }\r\n\r\n getNumberOfActiveFilters() {\r\n return Object.keys(this.state).reduce((c, layerType) => {\r\n return c + +this.state[layerType];\r\n }, 0);\r\n }\r\n\r\n updateActiveFilterCounter() {\r\n let count = this.getNumberOfActiveFilters();\r\n this.$mobileActiveFilterCounter.text(count);\r\n }\r\n}\r\nexport default Filter;\r\n","import Circle from \"esri/geometry/Circle\";\r\nimport Multipoint from \"esri/geometry/Multipoint\";\r\n\r\nfunction Geometry() {}\r\n\r\nGeometry.extentOfRadius = (point, radiusKm) => {\r\n return new Circle({\r\n center: point,\r\n radius: radiusKm,\r\n radiusUnit: \"kilometers\",\r\n spatialReference: point.spatialReference\r\n }).extent;\r\n};\r\n\r\nGeometry.extentOfPoints = points => {\r\n let multipoint = new Multipoint({\r\n spatialReference: (points[0] || {}).spatialReference\r\n });\r\n for (let i = 0; i < points.length; i++) {\r\n multipoint.addPoint(points[i]);\r\n }\r\n return multipoint.extent;\r\n};\r\n\r\nexport default Geometry;\r\n","import Configuration from \"NRW/Util/Configuration\";\r\nimport Basemap from \"esri/Basemap\";\r\nimport TileLayer from \"esri/layers/TileLayer\";\r\nclass MapBasemapConfigurationMapper {\r\n static map() {\r\n let basemapConfig = Configuration.mapBasemap;\r\n\r\n if (!basemapConfig) {\r\n return null;\r\n }\r\n\r\n return new Basemap({\r\n baseLayers: (basemapConfig.baseLayers || []).map(url => new TileLayer({ url: url })),\r\n referenceLayers: (basemapConfig.referenceLayers || []).map(url => new TileLayer({ url: url })),\r\n });\r\n }\r\n}\r\nexport default MapBasemapConfigurationMapper;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nclass Scheduler {\r\n constructor(intervalMs) {\r\n if (typeof intervalMs !== \"number\" || intervalMs <= 0) {\r\n throw new Error(\"Interval must be positve number\");\r\n }\r\n \r\n this.intervalMs = intervalMs;\r\n this.timerId = null;\r\n \r\n this.onTick = new EventDispatcher();\r\n }\r\n \r\n start() {\r\n if (this.timerId === null) {\r\n this.timerId = setInterval(() => {\r\n this.onTick.invokeListeners([], this);\r\n }, this.intervalMs);\r\n }\r\n }\r\n \r\n stop() {\r\n if (this.timerId !== null) {\r\n clearInterval(this.timerId);\r\n this.timerId = null;\r\n }\r\n }\r\n}\r\nexport default Scheduler;\r\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\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 (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\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\nvar nativeStartsWith = ''.startsWith;\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.github.io/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 = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\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 UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || 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\n// `RegExp` constructor\n// https://tc39.github.io/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\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 var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.github.io/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","RegExp.escape = function (s) {\r\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n};\r\n\r\nlet Html = {\r\n escape: function (unsafe) {\r\n return unsafe // From https://stackoverflow.com/a/6234804\r\n .replace(/&/g, \"&\")\r\n .replace(/</g, \"<\")\r\n .replace(/>/g, \">\")\r\n .replace(/\"/g, \""\")\r\n .replace(/'/g, \"'\");\r\n },\r\n wrap: function wrap(item, searchText, startTag, endTag) {\r\n var regex = new RegExp(RegExp.escape(Html.escape(searchText)), \"gi\"); \r\n return Html.escape(item).replace(regex, (match) =>`${startTag}${match}${endTag}`);\r\n },\r\n renderTemplate: function(templateHtmlString, componentMap) {\r\n /*\r\n <div data-component=\"myComponent\"></div>\r\n \r\n This div would be replaced with the \"myComponent\" component in componentMap by using myComponent's render() method,\r\n which must return a DOMElement or an array of them.\r\n */\r\n let $dom = $(templateHtmlString);\r\n let root = $(\"<div></div>\")[0];\r\n\r\n $(root).append($dom);\r\n\r\n let componentKeys = Object.keys(componentMap);\r\n for (let i = 0; i < componentKeys.length; i++) {\r\n let key = componentKeys[i];\r\n let component = componentMap[key];\r\n\r\n let divToReplace = root.querySelector(`[data-component=\"${key}\"]`);\r\n\r\n let domToReplaceWith = component.render ? component.render() : $(`<p>MISSING COMPONENT ${key}</p>`)[0];\r\n\r\n $(divToReplace).replaceWith(domToReplaceWith);\r\n }\r\n\r\n return $(root).children().get();\r\n },\r\n staticComponent: function (element) {\r\n return {\r\n element: element,\r\n render: function () {\r\n return element;\r\n }\r\n };\r\n }\r\n \r\n}\r\n\r\nexport default Html;","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('some');\n\n// `Array.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\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.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/**\r\n * @template T\r\n * @template U\r\n * @param {{[key: string]: T}} object \r\n * @param {(item: T, key: string) => U} itemSelector\r\n * @returns {U[]}\r\n */\r\nexport function toArray(object, itemSelector = (x, key) => x) {\r\n return Object.keys(object).reduce((array, key) => {\r\n array.push(itemSelector(object[key], key));\r\n return array;\r\n }, []);\r\n}\r\n\r\nexport function toArrayOfKeyValuePairs(object) {\r\n return toArray(object, (value, key) => ({key, value}));\r\n}","/**\r\n * @param {{[key: string]: TInput}} object\r\n * @param { (item: TInput, key: string) => TOutput } itemTransform\r\n * @template TInput\r\n * @template TOutput\r\n * @returns { {[key: string]: TOutput}}\r\n */\r\nexport function mapObject(object, itemTransform) {\r\n return Object.keys(object).reduce((result, key) => {\r\n const value = object[key];\r\n result[key] = itemTransform(value, key);\r\n return result;\r\n }, {});\r\n}","/**\r\n *\r\n * @param {*} value\r\n * @param {*} index\r\n * @param {any[]} array\r\n */\r\nexport function unique(value, index, array) {\r\n return array.indexOf(value) === index;\r\n}\r\n","var characterMap = {\r\n\t\"À\": \"A\",\r\n\t\"Ã\": \"A\",\r\n\t\"Â\": \"A\",\r\n\t\"Ã\": \"A\",\r\n\t\"Ä\": \"A\",\r\n\t\"Ã…\": \"A\",\r\n\t\"Ấ\": \"A\",\r\n\t\"Ắ\": \"A\",\r\n\t\"Ẳ\": \"A\",\r\n\t\"Ẵ\": \"A\",\r\n\t\"Ặ\": \"A\",\r\n\t\"Æ\": \"AE\",\r\n\t\"Ầ\": \"A\",\r\n\t\"Ằ\": \"A\",\r\n\t\"È‚\": \"A\",\r\n\t\"Ç\": \"C\",\r\n\t\"Ḉ\": \"C\",\r\n\t\"È\": \"E\",\r\n\t\"É\": \"E\",\r\n\t\"Ê\": \"E\",\r\n\t\"Ë\": \"E\",\r\n\t\"Ế\": \"E\",\r\n\t\"Ḗ\": \"E\",\r\n\t\"Ề\": \"E\",\r\n\t\"Ḕ\": \"E\",\r\n\t\"Ḝ\": \"E\",\r\n\t\"Ȇ\": \"E\",\r\n\t\"ÃŒ\": \"I\",\r\n\t\"Ã\": \"I\",\r\n\t\"ÃŽ\": \"I\",\r\n\t\"Ã\": \"I\",\r\n\t\"Ḯ\": \"I\",\r\n\t\"ÈŠ\": \"I\",\r\n\t\"Ã\": \"D\",\r\n\t\"Ñ\": \"N\",\r\n\t\"Ã’\": \"O\",\r\n\t\"Ó\": \"O\",\r\n\t\"Ô\": \"O\",\r\n\t\"Õ\": \"O\",\r\n\t\"Ö\": \"O\",\r\n\t\"Ø\": \"O\",\r\n\t\"á»\": \"O\",\r\n\t\"Ṍ\": \"O\",\r\n\t\"á¹’\": \"O\",\r\n\t\"ÈŽ\": \"O\",\r\n\t\"Ù\": \"U\",\r\n\t\"Ú\": \"U\",\r\n\t\"Û\": \"U\",\r\n\t\"Ãœ\": \"U\",\r\n\t\"Ã\": \"Y\",\r\n\t\"à \": \"a\",\r\n\t\"á\": \"a\",\r\n\t\"â\": \"a\",\r\n\t\"ã\": \"a\",\r\n\t\"ä\": \"a\",\r\n\t\"Ã¥\": \"a\",\r\n\t\"ấ\": \"a\",\r\n\t\"ắ\": \"a\",\r\n\t\"ẳ\": \"a\",\r\n\t\"ẵ\": \"a\",\r\n\t\"ặ\": \"a\",\r\n\t\"æ\": \"ae\",\r\n\t\"ầ\": \"a\",\r\n\t\"ằ\": \"a\",\r\n\t\"ȃ\": \"a\",\r\n\t\"ç\": \"c\",\r\n\t\"ḉ\": \"c\",\r\n\t\"è\": \"e\",\r\n\t\"é\": \"e\",\r\n\t\"ê\": \"e\",\r\n\t\"ë\": \"e\",\r\n\t\"ế\": \"e\",\r\n\t\"ḗ\": \"e\",\r\n\t\"á»\": \"e\",\r\n\t\"ḕ\": \"e\",\r\n\t\"á¸\": \"e\",\r\n\t\"ȇ\": \"e\",\r\n\t\"ì\": \"i\",\r\n\t\"Ã\": \"i\",\r\n\t\"î\": \"i\",\r\n\t\"ï\": \"i\",\r\n\t\"ḯ\": \"i\",\r\n\t\"È‹\": \"i\",\r\n\t\"ð\": \"d\",\r\n\t\"ñ\": \"n\",\r\n\t\"ò\": \"o\",\r\n\t\"ó\": \"o\",\r\n\t\"ô\": \"o\",\r\n\t\"õ\": \"o\",\r\n\t\"ö\": \"o\",\r\n\t\"ø\": \"o\",\r\n\t\"ố\": \"o\",\r\n\t\"á¹\": \"o\",\r\n\t\"ṓ\": \"o\",\r\n\t\"È\": \"o\",\r\n\t\"ù\": \"u\",\r\n\t\"ú\": \"u\",\r\n\t\"û\": \"u\",\r\n\t\"ü\": \"u\",\r\n\t\"ý\": \"y\",\r\n\t\"ÿ\": \"y\",\r\n\t\"Ä€\": \"A\",\r\n\t\"Ä\": \"a\",\r\n\t\"Ä‚\": \"A\",\r\n\t\"ă\": \"a\",\r\n\t\"Ä„\": \"A\",\r\n\t\"Ä…\": \"a\",\r\n\t\"Ć\": \"C\",\r\n\t\"ć\": \"c\",\r\n\t\"Ĉ\": \"C\",\r\n\t\"ĉ\": \"c\",\r\n\t\"ÄŠ\": \"C\",\r\n\t\"Ä‹\": \"c\",\r\n\t\"ÄŒ\": \"C\",\r\n\t\"Ä\": \"c\",\r\n\t\"C̆\": \"C\",\r\n\t\"c̆\": \"c\",\r\n\t\"ÄŽ\": \"D\",\r\n\t\"Ä\": \"d\",\r\n\t\"Ä\": \"D\",\r\n\t\"Ä‘\": \"d\",\r\n\t\"Ä’\": \"E\",\r\n\t\"Ä“\": \"e\",\r\n\t\"Ä”\": \"E\",\r\n\t\"Ä•\": \"e\",\r\n\t\"Ä–\": \"E\",\r\n\t\"Ä—\": \"e\",\r\n\t\"Ę\": \"E\",\r\n\t\"Ä™\": \"e\",\r\n\t\"Äš\": \"E\",\r\n\t\"Ä›\": \"e\",\r\n\t\"Äœ\": \"G\",\r\n\t\"Ç´\": \"G\",\r\n\t\"Ä\": \"g\",\r\n\t\"ǵ\": \"g\",\r\n\t\"Äž\": \"G\",\r\n\t\"ÄŸ\": \"g\",\r\n\t\"Ä \": \"G\",\r\n\t\"Ä¡\": \"g\",\r\n\t\"Ä¢\": \"G\",\r\n\t\"Ä£\": \"g\",\r\n\t\"Ĥ\": \"H\",\r\n\t\"Ä¥\": \"h\",\r\n\t\"Ħ\": \"H\",\r\n\t\"ħ\": \"h\",\r\n\t\"Ḫ\": \"H\",\r\n\t\"ḫ\": \"h\",\r\n\t\"Ĩ\": \"I\",\r\n\t\"Ä©\": \"i\",\r\n\t\"Ī\": \"I\",\r\n\t\"Ä«\": \"i\",\r\n\t\"Ĭ\": \"I\",\r\n\t\"Ä\": \"i\",\r\n\t\"Ä®\": \"I\",\r\n\t\"į\": \"i\",\r\n\t\"Ä°\": \"I\",\r\n\t\"ı\": \"i\",\r\n\t\"IJ\": \"IJ\",\r\n\t\"ij\": \"ij\",\r\n\t\"Ä´\": \"J\",\r\n\t\"ĵ\": \"j\",\r\n\t\"Ķ\": \"K\",\r\n\t\"Ä·\": \"k\",\r\n\t\"Ḱ\": \"K\",\r\n\t\"ḱ\": \"k\",\r\n\t\"K̆\": \"K\",\r\n\t\"k̆\": \"k\",\r\n\t\"Ĺ\": \"L\",\r\n\t\"ĺ\": \"l\",\r\n\t\"Ä»\": \"L\",\r\n\t\"ļ\": \"l\",\r\n\t\"Ľ\": \"L\",\r\n\t\"ľ\": \"l\",\r\n\t\"Ä¿\": \"L\",\r\n\t\"Å€\": \"l\",\r\n\t\"Å\": \"l\",\r\n\t\"Å‚\": \"l\",\r\n\t\"Ḿ\": \"M\",\r\n\t\"ḿ\": \"m\",\r\n\t\"M̆\": \"M\",\r\n\t\"m̆\": \"m\",\r\n\t\"Ń\": \"N\",\r\n\t\"Å„\": \"n\",\r\n\t\"Å…\": \"N\",\r\n\t\"ņ\": \"n\",\r\n\t\"Ň\": \"N\",\r\n\t\"ň\": \"n\",\r\n\t\"ʼn\": \"n\",\r\n\t\"N̆\": \"N\",\r\n\t\"n̆\": \"n\",\r\n\t\"ÅŒ\": \"O\",\r\n\t\"Å\": \"o\",\r\n\t\"ÅŽ\": \"O\",\r\n\t\"Å\": \"o\",\r\n\t\"Å\": \"O\",\r\n\t\"Å‘\": \"o\",\r\n\t\"Å’\": \"OE\",\r\n\t\"Å“\": \"oe\",\r\n\t\"P̆\": \"P\",\r\n\t\"p̆\": \"p\",\r\n\t\"Å”\": \"R\",\r\n\t\"Å•\": \"r\",\r\n\t\"Å–\": \"R\",\r\n\t\"Å—\": \"r\",\r\n\t\"Ř\": \"R\",\r\n\t\"Å™\": \"r\",\r\n\t\"R̆\": \"R\",\r\n\t\"r̆\": \"r\",\r\n\t\"È’\": \"R\",\r\n\t\"È“\": \"r\",\r\n\t\"Åš\": \"S\",\r\n\t\"Å›\": \"s\",\r\n\t\"Åœ\": \"S\",\r\n\t\"Å\": \"s\",\r\n\t\"Åž\": \"S\",\r\n\t\"Ș\": \"S\",\r\n\t\"È™\": \"s\",\r\n\t\"ÅŸ\": \"s\",\r\n\t\"Å \": \"S\",\r\n\t\"Å¡\": \"s\",\r\n\t\"Å¢\": \"T\",\r\n\t\"Å£\": \"t\",\r\n\t\"È›\": \"t\",\r\n\t\"Èš\": \"T\",\r\n\t\"Ť\": \"T\",\r\n\t\"Å¥\": \"t\",\r\n\t\"Ŧ\": \"T\",\r\n\t\"ŧ\": \"t\",\r\n\t\"T̆\": \"T\",\r\n\t\"t̆\": \"t\",\r\n\t\"Ũ\": \"U\",\r\n\t\"Å©\": \"u\",\r\n\t\"Ū\": \"U\",\r\n\t\"Å«\": \"u\",\r\n\t\"Ŭ\": \"U\",\r\n\t\"Å\": \"u\",\r\n\t\"Å®\": \"U\",\r\n\t\"ů\": \"u\",\r\n\t\"Å°\": \"U\",\r\n\t\"ű\": \"u\",\r\n\t\"Ų\": \"U\",\r\n\t\"ų\": \"u\",\r\n\t\"È–\": \"U\",\r\n\t\"È—\": \"u\",\r\n\t\"V̆\": \"V\",\r\n\t\"v̆\": \"v\",\r\n\t\"Å´\": \"W\",\r\n\t\"ŵ\": \"w\",\r\n\t\"Ẃ\": \"W\",\r\n\t\"ẃ\": \"w\",\r\n\t\"X̆\": \"X\",\r\n\t\"x̆\": \"x\",\r\n\t\"Ŷ\": \"Y\",\r\n\t\"Å·\": \"y\",\r\n\t\"Ÿ\": \"Y\",\r\n\t\"Y̆\": \"Y\",\r\n\t\"y̆\": \"y\",\r\n\t\"Ź\": \"Z\",\r\n\t\"ź\": \"z\",\r\n\t\"Å»\": \"Z\",\r\n\t\"ż\": \"z\",\r\n\t\"Ž\": \"Z\",\r\n\t\"ž\": \"z\",\r\n\t\"Å¿\": \"s\",\r\n\t\"Æ’\": \"f\",\r\n\t\"Æ \": \"O\",\r\n\t\"Æ¡\": \"o\",\r\n\t\"Ư\": \"U\",\r\n\t\"Æ°\": \"u\",\r\n\t\"Ç\": \"A\",\r\n\t\"ÇŽ\": \"a\",\r\n\t\"Ç\": \"I\",\r\n\t\"Ç\": \"i\",\r\n\t\"Ç‘\": \"O\",\r\n\t\"Ç’\": \"o\",\r\n\t\"Ç“\": \"U\",\r\n\t\"Ç”\": \"u\",\r\n\t\"Ç•\": \"U\",\r\n\t\"Ç–\": \"u\",\r\n\t\"Ç—\": \"U\",\r\n\t\"ǘ\": \"u\",\r\n\t\"Ç™\": \"U\",\r\n\t\"Çš\": \"u\",\r\n\t\"Ç›\": \"U\",\r\n\t\"Çœ\": \"u\",\r\n\t\"Ứ\": \"U\",\r\n\t\"ứ\": \"u\",\r\n\t\"Ṹ\": \"U\",\r\n\t\"á¹¹\": \"u\",\r\n\t\"Ǻ\": \"A\",\r\n\t\"Ç»\": \"a\",\r\n\t\"Ǽ\": \"AE\",\r\n\t\"ǽ\": \"ae\",\r\n\t\"Ǿ\": \"O\",\r\n\t\"Ç¿\": \"o\",\r\n\t\"Þ\": \"TH\",\r\n\t\"þ\": \"th\",\r\n\t\"á¹”\": \"P\",\r\n\t\"ṕ\": \"p\",\r\n\t\"Ṥ\": \"S\",\r\n\t\"á¹¥\": \"s\",\r\n\t\"XÌ\": \"X\",\r\n\t\"xÌ\": \"x\",\r\n\t\"Ѓ\": \"Г\",\r\n\t\"Ñ“\": \"г\",\r\n\t\"ÐŒ\": \"К\",\r\n\t\"Ñœ\": \"к\",\r\n\t\"AÌ‹\": \"A\",\r\n\t\"aÌ‹\": \"a\",\r\n\t\"EÌ‹\": \"E\",\r\n\t\"eÌ‹\": \"e\",\r\n\t\"IÌ‹\": \"I\",\r\n\t\"iÌ‹\": \"i\",\r\n\t\"Ǹ\": \"N\",\r\n\t\"ǹ\": \"n\",\r\n\t\"á»’\": \"O\",\r\n\t\"ồ\": \"o\",\r\n\t\"á¹\": \"O\",\r\n\t\"ṑ\": \"o\",\r\n\t\"Ừ\": \"U\",\r\n\t\"ừ\": \"u\",\r\n\t\"Ẁ\": \"W\",\r\n\t\"áº\": \"w\",\r\n\t\"Ỳ\": \"Y\",\r\n\t\"ỳ\": \"y\",\r\n\t\"È€\": \"A\",\r\n\t\"È\": \"a\",\r\n\t\"È„\": \"E\",\r\n\t\"È…\": \"e\",\r\n\t\"Ȉ\": \"I\",\r\n\t\"ȉ\": \"i\",\r\n\t\"ÈŒ\": \"O\",\r\n\t\"È\": \"o\",\r\n\t\"È\": \"R\",\r\n\t\"È‘\": \"r\",\r\n\t\"È”\": \"U\",\r\n\t\"È•\": \"u\",\r\n\t\"BÌŒ\": \"B\",\r\n\t\"bÌŒ\": \"b\",\r\n\t\"Č̣\": \"C\",\r\n\t\"ÄÌ£\": \"c\",\r\n\t\"Ê̌\": \"E\",\r\n\t\"ê̌\": \"e\",\r\n\t\"FÌŒ\": \"F\",\r\n\t\"fÌŒ\": \"f\",\r\n\t\"Ǧ\": \"G\",\r\n\t\"ǧ\": \"g\",\r\n\t\"Èž\": \"H\",\r\n\t\"ÈŸ\": \"h\",\r\n\t\"JÌŒ\": \"J\",\r\n\t\"Ç°\": \"j\",\r\n\t\"Ǩ\": \"K\",\r\n\t\"Ç©\": \"k\",\r\n\t\"MÌŒ\": \"M\",\r\n\t\"mÌŒ\": \"m\",\r\n\t\"PÌŒ\": \"P\",\r\n\t\"pÌŒ\": \"p\",\r\n\t\"QÌŒ\": \"Q\",\r\n\t\"qÌŒ\": \"q\",\r\n\t\"Ř̩\": \"R\",\r\n\t\"ř̩\": \"r\",\r\n\t\"Ṧ\": \"S\",\r\n\t\"ṧ\": \"s\",\r\n\t\"VÌŒ\": \"V\",\r\n\t\"vÌŒ\": \"v\",\r\n\t\"WÌŒ\": \"W\",\r\n\t\"wÌŒ\": \"w\",\r\n\t\"XÌŒ\": \"X\",\r\n\t\"xÌŒ\": \"x\",\r\n\t\"YÌŒ\": \"Y\",\r\n\t\"yÌŒ\": \"y\",\r\n\t\"A̧\": \"A\",\r\n\t\"a̧\": \"a\",\r\n\t\"B̧\": \"B\",\r\n\t\"b̧\": \"b\",\r\n\t\"á¸\": \"D\",\r\n\t\"ḑ\": \"d\",\r\n\t\"Ȩ\": \"E\",\r\n\t\"È©\": \"e\",\r\n\t\"Æ̧\": \"E\",\r\n\t\"ɛ̧\": \"e\",\r\n\t\"Ḩ\": \"H\",\r\n\t\"ḩ\": \"h\",\r\n\t\"I̧\": \"I\",\r\n\t\"i̧\": \"i\",\r\n\t\"Ɨ̧\": \"I\",\r\n\t\"ɨ̧\": \"i\",\r\n\t\"M̧\": \"M\",\r\n\t\"m̧\": \"m\",\r\n\t\"O̧\": \"O\",\r\n\t\"o̧\": \"o\",\r\n\t\"Q̧\": \"Q\",\r\n\t\"q̧\": \"q\",\r\n\t\"U̧\": \"U\",\r\n\t\"u̧\": \"u\",\r\n\t\"X̧\": \"X\",\r\n\t\"x̧\": \"x\",\r\n\t\"Z̧\": \"Z\",\r\n\t\"z̧\": \"z\",\r\n};\r\n\r\nvar chars = Object.keys(characterMap).join('|');\r\nvar allAccents = new RegExp(chars, 'g');\r\nvar firstAccent = new RegExp(chars, '');\r\n\r\nvar removeAccents = function(string) {\t\r\n\treturn string.replace(allAccents, function(match) {\r\n\t\treturn characterMap[match];\r\n\t});\r\n};\r\n\r\nvar hasAccents = function(string) {\r\n\treturn !!string.match(firstAccent);\r\n};\r\n\r\nmodule.exports = removeAccents;\r\nmodule.exports.has = hasAccents;\r\nmodule.exports.remove = removeAccents;\r\n","import Point from \"esri/geometry/Point\";\r\nimport Extent from \"esri/geometry/Extent\";\r\nimport Constants from \"../Constants\";\r\nimport { toArray } from \"../Util/toArray\";\r\nimport { mapObject } from \"../Util/mapObject\";\r\nimport Language from \"../Util/Language\";\r\nimport { unique } from \"../Util/unique\";\r\nimport Graphic from \"esri/Graphic\";\r\nimport removeAccents from \"remove-accents\";\r\nimport Query from \"esri/tasks/support/Query\";\r\nimport QueryTask from \"esri/tasks/QueryTask\";\r\nimport AddressCandidate from \"esri/tasks/support/AddressCandidate\";\r\n\r\nexport class PlacesSearchLocator {\r\n async = true;\r\n\r\n static TYPE_POPULATED_PLACE = \"populatedPlace\";\r\n\r\n /**\r\n * Mapping of `Extent` property to the same property in\r\n * a `AddressCandidate`'s attributes.\r\n * @type {Partial<Record<keyof __esri.ExtentProperties, string>>}\r\n */\r\n static PROPERTY_MAP_EXTENT_ATTRIBUTES = {\r\n xmin: \"XMIN\",\r\n xmax: \"XMAX\",\r\n ymin: \"YMIN\",\r\n ymax: \"YMAX\"\r\n };\r\n\r\n static ADDRESS_CANDIDATE_ID_FIELD = \"NamesUri\";\r\n\r\n constructor() {\r\n // We're unable to use a FeatureLayer directly as the\r\n // Towns & Places dataset using a non-spatial table to represent features\r\n // which isn't supported by ArcGIS <4.11\r\n this.layerQueryTask = new QueryTask({\r\n url: \"/map/layers/Places/FeatureServer/0\"\r\n });\r\n }\r\n\r\n /**\r\n * @param {string} text\r\n * @returns {Promise<{\r\n * success: boolean;\r\n * results: {\r\n * geometry: Point|Extent;\r\n * text: string;\r\n * }[],\r\n * error?: any;\r\n * }>}\r\n *\r\n */\r\n async search(text) {\r\n text = text.trim().toLowerCase();\r\n text = removeAccents(text);\r\n text = text.replace(\"%\", \"$%\");\r\n\r\n const query = `LOWER({0}) LIKE '${text}%' ESCAPE '$'`;\r\n\r\n const params = new Query({\r\n where: `${\r\n [\"Search_EN\", \"Search_CY\"]\r\n .map(n => query.replace(\"{0}\", n))\r\n .join(\" OR \")\r\n }`,\r\n orderByFields: [\"((XMAX - XMIN) * (YMAX - YMIN)) DESC\"], // extent area\r\n outFields: [\r\n \"Display_EN\",\r\n \"Display_CY\",\r\n \"County_EN\",\r\n \"County_CY\",\r\n \"Country_EN\",\r\n \"Country_CY\",\r\n ...Object.values(\r\n PlacesSearchLocator.PROPERTY_MAP_EXTENT_ATTRIBUTES\r\n )\r\n ],\r\n num: 6\r\n });\r\n \r\n const results = await this.layerQueryTask.execute(params);\r\n\r\n return this._sortFeaturesByCountry(\r\n results.features\r\n ).map(g => new AddressCandidate({\r\n extent: this._convertGraphicToExtent(g),\r\n address: this._formatTextForGraphic(g)\r\n }));\r\n }\r\n\r\n _isWelshFeature(feature) {\r\n return +(feature.attributes[\"Country_EN\"].toLowerCase() === \"wales\");\r\n }\r\n\r\n /**\r\n * @param {any[]} features\r\n */\r\n _sortFeaturesByCountry(features) {\r\n return features.sort((a, b) => {\r\n return (this._isWelshFeature(b) - this._isWelshFeature(a));\r\n })\r\n }\r\n\r\n _formatTextForGraphic(feature) {\r\n const name = (Language.text({\r\n english: feature.attributes[\"Display_EN\"],\r\n welsh: feature.attributes[\"Display_CY\"]\r\n }) || \"\").trim();\r\n\r\n const county = (Language.text({\r\n english: feature.attributes[\"County_EN\"],\r\n welsh: feature.attributes[\"County_CY\"]\r\n }) || \"\").trim();\r\n\r\n const country = (Language.text({\r\n english: feature.attributes[\"Country_EN\"],\r\n welsh: feature.attributes[\"Country_CY\"]\r\n }) || \"\").trim();\r\n\r\n const parts = [];\r\n\r\n if (name && name.length) {\r\n parts.push(name);\r\n }\r\n\r\n if (county && county.length) {\r\n parts.push(county);\r\n }\r\n\r\n if (\r\n country && \r\n country.length &&\r\n country.toLowerCase() !== \"wales\" &&\r\n country.toLowerCase() !== \"cymru\"\r\n ) {\r\n parts.push(country);\r\n }\r\n\r\n return parts\r\n .filter(unique)\r\n .join(\", \");\r\n }\r\n\r\n /**\r\n * @param {Graphic} graphic\r\n * @returns {Extent}\r\n */\r\n _convertGraphicToExtent(graphic) {\r\n const attributes = graphic.attributes || {};\r\n\r\n const extentParams = mapObject(\r\n PlacesSearchLocator.PROPERTY_MAP_EXTENT_ATTRIBUTES,\r\n key => attributes[key]\r\n );\r\n\r\n if (toArray(extentParams).some(isNaN)) {\r\n return null;\r\n }\r\n\r\n return new Extent({\r\n ...extentParams,\r\n spatialReference: Constants.OS_GB_SPATIAL_REFERENCE\r\n });\r\n }\r\n}\r\n","let types = Object.freeze({\r\n river: 1,\r\n rainfall: 2,\r\n tidal: 3\r\n});\r\nexport default types;\r\n","import ParameterType from \"NRW/ParameterType\";\r\nclass StationQuery {\r\n filterStationsByIds(stations, ids) {\r\n return stations.filter(station => {\r\n return ids.indexOf(station.id) !== -1;\r\n });\r\n }\r\n \r\n filterStationsByRiverId(stations, riverId) {\r\n return stations.filter(station => {\r\n return station.waterBodyId === riverId;\r\n });\r\n }\r\n \r\n filterStationsByCatchmentId(stations, catchmentId) {\r\n return stations.filter(station => {\r\n return station.catchmentId === catchmentId;\r\n });\r\n }\r\n \r\n filterStationsByFilterState(stations, filters) {\r\n let filterKeys = Object.keys(filters);\r\n let allowedParameterTypes = filterKeys.filter(key => filters[key]).map(key => ParameterType[key]);\r\n \r\n return stations.filter(station => {\r\n return station.parameters.filter(parameter => allowedParameterTypes.indexOf(parameter.typeId) !== -1).length > 0\r\n });\r\n }\r\n}\r\n\r\nexport default new StationQuery();","import OsGridRef, { LatLon } from \"geodesy/osgridref\"\r\n\r\nimport AddressCandidate from \"esri/tasks/support/AddressCandidate\";\r\nimport { Breakpoint, ListStatsControls, EventDispatcher } from \"@nrw.core/styles\";\r\nimport Constants from \"./Constants\";\r\nimport Geometry from \"./Util/Geometry\";\r\nimport Html from \"./Util/Html\";\r\nimport Language from \"./Util/Language\";\r\nimport Locator from \"esri/tasks/Locator\";\r\nimport { PlacesSearchLocator } from \"./Search/PlacesSearchLocator\";\r\nimport Point from \"esri/geometry/Point\";\r\nimport Resource from \"./Util/Resource\";\r\nimport StationQuery from \"./Stations/StationQuery\";\r\n\r\nconst PLACES_CATEGORIES = [\"Populated Place\"];\r\nconst POSTAL_CATEGORIES = [\"Postal\"];\r\n\r\n// Search *source* types\r\nconst SEARCH_SOURCE_TYPES = {\r\n PLACES: \"places\", // maps to SEARCH_RESULT_TYPES.ADDRESS\r\n NGR: \"ngr\", // maps to SEARCH_RESULT_TYPES.ADDRESS\r\n POSTCODES: \"postcodes\", // maps to SEARCH_RESULT_TYPES.ADDRESS\r\n NRW: \"nrw\", // contains SEARCH_RESULT_TYPES.RIVERS | SEARCH_RESULT_TYPES.CATCHMENTS | SEARCH_RESULT_TYPES.STATIONS\r\n};\r\n\r\n// Search *result* types (i.e. what the event listeners will receive)\r\nconst SEARCH_RESULT_TYPES = {\r\n RIVERS: \"rivers\",\r\n CATCHMENTS: \"catchments\",\r\n STATIONS: \"stations\",\r\n ADDRESS: \"address\",\r\n POSTCODES: \"postcodes\",\r\n NGR: \"ngr\",\r\n GPS: \"gps\",\r\n PLACES: \"places\",\r\n};\r\n\r\nconst DATA_TYPES = {\r\n ADDRESS: \"address\",\r\n WATER_BODY: \"waterBody\",\r\n CATCHMENT: \"catchment\",\r\n STATION: \"station\"\r\n};\r\n\r\n// Options for each type of search result.\r\n// textFn: what text is displayed in the result\r\nconst SEARCH_RESULT_TYPE_OPTIONS = {\r\n [SEARCH_RESULT_TYPES.POSTCODES]: {\r\n textFn: addressCandidate => addressCandidate.address,\r\n dataType: SEARCH_RESULT_TYPES.ADDRESS\r\n },\r\n [SEARCH_RESULT_TYPES.NGR]: {\r\n textFn: addressCandidate => addressCandidate.address,\r\n dataType: SEARCH_RESULT_TYPES.ADDRESS\r\n },\r\n [SEARCH_RESULT_TYPES.GPS]: {\r\n textFn: addressCandidate => Resource.YourLocationSearchTerm,\r\n dataType: SEARCH_RESULT_TYPES.ADDRESS\r\n },\r\n [SEARCH_RESULT_TYPES.PLACES]: {\r\n textFn: addressCandidate => addressCandidate.address,\r\n dataType: SEARCH_RESULT_TYPES.ADDRESS\r\n },\r\n [SEARCH_RESULT_TYPES.RIVERS]: {\r\n textFn: li => Language.text(li.name),\r\n searchedText: Resource.SearchedNrwRiver,\r\n dataType: DATA_TYPES.WATER_BODY\r\n },\r\n [SEARCH_RESULT_TYPES.CATCHMENTS]: {\r\n textFn: li => Language.text(li.name),\r\n searchedText: Resource.SearchedNrwCatchment,\r\n dataType: DATA_TYPES.CATCHMENT\r\n },\r\n [SEARCH_RESULT_TYPES.STATIONS]: {\r\n textFn: li => Language.text(li.title),\r\n searchedText: Resource.SearchedNrwStation,\r\n dataType: DATA_TYPES.STATION\r\n }\r\n};\r\n\r\nclass SearchLocator {\r\n /**\r\n * \r\n * @param {Locator} locator \r\n */\r\n constructor(locator) {\r\n this.placesLocator = new PlacesSearchLocator();\r\n this.locator = locator;\r\n }\r\n\r\n suggest(text) {\r\n return this.searchForPlaces(text);\r\n }\r\n\r\n convertSuggestionToLocation(suggestion) {\r\n return this.locator.addressToLocations({\r\n magicKey: suggestion.magicKey,\r\n countryCode: \"GB\",\r\n outSpatialReference: Constants.OS_GB_SPATIAL_REFERENCE\r\n });\r\n }\r\n\r\n searchForPlaces(text) {\r\n return this.placesLocator.search(text);\r\n }\r\n\r\n searchForPostcode(text) {\r\n text = text.trim().toUpperCase();\r\n\r\n return this.locator.addressToLocations({\r\n address: {\r\n \"SingleLine\": text\r\n },\r\n categories: POSTAL_CATEGORIES,\r\n countryCode: \"GB\",\r\n searchExtent: Constants.WALES_EXTENT,\r\n outSpatialReference: Constants.OS_GB_SPATIAL_REFERENCE\r\n }).then(response => {\r\n return this._mergePartialPostcodeResults(response, text)\r\n .filter(x => x.score >= 100)\r\n .sort((a, b) => a.score - b.score)\r\n .slice(0, 1);\r\n })\r\n }\r\n\r\n _mergePartialPostcodeResults(results, text) {\r\n const mergableResults = results.filter(r => {\r\n // Check if it starts with the search term.\r\n // If so, is the next character a space or empty? (spaces are removed using .trim(), so comparing to \"\")\r\n // If so, then it's a part of the same partial postcode\r\n return r.address.startsWith(text) && r.address.substr(text.length, 1).trim() === \"\";\r\n });\r\n \r\n if (mergableResults.length >= 2) {\r\n results = results.filter(r => !mergableResults.includes(r));\r\n\r\n const mergedExtent = mergableResults.map(r => r.extent).reduce((extent, r) => extent ? extent.union(r.extent) : r.extent.clone(), null);\r\n const mergedResult = new AddressCandidate({\r\n address: text,\r\n extent: mergedExtent,\r\n location: mergedExtent.center,\r\n score: 100\r\n });\r\n\r\n results.splice(0, 0, mergedResult);\r\n }\r\n \r\n return results;\r\n }\r\n\r\n static STARTS_WITH_LETTER_REGEX = /^(?:[A-Z])/i;\r\n\r\n searchForNgr(text) {\r\n let deferred = $.Deferred();\r\n\r\n try {\r\n let gridRef = OsGridRef.parse(text);\r\n\r\n const point = new Point({\r\n x: gridRef.easting,\r\n y: gridRef.northing,\r\n spatialReference: Constants.OS_GB_SPATIAL_REFERENCE\r\n });\r\n\r\n if (!Constants.WALES_EXTENT.contains(point)) {\r\n throw \"Outside of wales\";\r\n }\r\n\r\n const isTextGridReference = SearchLocator.STARTS_WITH_LETTER_REGEX.test(text);\r\n const resultText = isTextGridReference ? gridRef.toString() : `${gridRef.easting}, ${gridRef.northing}`;\r\n\r\n deferred.resolve([\r\n // Same structure as the response from Locator.search (AddressResponse[])\r\n {\r\n location: point,\r\n address: resultText,\r\n score: 100\r\n }\r\n ]);\r\n } catch (ex) {\r\n // Invalid NGR\r\n deferred.reject([\"Invalid\"]);\r\n }\r\n\r\n return deferred;\r\n }\r\n\r\n searchForCurrentLocation() {\r\n let deferred = $.Deferred();\r\n\r\n window.navigator.geolocation.getCurrentPosition(position => {\r\n let {\r\n latitude,\r\n longitude\r\n } = position.coords;\r\n let gridRef = new LatLon(latitude, longitude).toOsGrid();\r\n\r\n let point = new Point({\r\n x: gridRef.easting,\r\n y: gridRef.northing,\r\n spatialReference: Constants.OS_GB_SPATIAL_REFERENCE\r\n });\r\n\r\n deferred.resolve([{\r\n location: point\r\n }]);\r\n }, positionError => {\r\n deferred.reject(positionError);\r\n return;\r\n }, {\r\n enableHighAccuracy: false, //?\r\n timeout: 15 * 1000 // 5 seconds\r\n });\r\n\r\n return deferred;\r\n }\r\n}\r\n\r\nclass SearchMapper {\r\n mapRequestsToResults(searchRequests) {\r\n let searchResults = $.extend({}, searchRequests); // Shallow clone the input object\r\n\r\n if (SEARCH_SOURCE_TYPES.NRW in searchRequests) {\r\n // NRW search has a structure of { result: { waterBodies: [], catchments: [], stations: [] } }\r\n // We need to bring flatten this \"NRW\" request into \"rivers\" \"catchments\" and \"stations\"\r\n\r\n let nrw = searchRequests[SEARCH_SOURCE_TYPES.NRW];\r\n let result = nrw.result || {};\r\n\r\n let {\r\n waterBodies,\r\n catchments,\r\n stations\r\n } = result;\r\n\r\n searchResults[SEARCH_RESULT_TYPES.RIVERS] = $.extend({}, nrw, {\r\n result: waterBodies || null,\r\n });\r\n searchResults[SEARCH_RESULT_TYPES.CATCHMENTS] = $.extend({}, nrw, {\r\n result: catchments || null\r\n });\r\n searchResults[SEARCH_RESULT_TYPES.STATIONS] = $.extend({}, nrw, {\r\n result: stations || null\r\n });\r\n\r\n delete searchResults[SEARCH_SOURCE_TYPES.NRW];\r\n }\r\n\r\n let mappings = [\r\n [SEARCH_SOURCE_TYPES.NGR, SEARCH_RESULT_TYPES.NGR],\r\n [SEARCH_SOURCE_TYPES.POSTCODES, SEARCH_RESULT_TYPES.POSTCODES],\r\n [SEARCH_SOURCE_TYPES.PLACES, SEARCH_RESULT_TYPES.PLACES]\r\n ];\r\n\r\n for (let i = 0; i < mappings.length; i++) {\r\n let mapping = mappings[i];\r\n\r\n let from = mapping[0];\r\n let to = mapping[1];\r\n\r\n if (from === to) {\r\n continue;\r\n }\r\n\r\n if (from in searchRequests) {\r\n searchResults[to] = searchResults[from];\r\n delete searchResults[from];\r\n }\r\n }\r\n\r\n return searchResults;\r\n }\r\n}\r\n\r\nclass SearchViewModel {\r\n constructor($root, stationData) {\r\n this.$root = $root;\r\n this.$results = $root.find(\".search-results\").addBack('.search-results');\r\n\r\n this.$resultsContainer = this.$results.find(\".search-results__container\");\r\n this.$noExactMatch = this.$results.find(\".search-results__text--no-exact-match\");\r\n this.$errorMessage = this.$results.find(\".search-results__text--error-message\");\r\n this.$searchedText = this.$results.find(\".search-results__text--searched\");\r\n\r\n this.hasContainerAroundSearchResults = !this.$root.is(this.$results);\r\n\r\n this.isSearchActive = false;\r\n\r\n this.searchResultDataFn = (type, result) => null;\r\n\r\n this.onBlur = new EventDispatcher();\r\n this.onEsc = new EventDispatcher();\r\n this.onVisibilityChanged = new EventDispatcher();\r\n \r\n this.$root.on(\"focusout\", ev => {\r\n if (this.containsElement(ev.relatedTarget)) {\r\n return true;\r\n }\r\n \r\n this.onBlur.invokeListeners([], this);\r\n });\r\n\r\n this.$root.on(\"keyup\", ev => {\r\n if (ev.keyCode !== 27 /* esc */) {\r\n return true;\r\n }\r\n\r\n this.onEsc.invokeListeners([], this);\r\n })\r\n }\r\n\r\n focusSearchedText() {\r\n const el = this.$searchedText[0];\r\n if (el) {\r\n el.focus();\r\n }\r\n }\r\n\r\n focusErrorMessage() {\r\n const el = this.$errorMessage[0];\r\n if (el) {\r\n el.focus();\r\n }\r\n }\r\n\r\n focusNoExactMatch() {\r\n const el = this.$noExactMatch[0];\r\n if (el) {\r\n el.focus();\r\n }\r\n }\r\n\r\n containsElement(element) {\r\n return $(element).closest(this.$root).length > 0;;\r\n }\r\n\r\n showRoot(visible) {\r\n if (this.hasContainerAroundSearchResults) {\r\n this.$root.toggleClass(\"display-none\", !visible);\r\n this.onVisibilityChanged.invokeListeners([visible], this);\r\n }\r\n }\r\n\r\n show(visible) {\r\n this.$results.toggleClass(\"display-none\", !visible);\r\n }\r\n\r\n showResults(visible) {\r\n this.$resultsContainer.toggleClass(\"display-none\", !visible);\r\n }\r\n\r\n showSearchedText(visible, text, searchTerm) {\r\n this.$searchedText.toggleClass(\"display-none\", !visible);\r\n\r\n if (visible) {\r\n this.$searchedText.text(text).html(function (_, html) {\r\n var searchedTextSegment = html.replace(/\\{term\\}(.*)\\{\\/term\\}/, $(\"<span class=\\\"search-results__term\\\">$1</span>\")[0].outerHTML).replace(/\\{0\\}/, Html.escape(searchTerm));\r\n var clearSegment = Resource.SearchedClearHint.replace(/\\{0\\}/, $(\"<a tabindex=\\\"0\\\" clickable role=\\\"link\\\" class=\\\"search-results__clear\\\"></a>\").text(Resource.SearchedClearHintLink)[0].outerHTML);\r\n\r\n return [searchedTextSegment, clearSegment].join(\" \");\r\n });\r\n } else {\r\n this.$searchedText.html(\"\");\r\n }\r\n }\r\n\r\n showErrorMessage(visible, text) {\r\n this.$errorMessage.toggleClass(\"display-none\", !visible);\r\n\r\n if (visible && text) {\r\n this.$errorMessage.text(text);\r\n }\r\n }\r\n\r\n showNoExactMatchText(visible, text, linkText) {\r\n this.$noExactMatch.toggleClass(\"display-none\", !visible);\r\n\r\n if (visible) {\r\n this.$noExactMatch.text(text).html(function (_, html) {\r\n return html.replace(/\\{0\\}/, $(\"<a tabindex=\\\"0\\\" clickable role=\\\"link\\\" class=\\\"search-results__clear\\\"></a>\").text(linkText)[0].outerHTML);\r\n });\r\n } else {\r\n this.$noExactMatch.html(\"\");\r\n }\r\n }\r\n\r\n reset() {\r\n this.isSearchActive = false;\r\n this.showResults(false);\r\n this.showErrorMessage(false);\r\n this.showNoExactMatchText(false);\r\n this.showSearchedText(false);\r\n }\r\n\r\n setSearchResults(results, searchedText) {\r\n let numberOfResults = 0;\r\n\r\n let searchResultTypes = Object.keys(SEARCH_RESULT_TYPE_OPTIONS);\r\n\r\n let tooManyResultsInAnySearchResultType = false;\r\n\r\n for (let i = 0; i < searchResultTypes.length; i++) {\r\n let searchResultType = searchResultTypes[i];\r\n let searchResultTypeOptions = SEARCH_RESULT_TYPE_OPTIONS[searchResultType];\r\n\r\n let searchResultForType = results[searchResultType] || {};\r\n\r\n let numberOfSearchResultsForType = this.handleSearchResultsByType(searchResultType, searchResultForType.result, searchedText);\r\n numberOfResults += numberOfSearchResultsForType;\r\n\r\n if (numberOfSearchResultsForType >= 7) {\r\n tooManyResultsInAnySearchResultType = true;\r\n }\r\n }\r\n\r\n if (numberOfResults >= 1) {\r\n this.showNoExactMatchText(true, \r\n tooManyResultsInAnySearchResultType ? Resource.NoExactMatchActionWithTooManyResults : Resource.NoExactMatchAction, \r\n Resource.NoExactMatchClearLink);\r\n this.showErrorMessage(false);\r\n this.showResults(true);\r\n } else {\r\n this.showNoExactMatchText(false);\r\n this.showResults(false);\r\n this.showErrorMessage(true, Resource.NoResults);\r\n }\r\n\r\n return numberOfResults;\r\n }\r\n\r\n handleSearchResultsByType(type, results, searchedText) {\r\n if (results && results.length > 0) {\r\n return this.showSearchResultsByType(type, results, searchedText);\r\n } else {\r\n this.hideSearchResultsByType(type);\r\n return 0;\r\n }\r\n }\r\n\r\n getSearchResultsTypeContainer(type) {\r\n return this.$results.find(\".search-results__type--\" + type);\r\n }\r\n\r\n getListStatsControlsForSearchResultsTypeContainer($searchResultsTypeContainer) {\r\n let $listStats = $searchResultsTypeContainer.find(\".list-stats\");\r\n\r\n let listStatsControls = $listStats.prop(\"component\");\r\n\r\n if (!listStatsControls) {\r\n listStatsControls = new ListStatsControls($listStats);\r\n $listStats.prop(\"component\", listStatsControls);\r\n }\r\n\r\n return listStatsControls;\r\n }\r\n\r\n showSearchResultsByType(type, results, searchedText) {\r\n let $resultTypeContainer = this.getSearchResultsTypeContainer(type);\r\n let listStatsControls = this.getListStatsControlsForSearchResultsTypeContainer($resultTypeContainer);\r\n let $results = $resultTypeContainer.find(\".search-results__results\");\r\n\r\n $resultTypeContainer.toggleClass(\"display-none\", false);\r\n $results.empty();\r\n\r\n let mappedResults = results.map(r => {\r\n let text = SEARCH_RESULT_TYPE_OPTIONS[type].textFn(r);\r\n return {\r\n text: text,\r\n index: text.toLowerCase().indexOf(searchedText.toLowerCase()),\r\n result: r\r\n }\r\n })\r\n\r\n mappedResults.sort(this.sortSearchResults);\r\n\r\n const MAX_RESULTS = 6;\r\n $results.append(mappedResults.slice(0, MAX_RESULTS).map(r => {\r\n let textWithHighlightedResult = Html.wrap(r.text, searchedText, \"<b>\", \"</b>\");\r\n\r\n r.$element = this\r\n .buildSearchResult(textWithHighlightedResult)\r\n .attr(\"aria-label\", r.text)\r\n .data(\"result\", this.searchResultDataFn(type, r.result));\r\n\r\n return r.$element;\r\n }));\r\n\r\n listStatsControls.total = mappedResults.length;\r\n listStatsControls.numberVisible = Math.min(mappedResults.length, MAX_RESULTS);\r\n let willShowListStats = mappedResults.length > MAX_RESULTS;\r\n \r\n listStatsControls.setVisibility(willShowListStats);\r\n if (willShowListStats) {\r\n listStatsControls.update();\r\n }\r\n\r\n return results.length;\r\n }\r\n\r\n sortSearchResults(a, b) {\r\n if (a.index === -1 && b.index === -1) {\r\n return a.text.localeCompare(b.text);\r\n } else if (a.index !== -1 && b.index === -1) {\r\n return -1;\r\n } else if (b.index !== -1 && a.index === -1) {\r\n return 1;\r\n }\r\n\r\n return a.index - b.index;\r\n }\r\n\r\n hideSearchResultsByType(type) {\r\n this.getSearchResultsTypeContainer(type).toggleClass(\"display-none\", true);\r\n }\r\n\r\n buildSearchResult(contents) {\r\n return $(\"<a class=\\\"search-results__result\\\" role=\\\"option\\\" tabindex=\\\"0\\\" clickable></a>\").html(contents);\r\n }\r\n}\r\n\r\nclass StationDataSearcher {\r\n constructor(filter, stationData) {\r\n this.stationData = stationData;\r\n this.filter = filter;\r\n }\r\n\r\n search(query) {\r\n let deferred = $.Deferred();\r\n\r\n let results = {\r\n catchments: {},\r\n stations: {},\r\n waterBodies: {}\r\n };\r\n\r\n let filteredStations = StationQuery.filterStationsByFilterState(this.stationData.data, this.filter.state);\r\n\r\n for (let i = 0; i < filteredStations.length; i++) {\r\n let station = filteredStations[i];\r\n\r\n if (this.testTextAgainstQuery(station.title, query)) {\r\n results.stations[station.id] = station;\r\n }\r\n\r\n if (this.testTextAgainstQuery(station.waterBody, query)) {\r\n results.waterBodies[station.waterBodyId] = {\r\n id: station.waterBodyId,\r\n name: station.waterBody\r\n };\r\n }\r\n\r\n if (this.testTextAgainstQuery(station.catchment, query)) {\r\n results.catchments[station.catchmentId] = {\r\n id: station.catchmentId,\r\n name: station.catchment\r\n };\r\n }\r\n }\r\n\r\n results.catchments = this.convertObjectToArray(results.catchments);\r\n results.waterBodies = this.convertObjectToArray(results.waterBodies);\r\n results.stations = this.convertObjectToArray(results.stations);\r\n\r\n deferred.resolve(results);\r\n\r\n return deferred;\r\n }\r\n\r\n convertObjectToArray(object) {\r\n return Object.keys(object).reduce((resultArray, id) => {\r\n resultArray.push(object[id]);\r\n return resultArray;\r\n }, []);\r\n }\r\n\r\n testTextAgainstQuery(text, needle) {\r\n return this.testStringAgainstQuery(text.english, needle) ||\r\n this.testStringAgainstQuery(text.welsh, needle);\r\n }\r\n\r\n testStationAgainstQuery(station, needle) {\r\n return this.testTextAgainstQuery(station.title, needle);\r\n }\r\n\r\n testStringAgainstQuery(haystack, needle) {\r\n if (haystack === null || needle === null) {\r\n return false;\r\n }\r\n let index = haystack.toLowerCase().trim().indexOf(needle.toLowerCase().trim());\r\n\r\n return index !== -1;\r\n }\r\n}\r\n\r\nclass Search {\r\n //#region Constructors, initialisers, event listeners\r\n constructor(filter, stationData) {\r\n this.filter = filter;\r\n\r\n let esriLocator = new Locator({\r\n url: \"//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer\",\r\n countryCode: \"GB\",\r\n outSpatialReference: Constants.OS_GB_SPATIAL_REFERENCE\r\n });\r\n\r\n this.locator = new SearchLocator(esriLocator);\r\n this.stationDataSearcher = new StationDataSearcher(this.filter, stationData);\r\n this.mapper = new SearchMapper();\r\n\r\n this._onSearchResultSelectedListeners = [];\r\n this._onSearchClearedListeners = [];\r\n\r\n this.autocompleteViewModel = new SearchViewModel($(\".search__autocomplete\"));\r\n this.searchResultsViewModel = new SearchViewModel($(\".search-results-section\"));\r\n this.autocompleteViewModel.searchResultDataFn = this.searchResultsViewModel.searchResultDataFn = this.buildSearchResultDataObject;\r\n \r\n this.searchInput = document.querySelector(\"#searchInput\");\r\n this.searchSubmit = document.querySelector(\"#searchSubmit\");\r\n\r\n this.$combobox = $(this.searchInput).closest(\"[role=combobox]\");\r\n\r\n this._lastInput = \"\";\r\n this._searching = false;\r\n\r\n this.$mobileLocationContainer = $(\".search__mobile-location-container\");\r\n\r\n this._suggestTimeout = null;\r\n\r\n this._hasAutocompleteResults = false;\r\n this._autocompleteResultsInvalidated = false;\r\n\r\n this._lastSearchPromises = {\r\n [SEARCH_SOURCE_TYPES.PLACES]: {\r\n promise: null,\r\n searchText: null\r\n },\r\n [SEARCH_SOURCE_TYPES.POSTCODES]: {\r\n promise: null,\r\n searchText: null\r\n }\r\n }\r\n\r\n this.registerSearchResultClickedHandler();\r\n this.registerSearchSubmittedHandler();\r\n this.registerSearchClearedHandler();\r\n this.registerSearchAutocompleteHandler();\r\n this.registerSearchFocusHandlers();\r\n this.registerCurrentLocationHandler();\r\n this.registerFilterChangedHandler();\r\n this.registerSearchAutocompleteVisibilityHandler();\r\n this.registerSearchInputResponsivePlaceholderHandler();\r\n\r\n $(\".search__autocomplete, .search__mobile-location-container\").on(\"mousedown\", event => {\r\n event.preventDefault(); // Prevents blur event being called\r\n });\r\n }\r\n\r\n registerSearchInputResponsivePlaceholderHandler() {\r\n this.updateSearchInputPlaceholder(Breakpoint.lastBreakpoint);\r\n\r\n Breakpoint.onChange.addListener(newBreakpoint => {\r\n this.updateSearchInputPlaceholder(newBreakpoint);\r\n });\r\n }\r\n\r\n updateSearchInputPlaceholder(breakpoint) {\r\n let placeholder = Resource.SearchPlaceholder;\r\n\r\n if (breakpoint === Breakpoint.mobile) {\r\n placeholder = Resource.Search;\r\n }\r\n\r\n $(this.searchInput)\r\n .attr(\"placeholder\", placeholder)\r\n .attr(\"aria-placeholder\", placeholder)\r\n .attr(\"aria-label\", placeholder); \r\n }\r\n\r\n registerSearchAutocompleteVisibilityHandler() {\r\n this.autocompleteViewModel.onVisibilityChanged.addListener(visible => {\r\n this.$combobox.attr(\"aria-expanded\", visible);\r\n });\r\n }\r\n\r\n registerFilterChangedHandler() {\r\n this.filter.onChange.addListener((newFilterState) => {\r\n this._autocompleteResultsInvalidated = true;\r\n\r\n if (this.searchResultsViewModel.isSearchActive) {\r\n this.doSearch(false);\r\n }\r\n });\r\n }\r\n\r\n registerSearchFocusHandlers() {\r\n this.searchInput.addEventListener(\"focus\", (e) => {\r\n if (this._autocompleteResultsInvalidated) {\r\n this.doAutocompleteSearch();\r\n } else if (this._hasAutocompleteResults) {\r\n this.autocompleteViewModel.showRoot(true);\r\n } else {\r\n this.toggleLocationButton(true);\r\n }\r\n });\r\n \r\n this.searchInput.addEventListener(\"focusout\", (e) => {\r\n const focusWithinAutocomplete = this.autocompleteViewModel.containsElement(e.relatedTarget);\r\n const focusOnLocation = $(e.relatedTarget).closest(this.$mobileLocationContainer).length > 0;\r\n\r\n if (!focusWithinAutocomplete) {\r\n this.hideAutocomplete();\r\n }\r\n\r\n if (!focusOnLocation) {\r\n this.toggleLocationButton(false);\r\n }\r\n });\r\n\r\n this.autocompleteViewModel.onBlur.addListener(() => {\r\n this.hideAutocomplete();\r\n });\r\n\r\n this.autocompleteViewModel.onEsc.addListener(() => {\r\n this.searchInput.focus();\r\n });\r\n\r\n this.$mobileLocationContainer.on(\"focusout\", ev => {\r\n if ($(ev.relatedTarget).closest(this.$mobileLocationContainer).length > 0) {\r\n return true;\r\n }\r\n\r\n this.toggleLocationButton(false);\r\n });\r\n }\r\n\r\n registerSearchResultClickedHandler() {\r\n $(\".search-results\").on(\"click\", \".search-results__result\", event => {\r\n let searchResult = $(event.currentTarget).data(\"result\");\r\n\r\n if (this.autocompleteViewModel.$results.is(event.delegateTarget)) {\r\n this.searchInput.value = searchResult.text;\r\n }\r\n\r\n this.handleSingleSearchResult(searchResult);\r\n\r\n event.preventDefault();\r\n return false;\r\n });\r\n }\r\n\r\n registerSearchClearedHandler() {\r\n $(\".search-results\").on(\"click\", \".search-results__clear\", event => {\r\n this.invokeSearchClearedListeners();\r\n\r\n event.preventDefault();\r\n });\r\n }\r\n\r\n registerSearchSubmittedHandler() {\r\n this.searchSubmit.addEventListener(\"click\", (e) => this.onSearchSubmit(e));\r\n }\r\n\r\n registerSearchAutocompleteHandler() {\r\n this.searchInput.addEventListener(\"keyup\", e => {\r\n \r\n if (e.keyCode === 13 || e.keyCode === 32) { // ENTER\r\n this.killSuggestTimeout();\r\n return;\r\n }\r\n\r\n if (e.keyCode === 27) { // ESC\r\n this.autocompleteViewModel.showRoot(false);\r\n this.killSuggestTimeout();\r\n return;\r\n }\r\n });\r\n\r\n this.searchInput.addEventListener(\"input\", e => {\r\n if (this._lastInput === this.searchInput.value) {\r\n return;\r\n }\r\n\r\n if (this._searching) {\r\n return;\r\n }\r\n\r\n this.searchResultsViewModel.showResults(false);\r\n this.searchResultsViewModel.showNoExactMatchText(false);\r\n this.searchResultsViewModel.showErrorMessage(false);\r\n\r\n this.autocompleteViewModel.showRoot(false);\r\n\r\n this.killSuggestTimeout();\r\n this._suggestTimeout = setTimeout(() => this.doAutocompleteSearch(), 100);\r\n });\r\n }\r\n\r\n registerCurrentLocationHandler() {\r\n $(document).on(\"click\", \".search__location-button\", event => {\r\n this.locator.searchForCurrentLocation().then(results => {\r\n this.handleSingleSearchResult(\r\n this.buildSearchResultDataObject(SEARCH_RESULT_TYPES.GPS, results[0])\r\n );\r\n }).fail(positionError => {\r\n let errorType = Resource[`YourLocationError${positionError.code}`] || \"N/A\";\r\n let error = Resource.YourLocationErrorMessage.replace(\"{0}\", errorType);\r\n\r\n this.searchResultsViewModel.showRoot(true);\r\n this.searchResultsViewModel.showErrorMessage(true, error);\r\n\r\n console.error(positionError);\r\n });\r\n\r\n event.preventDefault();\r\n return false;\r\n })\r\n }\r\n //#endregion\r\n\r\n focusSearchInput() {\r\n this.searchInput.focus();\r\n }\r\n\r\n clearSearchInput() {\r\n this.searchInput.value = \"\";\r\n this.autocompleteViewModel.showRoot(false);\r\n this._hasAutocompleteResults = false;\r\n this._autocompleteResultsInvalidated = false;\r\n }\r\n\r\n resetState() {\r\n this.searchResultsViewModel.reset();\r\n this.autocompleteViewModel.reset();\r\n\r\n this.searchResultsViewModel.showRoot(false);\r\n this.autocompleteViewModel.showRoot(false);\r\n }\r\n\r\n hideAutocomplete() {\r\n this.autocompleteViewModel.showRoot(false);\r\n this.killSuggestTimeout();\r\n }\r\n\r\n get searchTypes() {\r\n return SEARCH_RESULT_TYPES;\r\n }\r\n\r\n get dataTypes() {\r\n return DATA_TYPES;\r\n }\r\n\r\n buildSearchResultDataObject(type, result) {\r\n return {\r\n type: type,\r\n result: result,\r\n text: SEARCH_RESULT_TYPE_OPTIONS[type].textFn(result)\r\n }\r\n }\r\n\r\n onSearchSubmit(e) {\r\n this.doSearch(true);\r\n e.preventDefault();\r\n }\r\n\r\n doSearch(focus) {\r\n const searchText = this.searchInput.value.trim();\r\n\r\n this.autocompleteViewModel.showRoot(false);\r\n this.toggleLocationButton(false);\r\n\r\n this.searchResultsViewModel.showErrorMessage(false);\r\n\r\n if (!searchText) {\r\n return;\r\n }\r\n\r\n this._searching = true;\r\n\r\n this.killSuggestTimeout();\r\n\r\n let handleSearchResults = this.handleSearchResults.bind(this, this.searchResultsViewModel, searchText);\r\n let requestsWithResults = {};\r\n\r\n // Try parse ngr\r\n let ngrSearchDeferred = this.locator.searchForNgr(searchText);\r\n if (ngrSearchDeferred.state() === \"resolved\") {\r\n // If we have valid NGR result, don't actually search\r\n // Mock a search instead\r\n requestsWithResults = this.wrapRequests({\r\n [SEARCH_SOURCE_TYPES.NGR]: ngrSearchDeferred\r\n });\r\n } else {\r\n if (this._lastSearchPromises[SEARCH_SOURCE_TYPES.PLACES].searchText !== searchText) {\r\n this._lastSearchPromises[SEARCH_SOURCE_TYPES.PLACES] = {\r\n promise: this.locator.searchForPlaces(searchText),\r\n searchText: searchText\r\n }\r\n }\r\n\r\n if (this._lastSearchPromises[SEARCH_SOURCE_TYPES.POSTCODES].searchText !== searchText) {\r\n this._lastSearchPromises[SEARCH_SOURCE_TYPES.POSTCODES] = {\r\n promise: this.locator.searchForPostcode(searchText),\r\n searchText: searchText\r\n }\r\n }\r\n\r\n let esriPostcodeSearchRequest = this._lastSearchPromises[SEARCH_SOURCE_TYPES.POSTCODES].promise;\r\n let esriPlacesSearchRequest = this._lastSearchPromises[SEARCH_SOURCE_TYPES.PLACES].promise;\r\n let nrwSearchRequest = this.stationDataSearcher.search(searchText);\r\n\r\n requestsWithResults = this.wrapRequests({\r\n [SEARCH_SOURCE_TYPES.NRW]: nrwSearchRequest,\r\n [SEARCH_SOURCE_TYPES.PLACES]: esriPlacesSearchRequest,\r\n [SEARCH_SOURCE_TYPES.POSTCODES]: esriPostcodeSearchRequest\r\n });\r\n\r\n esriPostcodeSearchRequest.then(((requests, postcodes) => {\r\n // If postcode match, cancel results of other requests to skip waiting for them\r\n if (postcodes.length > 0 && this.isSearchResultRelevant(SEARCH_RESULT_TYPES.POSTCODES, postcodes[0])) {\r\n requests[SEARCH_SOURCE_TYPES.NRW].promise.abort(); // jQXHR.abort()\r\n requests[SEARCH_SOURCE_TYPES.PLACES].promise.cancel(); // Promise.cancel()\r\n }\r\n }).bind(this, requestsWithResults)); // Using .bind here to pass the requests into our callback.\r\n }\r\n\r\n let allPromise = this.whenAllRequestsAreDone(requestsWithResults);\r\n this.activeSearchPromise = allPromise;\r\n\r\n $(this.searchInput).toggleClass(\"search__input--loading\", true);\r\n\r\n allPromise\r\n .then(requests => {\r\n if (this.activeSearchPromise !== allPromise) {\r\n return;\r\n }\r\n\r\n $(this.searchInput).toggleClass(\"search__input--loading\", false);\r\n\r\n let results = this.mapper.mapRequestsToResults(requests);\r\n let count = handleSearchResults(results, true);\r\n this._searching = false;\r\n\r\n if (count !== 1) {\r\n this.searchResultsViewModel.showRoot(true);\r\n\r\n if (focus) {\r\n if (count >= 2) {\r\n this.searchResultsViewModel.focusNoExactMatch();\r\n }\r\n else if (count === 0) {\r\n this.searchResultsViewModel.focusErrorMessage();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n handleSearchResults(searchResultsViewModel, searchText, searchResults, immediatelySelectSingleResult) {\r\n // Structure of searchResults = { rivers: { promise, error, result, done }, places: {}, catchments: {} etc }\r\n let singleResult = null;\r\n\r\n // Filter results\r\n let types = Object.keys(searchResults);\r\n for (let i = 0; i < types.length; i++) {\r\n let type = types[i];\r\n\r\n if (searchResults[type].result) {\r\n searchResults[type].result = searchResults[type].result.filter(r => this.isSearchResultRelevant(type, r));\r\n }\r\n }\r\n\r\n // Check postcodes and NGR for a result: if they have it, use it and don't show any results\r\n let singularResultSourceTypes = [SEARCH_RESULT_TYPES.POSTCODES, SEARCH_RESULT_TYPES.NGR];\r\n for (let i = 0; i < singularResultSourceTypes.length; i++) {\r\n let type = singularResultSourceTypes[i];\r\n\r\n if (type in searchResults &&\r\n searchResults[type].result &&\r\n searchResults[type].result.length === 1) {\r\n singleResult = this.buildSearchResultDataObject(type, searchResults[type].result[0]);\r\n break;\r\n }\r\n }\r\n\r\n // If postcode/ngr wasn't there, then check if there's only 1 result in the whole search\r\n if (!singleResult && immediatelySelectSingleResult) {\r\n let foundSingleResult = null;\r\n let foundSingleResultType = null;\r\n\r\n for (let i = 0; i < types.length; i++) {\r\n let type = types[i];\r\n\r\n let length = (searchResults[type].result || []).length;\r\n if (length > 0) {\r\n if (length >= 2 || (length === 1 && foundSingleResult !== null)) {\r\n foundSingleResult = null;\r\n foundSingleResultType = null;\r\n break;\r\n } else {\r\n foundSingleResult = searchResults[type].result[0];\r\n foundSingleResultType = type;\r\n }\r\n }\r\n }\r\n\r\n if (foundSingleResult !== null) {\r\n singleResult = this.buildSearchResultDataObject(foundSingleResultType, foundSingleResult);\r\n }\r\n }\r\n\r\n if (singleResult) {\r\n searchResultsViewModel.isSearchActive = false;\r\n this.handleSingleSearchResult(singleResult);\r\n return 1;\r\n } else {\r\n searchResultsViewModel.isSearchActive = true;\r\n return searchResultsViewModel.setSearchResults(searchResults, searchText);\r\n }\r\n }\r\n\r\n handleSingleSearchResult(searchResult) {\r\n let {\r\n type,\r\n result,\r\n text\r\n } = searchResult;\r\n\r\n let options = SEARCH_RESULT_TYPE_OPTIONS[type] || {};\r\n let dataType = options.dataType || type;\r\n let event = new CustomEvent(\"SearchResultSelected\", {\r\n cancelable: true\r\n });\r\n\r\n this.invokeSearchResultSelectedListeners(event, $.extend({}, searchResult, {\r\n dataType: dataType\r\n }));\r\n\r\n if (!event.defaultPrevented) {\r\n this.autocompleteViewModel.showRoot(false);\r\n\r\n this.searchResultsViewModel.showRoot(true);\r\n this.searchResultsViewModel.showErrorMessage(false);\r\n this.searchResultsViewModel.showResults(false);\r\n this.searchResultsViewModel.isSearchActive = false;\r\n this.searchResultsViewModel.showNoExactMatchText(false);\r\n\r\n var searchedText = options.searchedText || Resource.SearchedSpatial;\r\n this.searchResultsViewModel.showSearchedText(true, searchedText, text);\r\n this.searchResultsViewModel.focusSearchedText();\r\n\r\n this.searchInput.blur();\r\n\r\n this.toggleLocationButton(false);\r\n }\r\n }\r\n\r\n //#region Autosuggestion code\r\n doAutocompleteSearch() {\r\n let searchText = this.searchInput.value;\r\n this._lastInput = searchText;\r\n\r\n if (searchText.trim() === \"\") {\r\n this.autocompleteViewModel.showRoot(false);\r\n this._hasAutocompleteResults = false;\r\n this.toggleLocationButton(true);\r\n this._autocompleteResultsInvalidated = false;\r\n return;\r\n }\r\n\r\n let handleSearchResults = this.handleSearchResults.bind(this, this.autocompleteViewModel, searchText);\r\n\r\n if (this._lastSearchPromises[SEARCH_SOURCE_TYPES.PLACES].searchText !== searchText) {\r\n this._lastSearchPromises[SEARCH_SOURCE_TYPES.PLACES] = {\r\n promise: this.locator.searchForPlaces(searchText),\r\n searchText: searchText\r\n }\r\n }\r\n\r\n let esriPlacesSearchRequest = this._lastSearchPromises[SEARCH_SOURCE_TYPES.PLACES].promise;\r\n let nrwSearchRequest = this.stationDataSearcher.search(searchText);\r\n\r\n let requestsWithResults = this.wrapRequests({\r\n [SEARCH_SOURCE_TYPES.NRW]: nrwSearchRequest,\r\n [SEARCH_SOURCE_TYPES.PLACES]: esriPlacesSearchRequest\r\n });\r\n\r\n let allPromise = this.whenAllRequestsAreDone(requestsWithResults);\r\n this.activeSearchAutocompletePromise = allPromise;\r\n\r\n $(this.searchInput).toggleClass(\"search__input--loading\", true);\r\n\r\n allPromise\r\n .then(requests => {\r\n if (this.activeSearchAutocompletePromise !== allPromise) {\r\n return;\r\n }\r\n\r\n $(this.searchInput).toggleClass(\"search__input--loading\", false);\r\n\r\n let results = this.mapper.mapRequestsToResults(requests);\r\n let anyResults = handleSearchResults(results) > 0;\r\n this._hasAutocompleteResults = anyResults;\r\n\r\n this._autocompleteResultsInvalidated = false;\r\n this.autocompleteViewModel.showRoot(anyResults);\r\n this.toggleLocationButton(!anyResults);\r\n });\r\n }\r\n\r\n killSuggestTimeout() {\r\n if (this._suggestTimeout) {\r\n clearTimeout(this._suggestTimeout);\r\n this._suggestTimeout = null;\r\n }\r\n }\r\n //#endregion\r\n\r\n toggleLocationButton(toggle) {\r\n this.$mobileLocationContainer.toggleClass(\"search__mobile-location-container--off\", !toggle);\r\n }\r\n\r\n isSearchResultRelevant(type, result) {\r\n if (type === SEARCH_RESULT_TYPES.POSTCODES) {\r\n let extent = Geometry.extentOfRadius(result.location);\r\n\r\n return result.score >= 100 && Constants.WALES_EXTENT.intersects(extent);\r\n }\r\n\r\n if (type === SEARCH_RESULT_TYPES.STATIONS) {\r\n return StationQuery.filterStationsByFilterState([result], this.filter.state).length > 0;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n getSearchResultDataType(searchResult) {\r\n return SEARCH_RESULT_TYPE_OPTIONS[searchResult.type].dataType || searchResult.type;\r\n }\r\n\r\n //#region Multiple request handling\r\n wrapRequests(requests) {\r\n // Converts { nrw: Promise } to { nrw: { promise: Promise, done: false, error: null, result: null }}\r\n return Object.keys(requests).reduce((wrappedRequests, requestKey) => {\r\n wrappedRequests[requestKey] = {\r\n promise: requests[requestKey],\r\n done: false,\r\n error: null,\r\n result: null\r\n };\r\n return wrappedRequests;\r\n }, {});\r\n }\r\n\r\n whenAllRequestsAreDone(requestsWithResults) {\r\n let promise = $.Deferred();\r\n\r\n let keys = Object.keys(requestsWithResults);\r\n\r\n for (let i = 0; i < keys.length; i++) {\r\n let requestWithResult = requestsWithResults[keys[i]];\r\n requestWithResult.promise.then(result => {\r\n requestWithResult.done = true;\r\n requestWithResult.result = result;\r\n\r\n ifAllDoneThenResolve.call(this);\r\n }, error => {\r\n requestWithResult.done = true;\r\n requestWithResult.error = error;\r\n\r\n ifAllDoneThenResolve.call(this);\r\n });\r\n }\r\n\r\n function ifAllDoneThenResolve() {\r\n for (let i = 0; i < keys.length; i++) {\r\n let requestWithResult = requestsWithResults[keys[i]];\r\n if (!requestWithResult.done) {\r\n return;\r\n }\r\n }\r\n\r\n promise.resolveWith(this, [requestsWithResults]);\r\n }\r\n\r\n return promise;\r\n }\r\n //#endregion\r\n\r\n //#region Event listener boilerplate methods\r\n addSearchResultSelectedListener(callback) {\r\n if (this._onSearchResultSelectedListeners.indexOf(callback) === -1) {\r\n this._onSearchResultSelectedListeners.push(callback);\r\n }\r\n }\r\n\r\n invokeSearchResultSelectedListeners(event, result) {\r\n for (let i = 0, x = this._onSearchResultSelectedListeners.length; i < x; i++) {\r\n this._onSearchResultSelectedListeners[i].bind(this)(event, result);\r\n }\r\n }\r\n\r\n addSearchClearedListener(callback) {\r\n if (this._onSearchClearedListeners.indexOf(callback) === -1) {\r\n this._onSearchClearedListeners.push(callback);\r\n }\r\n }\r\n\r\n invokeSearchClearedListeners() {\r\n for (let i = 0, x = this._onSearchClearedListeners.length; i < x; i++) {\r\n this._onSearchClearedListeners[i].bind(this)();\r\n }\r\n }\r\n //#endregion\r\n}\r\n\r\nexport default Search;\r\n","import Constants from \"./Constants\";\r\nimport Extent from \"esri/geometry/Extent\";\r\nimport Geometry from \"./Util/Geometry\";\r\nimport OsGridRef from \"geodesy/osgridref\";\r\nimport Point from \"esri/geometry/Point\";\r\nimport SpatialReference from \"esri/geometry/SpatialReference\";\r\n\r\nconst queryStringKeys = Object.freeze({\r\n layers: \"layers\",\r\n extent: \"extent\",\r\n ngr: \"ngr\",\r\n parameterType: \"parameterType\"\r\n});\r\n\r\nconst parseFailure = (error) => { return { success: false, error: error } };\r\nconst parseSuccess = (result) => { return { success: true, result: result } };\r\n\r\nconst geographicWkid = 4326;\r\n\r\nclass StartUpVariables {\r\n constructor(getQueryString) {\r\n this.getQueryString = getQueryString || (() => window.location.search);\r\n }\r\n\r\n configureFilterUsingQueryString(filter) {\r\n let queryStringFilters = this.tryParseFiltersUsingQueryString(filter.validLayerTypes);\r\n if (queryStringFilters.success) {\r\n filter.replaceState(queryStringFilters.result);\r\n } else {\r\n // Default filter = river only\r\n filter.setLayerState(\"river\", true);\r\n }\r\n }\r\n\r\n tryParseFiltersUsingQueryString(validLayerTypes) {\r\n let outFilters = {};\r\n let queryString = new URLSearchParams(this.getQueryString());\r\n let queryStringLayers = queryString.get(queryStringKeys.layers);\r\n\r\n // No query string? Nothing more can be done\r\n if (queryStringLayers === null) {\r\n return parseFailure();\r\n }\r\n\r\n // Turns \"river,rainfall,invalidLayer\" into [\"river\", \"rainfall\"] (invalidLayer removed)\r\n let activeLayerTypes = queryStringLayers\r\n .split(\" \")\r\n .map(layerType => layerType.trim())\r\n .filter(layerType => validLayerTypes.indexOf(layerType) >= 0);\r\n\r\n // For each active layer, set it to true in the filter\r\n for (let i = 0; i < activeLayerTypes.length; i++) {\r\n let activeLayerType = activeLayerTypes[i];\r\n outFilters[activeLayerType] = true;\r\n }\r\n\r\n return parseSuccess(outFilters);\r\n }\r\n\r\n configureMapUsingQueryString(mapController) {\r\n let queryStringExtent = this.tryParseExtentUsingQueryString();\r\n let applied = false;\r\n\r\n if (!applied && queryStringExtent.success) {\r\n let isExtentWithinWales = queryStringExtent.result.intersects(mapController.boundingExtent);\r\n\r\n if (isExtentWithinWales) {\r\n let extent = queryStringExtent.result;\r\n mapController.extent = extent;\r\n applied = true;\r\n }\r\n }\r\n\r\n let queryStringNgr = this.tryParseNgrUsingQueryString();\r\n if (!applied && queryStringNgr.success) {\r\n let gridReg = queryStringNgr.result;\r\n\r\n let point = new Point({\r\n x: gridReg.easting,\r\n y: gridReg.northing,\r\n spatialReference: new SpatialReference({ wkid: 27700 })\r\n });\r\n\r\n let extent = Geometry.extentOfRadius(point, Constants.LOCATION_ZOOM_RADIUS_KM);\r\n\r\n let isPointWithinWales = mapController.boundingExtent.intersects(extent);\r\n\r\n if (isPointWithinWales) {\r\n mapController.extent = extent;\r\n applied = true;\r\n }\r\n }\r\n }\r\n\r\n tryParseExtentUsingQueryString() {\r\n let queryString = new URLSearchParams(this.getQueryString());\r\n let queryStringExtent = queryString.get(queryStringKeys.extent);\r\n\r\n // No query string? Nothing more can be done\r\n if (queryStringExtent === null) {\r\n return parseFailure();\r\n }\r\n\r\n let extentComponents = queryStringExtent.split(\" \").map(c => +c); // cast to number\r\n\r\n if (extentComponents.filter(c => isNaN(c)).length > 0) {\r\n // NaN in components = invalid\r\n return parseFailure();\r\n }\r\n if (extentComponents.length < 4) {\r\n // need x/y min/max, 4 numbers, otherwise invalid\r\n return parseFailure();\r\n }\r\n\r\n let wkid = geographicWkid; // assume lat lng\r\n if (extentComponents.length >= 5) {\r\n wkid = extentComponents[4];\r\n }\r\n\r\n let isLatLng = wkid === geographicWkid;\r\n\r\n let extentProps = {\r\n xmin: extentComponents[isLatLng ? 1 : 0], // Lat first for geographical coords\r\n ymin: extentComponents[isLatLng ? 0 : 1],\r\n xmax: extentComponents[isLatLng ? 3 : 2],\r\n ymax: extentComponents[isLatLng ? 2 : 3],\r\n spatialReference: new SpatialReference({ wkid: wkid })\r\n };\r\n\r\n return parseSuccess(new Extent(extentProps));\r\n }\r\n\r\n tryParseNgrUsingQueryString() {\r\n let queryString = new URLSearchParams(this.getQueryString());\r\n let queryStringNgr = queryString.get(queryStringKeys.ngr);\r\n\r\n if (queryStringNgr === null) {\r\n return parseFailure();\r\n }\r\n\r\n try {\r\n return parseSuccess(OsGridRef.parse(queryStringNgr));\r\n } catch (ex) {\r\n return parseFailure();\r\n }\r\n }\r\n\r\n tryParseParameterTypeUsingQueryString() {\r\n let queryString = new URLSearchParams(this.getQueryString());\r\n let queryStringParameterType = queryString.get(queryStringKeys.parameterType);\r\n\r\n if (queryStringParameterType === null) {\r\n return null;\r\n }\r\n \r\n let parsedInt = parseInt(queryStringParameterType);\r\n \r\n if (isNaN(parsedInt)) {\r\n return null;\r\n }\r\n\r\n return parsedInt;\r\n }\r\n}\r\n\r\nexport default StartUpVariables;\r\n","import { MapPopup } from \"@nrw.core/map\";\r\nconst widthElementSelectors = [\r\n \".station-parameter__title\",\r\n \".station-parameter__value\",\r\n \".station-parameter__date\"\r\n];\r\n\r\nclass StationPopup extends MapPopup {\r\n constructor(mapView, mapPopupDetailComponent) {\r\n super(mapView, mapPopupDetailComponent);\r\n\r\n this._station = null;\r\n this.element = null;\r\n\r\n $(window).on(\"resize\", ev => {\r\n if (this.element !== null) {\r\n this.updateWidths(this.element);\r\n }\r\n });\r\n }\r\n\r\n get station() {\r\n return this._station;\r\n }\r\n\r\n clear() {\r\n this._station = null;\r\n super.clear();\r\n }\r\n\r\n set station(station) {\r\n if (station === this._station) {\r\n return;\r\n }\r\n\r\n this._station = station;\r\n this.viewModel.location = station.point;\r\n }\r\n\r\n //overridden\r\n show(data) {\r\n if (data === this.station) {\r\n if (!this.visible) {\r\n return super.show(data, false);\r\n } else {\r\n this.clearPopupHideTimeout();\r\n return;\r\n }\r\n }\r\n\r\n this.station = data;\r\n return super.show(data);\r\n }\r\n\r\n //private\r\n _buildContent(data) {\r\n this.element = super._buildContent(data);\r\n\r\n $(this.element).on(\"layoutChanged\", ev => {\r\n this.updateWidths(ev.target);\r\n });\r\n\r\n return this.element;\r\n }\r\n\r\n updateWidths(element) {\r\n for (let i = 0; i < widthElementSelectors.length; i++) {\r\n const selector = widthElementSelectors[i];\r\n const Width = this.updateWidthsOfElements(element.querySelectorAll(selector));\r\n }\r\n }\r\n\r\n updateWidthsOfElements(elements) {\r\n let maxWidthOfElements = 0;\r\n\r\n if (elements.length === 0) {\r\n return 0;\r\n }\r\n\r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n element.style.width = \"\";\r\n }\r\n\r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n maxWidthOfElements = Math.max(maxWidthOfElements, element.clientWidth);\r\n }\r\n\r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n element.style.width = maxWidthOfElements + \"px\";\r\n }\r\n\r\n return maxWidthOfElements;\r\n }\r\n\r\n}\r\nexport default StationPopup;","/// <reference path=\"../typings/index.d.ts\" />\r\nimport GraphicsLayer from \"esri/layers/GraphicsLayer\";\r\nimport SimpleMarkerSymbol from \"esri/symbols/SimpleMarkerSymbol\";\r\nimport TextSymbol from \"esri/symbols/TextSymbol\";\r\nimport SimpleLineSymbol from \"esri/symbols/SimpleLineSymbol\";\r\nimport Color from \"esri/Color\";\r\nimport watchUtils from 'esri/core/watchUtils';\r\nimport webMercatorUtils from \"esri/geometry/support/webMercatorUtils\";\r\nimport Graphic from \"esri/Graphic\";\r\nimport Point from \"esri/geometry/Point\";\r\nimport Multipoint from \"esri/geometry/Multipoint\";\r\nimport Polygon from \"esri/geometry/Polygon\";\r\nimport geometryEngine from 'esri/geometry/geometryEngine';\r\nimport SpatialReference from \"esri/geometry/SpatialReference\";\r\nimport on from 'dojo/on';\r\nimport gfx from 'dojox/gfx';\r\nimport domConstruct from 'dojo/dom-construct';\r\nimport query from 'dojo/query';\r\nimport domAttr from 'dojo/dom-attr';\r\nimport domStyle from 'dojo/dom-style';\r\nimport * as symbolUtils from \"esri/symbols/support/symbolUtils\";\r\nexport class FlareClusterLayer {\r\n constructor(options) {\r\n this._viewLoadCount = 0;\r\n this._clusters = {};\r\n this.layer = new GraphicsLayer(options);\r\n this.layer.on(\"layerview-create\", ev => {\r\n this.spatialReference = ev.view.spatialReference;\r\n });\r\n // set the defaults\r\n if (!options) {\r\n // missing required parameters\r\n console.error(\"Missing required parameters to flare cluster layer constructor.\");\r\n return;\r\n }\r\n this.singlePopupTemplate = options.singlePopupTemplate;\r\n // set up the clustering properties\r\n this.clusterRatio = options.clusterRatio || 75; // sets the size of each clusters bounds\r\n this.clusterToScale = options.clusterToScale || 2000000; // the scale to stop clustering at and just display single points\r\n this.clusterMinCount = options.clusterMinCount || 2; // the min amount of points required in a cluster bounds to justify creating a cluster\r\n this.singleFlareTooltipProperty = options.singleFlareTooltipProperty || \"name\"; // The property name of the dataset to display in a tooltip for a flare when a flare represents a single object.\r\n if (options.clusterAreaDisplay) {\r\n this.clusterAreaDisplay = options.clusterAreaDisplay === \"none\" ? undefined : options.clusterAreaDisplay; // when to display the area (convex hull) of the points for each each cluster\r\n }\r\n this.maxFlareCount = options.maxFlareCount || 8; // maximum number of flares for each cluster\r\n this.maxSingleFlareCount = options.maxSingleFlareCount || 8; // maximum number of single object flares before converting to aggregated flares\r\n this.displayFlares = options.displayFlares === false ? false : true; // whether to display flares, default to true \r\n this.displaySubTypeFlares = options.displaySubTypeFlares === true; // whether to display sub type flares, ie: flares that represent the counts of a certain property of the data that is clustered\r\n this.subTypeFlareProperty = options.subTypeFlareProperty || undefined; // the property name that the subtype flare will use to count on\r\n this.flareBufferPixels = options.flareBufferPixels || 6; // buffer between flares and cluster\r\n // data set property names\r\n this.xPropertyName = options.xPropertyName || \"x\";\r\n this.yPropertyName = options.yPropertyName || \"y\";\r\n this.zPropertyName = options.zPropertyName || \"z\";\r\n // set up the symbology/renderer properties\r\n this.clusterRenderer = options.clusterRenderer;\r\n this.areaRenderer = options.areaRenderer;\r\n this.singleRenderer = options.singleRenderer;\r\n this.singleSymbol = options.singleSymbol;\r\n this.flareRenderer = options.flareRenderer;\r\n this.refreshOnStationary = options.refreshOnStationary === false ? false : true; // whether this layer should refresh the clusters and redraw when stationary is true, default to true\r\n // add some default symbols or use the options values.\r\n this.flareSymbol = options.flareSymbol || new SimpleMarkerSymbol({\r\n size: 14,\r\n color: new Color([0, 0, 0, 0.5]),\r\n outline: new SimpleLineSymbol({ color: new Color([255, 255, 255, 0.5]), width: 1 })\r\n });\r\n this.textSymbol = options.textSymbol || new TextSymbol({\r\n color: new Color([255, 255, 255]),\r\n font: {\r\n size: 10,\r\n family: \"arial\"\r\n },\r\n yoffset: -3 // setting yoffset as vertical alignment doesn't work in IE/Edge\r\n });\r\n this.flareTextSymbol = options.flareTextSymbol || new TextSymbol({\r\n color: new Color([255, 255, 255]),\r\n font: {\r\n size: 6,\r\n family: \"arial\"\r\n },\r\n yoffset: -2 // setting yoffset as vertical alignment doesn't work in IE/Edge\r\n });\r\n // initial data\r\n this._data = options.data || undefined;\r\n this.on(\"layerview-create\", (evt) => this._layerViewCreated(evt));\r\n if (this._data) {\r\n this.draw();\r\n }\r\n }\r\n _layerViewCreated(evt) {\r\n // add a stationary watch on the view to refresh if specified in options.\r\n if (this.refreshOnStationary) {\r\n watchUtils.pausable(evt.layerView.view, \"stationary\", (isStationary, b, c, view) => this._viewStationary(isStationary, b, c, view));\r\n }\r\n if (this._viewLoadCount === 0) {\r\n this._activeView = evt.layerView.view;\r\n this._readyToDraw = true;\r\n if (this._queuedInitialDraw) {\r\n // we've been waiting for this to happen to draw\r\n this.draw();\r\n this._queuedInitialDraw = false;\r\n }\r\n }\r\n this._viewLoadCount++;\r\n if (evt.layerView.view.type === \"2d\") {\r\n // for map views, wait for the layerview ot be attached, before adding events\r\n //watchUtils.whenTrueOnce(evt.layerView, \"attached\", () => this._addViewEvents(evt.layerView));\r\n }\r\n else {\r\n // for scene views just add the events straight away\r\n this._addViewEvents(evt.layerView);\r\n }\r\n }\r\n _addViewEvents(layerView) {\r\n let v = layerView.view;\r\n if (!v.fclPointerMove) {\r\n let container = undefined;\r\n if (v.type === \"2d\") {\r\n // for a map view get the container element of the layer view to add mousemove event to.\r\n container = layerView.container.element;\r\n }\r\n else {\r\n // for scene view get the canvas element under the view container to add mousemove to.\r\n container = query(\"canvas\", v.container)[0];\r\n }\r\n // Add pointer move and pointer down. Pointer down to handle touch devices.\r\n v.fclPointerMove = v.on(\"pointer-move\", (evt) => this._viewPointerMove(evt));\r\n v.fclPointerDown = v.on(\"pointer-down\", (evt) => this._viewPointerMove(evt));\r\n }\r\n }\r\n _viewStationary(isStationary, b, c, view) {\r\n if (isStationary) {\r\n if (this._data) {\r\n this.draw();\r\n }\r\n }\r\n if (!isStationary && this._activeCluster) {\r\n // if moving deactivate cluster;\r\n this._deactivateCluster();\r\n }\r\n }\r\n clear() {\r\n this.removeAll();\r\n this._clusters = {};\r\n }\r\n setData(data, drawData = true) {\r\n this._data = data;\r\n if (drawData) {\r\n this.draw();\r\n }\r\n }\r\n draw(activeView) {\r\n if (activeView) {\r\n // if we're swapping views from the currently active one, clear the surface object so it get's recreated fresh after the first draw\r\n if (this._activeView && activeView !== this._activeView) {\r\n this._activeView.fclSurface = null;\r\n }\r\n this._activeView = activeView;\r\n }\r\n // Not ready to draw yet so queue one up\r\n if (!this._readyToDraw) {\r\n this._queuedInitialDraw = true;\r\n return;\r\n }\r\n let currentExtent = this._extent();\r\n if (!this._activeView || !this._data || !currentExtent)\r\n return;\r\n this._is2d = this._activeView.type === \"2d\";\r\n // check for required renderer\r\n if (!this.clusterRenderer) {\r\n console.error(\"FlareClusterLayer: clusterRenderer must be set.\");\r\n }\r\n // check to make sure we have an area renderer set if one needs to be\r\n if (this.clusterAreaDisplay && !this.areaRenderer) {\r\n console.error(\"FlareClusterLayer: areaRenderer must be set if clusterAreaDisplay is set.\");\r\n return;\r\n }\r\n this.clear();\r\n console.time(\"draw-data-\" + this._activeView.type);\r\n this._isClustered = this.clusterToScale < this._scale();\r\n let graphics = [];\r\n // Get an extent that is in web mercator to make sure it's flat for extent checking\r\n // The webextent will need to be normalized since panning over the international dateline will cause\r\n // cause the extent to shift outside the -180 to 180 degree window. If we don't normalize then the\r\n // clusters will not be drawn if the map pans over the international dateline.\r\n let webExtent = !currentExtent.spatialReference.isWebMercator ? webMercatorUtils.project(currentExtent, new SpatialReference({ \"wkid\": 102100 })) : currentExtent;\r\n if (!webExtent) {\r\n webExtent = currentExtent;\r\n }\r\n let extentIsUnioned = false;\r\n let normalizedWebExtent = webExtent.normalize();\r\n webExtent = normalizedWebExtent[0];\r\n if (normalizedWebExtent.length > 1) {\r\n webExtent = webExtent.union(normalizedWebExtent[1]);\r\n extentIsUnioned = true;\r\n }\r\n if (this._isClustered) {\r\n this._createClusterGrid(webExtent, extentIsUnioned);\r\n }\r\n let web, obj, dataLength = this._data.length, xVal, yVal;\r\n for (let i = 0; i < dataLength; i++) {\r\n obj = this._data[i];\r\n // check if filters are specified and continue if this object doesn't pass\r\n if (!this._passesFilter(obj)) {\r\n continue;\r\n }\r\n xVal = obj[this.xPropertyName];\r\n yVal = obj[this.yPropertyName];\r\n // get a web merc lng/lat for extent checking. Use web merc as it's flat to cater for longitude pole\r\n if (this.spatialReference.isWebMercator || !this.spatialReference.isWGS84) {\r\n web = [xVal, yVal];\r\n }\r\n else {\r\n web = webMercatorUtils.lngLatToXY(xVal, yVal);\r\n }\r\n // check if the obj is visible in the extent before proceeding\r\n if ((web[0] <= webExtent.xmin || web[0] > webExtent.xmax) || (web[1] <= webExtent.ymin || web[1] > webExtent.ymax)) {\r\n continue;\r\n }\r\n if (this._isClustered) {\r\n // loop cluster grid to see if it should be added to one\r\n for (let j = 0, jLen = this._gridClusters.length; j < jLen; j++) {\r\n let cl = this._gridClusters[j];\r\n if (web[0] <= cl.extent.xmin || web[0] > cl.extent.xmax || web[1] <= cl.extent.ymin || web[1] > cl.extent.ymax) {\r\n continue; //not here so carry on\r\n }\r\n // recalc the x and y of the cluster by averaging the points again\r\n cl.x = cl.clusterCount > 0 ? (xVal + (cl.x * cl.clusterCount)) / (cl.clusterCount + 1) : xVal;\r\n cl.y = cl.clusterCount > 0 ? (yVal + (cl.y * cl.clusterCount)) / (cl.clusterCount + 1) : yVal;\r\n // push every point into the cluster so we have it for area display if required. This could be omitted if never checking areas, or on demand at least\r\n if (this.clusterAreaDisplay) {\r\n cl.points.push([xVal, yVal]);\r\n }\r\n cl.clusterCount++;\r\n var subTypeExists = false;\r\n for (var s = 0, sLen = cl.subTypeCounts.length; s < sLen; s++) {\r\n if (cl.subTypeCounts[s].name === obj[this.subTypeFlareProperty]) {\r\n cl.subTypeCounts[s].count++;\r\n subTypeExists = true;\r\n break;\r\n }\r\n }\r\n if (!subTypeExists) {\r\n cl.subTypeCounts.push({ name: obj[this.subTypeFlareProperty], count: 1 });\r\n }\r\n // add the single fix record if still under the maxSingleFlareCount\r\n if (cl.clusterCount <= this.maxSingleFlareCount) {\r\n cl.singles.push(obj);\r\n }\r\n else {\r\n cl.singles = [];\r\n }\r\n break;\r\n }\r\n }\r\n else {\r\n // not clustered so just add every obj\r\n this._createSingle(obj);\r\n }\r\n }\r\n if (this._isClustered) {\r\n for (let i = 0, len = this._gridClusters.length; i < len; i++) {\r\n if (this._gridClusters[i].clusterCount < this.clusterMinCount) {\r\n for (let j = 0, jlen = this._gridClusters[i].singles.length; j < jlen; j++) {\r\n this._createSingle(this._gridClusters[i].singles[j]);\r\n }\r\n }\r\n else if (this._gridClusters[i].clusterCount >= 1) {\r\n this._createCluster(this._gridClusters[i]);\r\n }\r\n }\r\n }\r\n // emit an event to signal drawing is complete.\r\n this.emit(\"draw-complete\", {});\r\n console.timeEnd(`draw-data-${this._activeView.type}`);\r\n if (!this._activeView.fclSurface) {\r\n setTimeout(() => {\r\n this._createSurface();\r\n }, 10);\r\n }\r\n }\r\n _passesFilter(obj) {\r\n if (!this.filters || this.filters.length === 0)\r\n return true;\r\n let passes = true;\r\n for (let i = 0, len = this.filters.length; i < len; i++) {\r\n let filter = this.filters[i];\r\n if (obj[filter.propertyName] == null)\r\n continue;\r\n let valExists = filter.propertyValues.indexOf(obj[filter.propertyName]) !== -1;\r\n if (valExists) {\r\n passes = filter.keepOnlyIfValueExists; // the value exists so return whether we should be keeping it or not.\r\n }\r\n else if (!valExists && filter.keepOnlyIfValueExists) {\r\n passes = false; // return false as the value doesn't exist, and we should only be keeping point objects where it does exist.\r\n }\r\n if (!passes)\r\n return false; // if it hasn't passed any of the filters return false;\r\n }\r\n return passes;\r\n }\r\n _createSingle(obj) {\r\n let point = new Point({\r\n x: obj[this.xPropertyName], y: obj[this.yPropertyName], z: obj[this.zPropertyName], spatialReference: this.spatialReference\r\n });\r\n if (!point.spatialReference.isWebMercator && point.spatialReference.isGeographic) {\r\n point = webMercatorUtils.geographicToWebMercator(point);\r\n }\r\n let graphic = new Graphic({\r\n geometry: point,\r\n attributes: obj\r\n });\r\n graphic.popupTemplate = this.singlePopupTemplate;\r\n if (this.singleRenderer) {\r\n let symbol = this.singleRenderer.getSymbol(graphic, this._activeView);\r\n graphic.symbol = symbol;\r\n }\r\n else if (this.singleSymbol) {\r\n graphic.symbol = this.singleSymbol;\r\n }\r\n else {\r\n // no symbology for singles defined, use the default symbol from the cluster renderer\r\n graphic.symbol = this.clusterRenderer.defaultSymbol;\r\n }\r\n this.add(graphic);\r\n }\r\n async _createCluster(gridCluster) {\r\n let cluster = new Cluster();\r\n cluster.gridCluster = gridCluster;\r\n // make sure all geometries added to Graphic objects are in web mercator otherwise wrap around doesn't work.\r\n let point = new Point({ x: gridCluster.x, y: gridCluster.y, spatialReference: this.spatialReference });\r\n if (!point.spatialReference.isWebMercator && point.spatialReference.isGeographic) {\r\n point = webMercatorUtils.geographicToWebMercator(point);\r\n }\r\n let attributes = {\r\n x: gridCluster.x,\r\n y: gridCluster.y,\r\n clusterCount: gridCluster.clusterCount,\r\n isCluster: true,\r\n clusterObject: gridCluster\r\n };\r\n cluster.clusterGraphic = new Graphic({\r\n attributes: attributes,\r\n geometry: point\r\n });\r\n let cbi = await this.clusterRenderer.getClassBreakInfo(cluster.clusterGraphic);\r\n cluster.clusterGraphic.symbol = cbi.symbol;\r\n if (this._is2d && this._activeView.rotation) {\r\n cluster.clusterGraphic.symbol[\"angle\"] = 360 - this._activeView.rotation;\r\n }\r\n else {\r\n cluster.clusterGraphic.symbol[\"angle\"] = 0;\r\n }\r\n cluster.clusterId = cluster.clusterGraphic[\"uid\"];\r\n cluster.clusterGraphic.attributes.clusterId = cluster.clusterId;\r\n // also create a text symbol to display the cluster count\r\n let textSymbol = this.textSymbol.clone();\r\n textSymbol.text = gridCluster.clusterCount.toString();\r\n cluster.textGraphic = new Graphic({\r\n geometry: point,\r\n attributes: {\r\n isClusterText: true,\r\n isText: true,\r\n clusterId: cluster.clusterId\r\n },\r\n symbol: textSymbol\r\n });\r\n // add an area graphic to display the bounds of the cluster if configured to\r\n if (this.clusterAreaDisplay && gridCluster.points && gridCluster.points.length > 0) {\r\n let mp = new Multipoint();\r\n mp.points = gridCluster.points;\r\n let area = geometryEngine.convexHull(mp, true); // use convex hull on the points to get the boundary\r\n let areaAttr = {\r\n x: gridCluster.x,\r\n y: gridCluster.y,\r\n clusterCount: gridCluster.clusterCount,\r\n clusterId: cluster.clusterId,\r\n isClusterArea: true\r\n };\r\n if (area.rings && area.rings.length > 0) {\r\n let areaPoly = new Polygon(); // had to create a new polygon and fill it with the ring of the calculated area for SceneView to work.\r\n areaPoly = areaPoly.addRing(area.rings[0]);\r\n if (!areaPoly.spatialReference.isWebMercator && areaPoly.spatialReference.isGeographic) {\r\n areaPoly = webMercatorUtils.geographicToWebMercator(areaPoly);\r\n }\r\n cluster.areaGraphic = new Graphic({ geometry: areaPoly, attributes: areaAttr });\r\n cluster.areaGraphic.symbol = (await this.areaRenderer.getClassBreakInfo(cluster.areaGraphic)).symbol;\r\n }\r\n }\r\n // add the graphics in order \r\n if (cluster.areaGraphic && this.clusterAreaDisplay === \"always\") {\r\n this.add(cluster.areaGraphic);\r\n }\r\n this.add(cluster.clusterGraphic);\r\n // add text graphic in a slight timeout, to make sure text graphics are on top of cluster graphics. Need to wait for clusters to render.\r\n setTimeout(() => {\r\n this.add(cluster.textGraphic);\r\n }, 10);\r\n this._clusters[cluster.clusterId] = cluster;\r\n }\r\n _createClusterGrid(webExtent, extentIsUnioned) {\r\n // get the total amount of grid spaces based on the height and width of the map (divide it by clusterRatio) - then get the degrees for x and y \r\n let xCount = Math.round(this._activeView.width / this.clusterRatio);\r\n let yCount = Math.round(this._activeView.height / this.clusterRatio);\r\n // if the extent has been unioned due to normalization, double the count of x in the cluster grid as the unioning will halve it.\r\n if (extentIsUnioned) {\r\n xCount *= 2;\r\n }\r\n let xw = (webExtent.xmax - webExtent.xmin) / xCount;\r\n let yh = (webExtent.ymax - webExtent.ymin) / yCount;\r\n let gsxmin, gsxmax, gsymin, gsymax;\r\n // create an array of clusters that is a grid over the visible extent. Each cluster contains the extent (in web merc) that bounds the grid space for it.\r\n this._gridClusters = [];\r\n for (let i = 0; i < xCount; i++) {\r\n gsxmin = webExtent.xmin + (xw * i);\r\n gsxmax = gsxmin + xw;\r\n for (let j = 0; j < yCount; j++) {\r\n gsymin = webExtent.ymin + (yh * j);\r\n gsymax = gsymin + yh;\r\n let ext = { xmin: gsxmin, xmax: gsxmax, ymin: gsymin, ymax: gsymax };\r\n this._gridClusters.push({\r\n extent: ext,\r\n clusterCount: 0,\r\n subTypeCounts: [],\r\n singles: [],\r\n points: [],\r\n x: 0,\r\n y: 0\r\n });\r\n }\r\n }\r\n }\r\n /**\r\n * Create an svg surface on the view if it doesn't already exist\r\n * @param view\r\n */\r\n _createSurface() {\r\n if (this._activeView.fclSurface || (this._activeView.type === \"2d\" && !this._activeView.container))\r\n return;\r\n let surfaceParentElement = undefined;\r\n if (this._is2d) {\r\n surfaceParentElement = this._activeView.container.parentElement || this._activeView.container.parentNode;\r\n }\r\n else {\r\n surfaceParentElement = this._activeView.canvas.parentElement || this._activeView.canvas.parentNode;\r\n }\r\n let surface = gfx.createSurface(surfaceParentElement, \"0\", \"0\");\r\n surface.containerGroup = surface.createGroup();\r\n domStyle.set(surface.rawNode, { position: \"absolute\", top: \"0\", zIndex: -1 });\r\n domAttr.set(surface.rawNode, \"overflow\", \"visible\");\r\n domAttr.set(surface.rawNode, \"class\", \"fcl-surface\");\r\n domAttr.set(surface.rawNode, \"id\", \"fcl-surface\");\r\n this._activeView.fclSurface = surface;\r\n }\r\n _viewPointerMove(evt) {\r\n let mousePos = this._getMousePos(evt);\r\n // if there's an active cluster and the current screen pos is within the bounds of that cluster's group container, don't do anything more. \r\n // TODO: would probably be better to check if the point is in the actual circle of the cluster group and it's flares instead of using the rectanglar bounding box.\r\n if (this._activeCluster && this._activeCluster.clusterGroup) {\r\n let bbox = this._activeCluster.clusterGroup.rawNode.getBoundingClientRect();\r\n if (bbox) {\r\n if (mousePos.x >= bbox.left && mousePos.x <= bbox.right && mousePos.y >= bbox.top && mousePos.y <= bbox.bottom)\r\n return;\r\n }\r\n }\r\n if (!this._activeView.ready)\r\n return;\r\n let hitTest = this._activeView.hitTest(mousePos);\r\n if (!hitTest)\r\n return;\r\n hitTest.then((response) => {\r\n let graphics = response.results;\r\n if (graphics.length === 0) {\r\n this._deactivateCluster();\r\n return;\r\n }\r\n for (let i = 0, len = graphics.length; i < len; i++) {\r\n let g = graphics[i].graphic;\r\n if (g && (g.attributes.clusterId != null && !g.attributes.isClusterArea)) {\r\n let cluster = this._clusters[g.attributes.clusterId];\r\n this._activateCluster(cluster);\r\n return;\r\n }\r\n else {\r\n this._deactivateCluster();\r\n }\r\n }\r\n });\r\n }\r\n _activateCluster(cluster) {\r\n if (this._activeCluster === cluster) {\r\n return; // already active \r\n }\r\n this._deactivateCluster();\r\n this._activeCluster = cluster;\r\n // reorder the graphics to put active one on top\r\n this.graphics.reorder(this._activeCluster.clusterGraphic, this.graphics.length - 1);\r\n this.graphics.reorder(this._activeCluster.textGraphic, this.graphics.length - 1);\r\n if (this._activeCluster.areaGraphic) {\r\n this.graphics.reorder(this._activeCluster.areaGraphic, 0);\r\n }\r\n if (this.clusterAreaDisplay === \"activated\") {\r\n this._showGraphic(this._activeCluster.areaGraphic);\r\n }\r\n if (!this._activeView.fclSurface) {\r\n this._createSurface();\r\n }\r\n this._initSurface();\r\n this._initCluster();\r\n this._initFlares();\r\n this._hideGraphic([this._activeCluster.clusterGraphic, this._activeCluster.textGraphic]);\r\n //console.log(\"activate cluster\");\r\n }\r\n _deactivateCluster() {\r\n if (!this._activeCluster)\r\n return;\r\n if (this.clusterAreaDisplay === \"activated\") {\r\n this._hideGraphic(this._activeCluster.areaGraphic);\r\n }\r\n this._showGraphic([this._activeCluster.clusterGraphic, this._activeCluster.textGraphic]);\r\n this._removeClassFromElement(this._activeCluster.clusterGroup.rawNode, \"activated\");\r\n this._clearSurface();\r\n this._activeCluster = undefined;\r\n //console.log(\"DE-activate cluster\");\r\n }\r\n _initSurface() {\r\n if (!this._activeCluster)\r\n return;\r\n let surface = this._activeView.fclSurface;\r\n if (!surface)\r\n return;\r\n let sp = this._activeView.toScreen(this._activeCluster.clusterGraphic.geometry);\r\n // toScreen() returns the wrong value for x if a 2d map has been wrapped around the globe. Need to check and cater for this. I think this a bug in the api.\r\n if (this._is2d) {\r\n var wsw = this._activeView.state.worldScreenWidth;\r\n let ratio = parseInt((sp.x / wsw).toFixed(0)); // get a ratio to determine how many times the map has been wrapped around.\r\n if (sp.x < 0) {\r\n // x is less than 0, WTF. Need to adjust by the world screen width.\r\n sp.x += wsw * (ratio * -1);\r\n }\r\n else if (sp.x > wsw) {\r\n // x is too big, WTF as well, cater for it.\r\n sp.x -= wsw * ratio;\r\n }\r\n }\r\n domStyle.set(surface.rawNode, { zIndex: 11, overflow: \"visible\", width: \"1px\", height: \"1px\", left: sp.x + \"px\", top: sp.y + \"px\" });\r\n domAttr.set(surface.rawNode, \"overflow\", \"visible\");\r\n }\r\n _clearSurface() {\r\n let surface = this._activeView.fclSurface;\r\n query(\".cluster-group\", surface.containerGroup.rawNode).forEach(domConstruct.destroy);\r\n domStyle.set(surface.rawNode, { zIndex: -1, overflow: \"hidden\", top: \"0px\", left: \"0px\" });\r\n domAttr.set(surface.rawNode, \"overflow\", \"hidden\");\r\n }\r\n async _initCluster() {\r\n if (!this._activeCluster)\r\n return;\r\n let surface = this._activeView.fclSurface;\r\n if (!surface)\r\n return;\r\n // we're going to replicate a cluster graphic in the svg element we added to the layer view. Just so it can be styled easily. Native WebGL for Scene Views would probably be better, but at least this way css can still be used to style/animate things.\r\n this._activeCluster.clusterGroup = surface.containerGroup.createGroup();\r\n this._addClassToElement(this._activeCluster.clusterGroup.rawNode, \"cluster-group\");\r\n // get a copy of the active clusters symbols as html elements for symbology and text and add to the cluster group inside the custom svg.\r\n let clonedClusterElement = await this._createClonedElementFromGraphic(this._activeCluster.clusterGraphic);\r\n this._activeCluster.clusterGroup.rawNode.appendChild(clonedClusterElement);\r\n this._translateClonedClusterElement(clonedClusterElement);\r\n this._addClassToElement(clonedClusterElement, \"cluster\");\r\n let clonedTextElement = await this._createClonedElementFromGraphic(this._activeCluster.textGraphic);\r\n this._activeCluster.clusterGroup.rawNode.appendChild(clonedTextElement);\r\n this._addClassToElement(clonedTextElement, \"cluster-text\");\r\n this._addClassToElement(this._activeCluster.clusterGroup.rawNode, \"activated\", 10);\r\n }\r\n async _createClonedElementFromGraphic(graphic) {\r\n let element = await symbolUtils.renderPreviewHTML(graphic.symbol);\r\n let svg = element.children[0];\r\n // loop the children of the returned symbol. Ignore g and defs tags. This could certainly be better.\r\n for (let i = 0; i < svg.children.length; i++) {\r\n let el = svg.children[i];\r\n if (el.tagName === \"g\") {\r\n for (let j = 0; j < el.children.length; j++) {\r\n if (el.children[j].tagName === \"defs\")\r\n continue;\r\n let clusterElement = el.children[j];\r\n return clusterElement;\r\n }\r\n }\r\n }\r\n // default to return an empty g. Should never get hit though.\r\n return document.createElement(\"g\");\r\n }\r\n async _initFlares() {\r\n if (!this._activeCluster || !this.displayFlares)\r\n return;\r\n let gridCluster = this._activeCluster.gridCluster;\r\n // check if we need to create flares for the cluster\r\n let singleFlares = (gridCluster.singles && gridCluster.singles.length > 0) && (gridCluster.clusterCount <= this.maxSingleFlareCount);\r\n let subTypeFlares = !singleFlares && (gridCluster.subTypeCounts && gridCluster.subTypeCounts.length > 0);\r\n if (!singleFlares && !subTypeFlares) {\r\n return; // no flares required\r\n }\r\n let flares = [];\r\n if (singleFlares) {\r\n for (var i = 0, len = gridCluster.singles.length; i < len; i++) {\r\n let f = new Flare();\r\n f.tooltipText = gridCluster.singles[i][this.singleFlareTooltipProperty];\r\n f.singleData = gridCluster.singles[i];\r\n f.flareText = \"\";\r\n flares.push(f);\r\n }\r\n }\r\n else if (subTypeFlares) {\r\n // sort sub types by highest count first\r\n var subTypes = gridCluster.subTypeCounts.sort(function (a, b) {\r\n return b.count - a.count;\r\n });\r\n for (var i = 0, len = subTypes.length; i < len; i++) {\r\n let f = new Flare();\r\n f.tooltipText = `${subTypes[i].name} (${subTypes[i].count})`;\r\n f.flareText = subTypes[i].count;\r\n flares.push(f);\r\n }\r\n }\r\n // if there are more flare objects to create than the maxFlareCount and this is one of those - create a summary flare that contains '...' as the text.\r\n let willContainSummaryFlare = flares.length > this.maxFlareCount;\r\n let flareCount = willContainSummaryFlare ? this.maxFlareCount : flares.length;\r\n // if there's an even amount of flares, position the first flare to the left, minus 180 from degree to do this.\r\n // for an add amount position the first flare on top, -90 to do this. Looks nicer this way.\r\n let degreeVariance = (flareCount % 2 === 0) ? -180 : -90;\r\n let viewRotation = this._is2d ? this._activeView.rotation : 0;\r\n let clusterSymbolSize = this._activeCluster.clusterGraphic.symbol.get(\"size\");\r\n for (let i = 0; i < flareCount; i++) {\r\n let flare = flares[i];\r\n // set some attribute data\r\n let flareAttributes = {\r\n isFlare: true,\r\n isSummaryFlare: false,\r\n tooltipText: \"\",\r\n flareTextGraphic: undefined,\r\n clusterGraphicId: this._activeCluster.clusterId,\r\n clusterCount: gridCluster.clusterCount\r\n };\r\n // do a couple of things differently if this is a summary flare or not\r\n let isSummaryFlare = willContainSummaryFlare && i >= this.maxFlareCount - 1;\r\n if (isSummaryFlare) {\r\n flare.isSummary = true;\r\n flareAttributes.isSummaryFlare = true;\r\n let tooltipText = \"\";\r\n // multiline tooltip for summary flares, ie: greater than this.maxFlareCount flares per cluster\r\n for (let j = this.maxFlareCount - 1, jlen = flares.length; j < jlen; j++) {\r\n tooltipText += j > (this.maxFlareCount - 1) ? \"\\n\" : \"\";\r\n tooltipText += flares[j].tooltipText;\r\n }\r\n flare.tooltipText = tooltipText;\r\n }\r\n flareAttributes.tooltipText = flare.tooltipText;\r\n // create a graphic for the flare and for the flare text\r\n flare.graphic = new Graphic({\r\n attributes: flareAttributes,\r\n geometry: this._activeCluster.clusterGraphic.geometry,\r\n popupTemplate: null\r\n });\r\n flare.graphic.symbol = await this._getFlareSymbol(flare.graphic);\r\n if (this._is2d && this._activeView.rotation) {\r\n flare.graphic.symbol[\"angle\"] = 360 - this._activeView.rotation;\r\n }\r\n else {\r\n flare.graphic.symbol[\"angle\"] = 0;\r\n }\r\n if (flare.flareText) {\r\n let textSymbol = this.flareTextSymbol.clone();\r\n textSymbol.text = !isSummaryFlare ? flare.flareText.toString() : \"...\";\r\n if (this._is2d && this._activeView.rotation) {\r\n textSymbol.angle = 360 - this._activeView.rotation;\r\n }\r\n flare.textGraphic = new Graphic({\r\n attributes: {\r\n isText: true,\r\n clusterGraphicId: this._activeCluster.clusterId\r\n },\r\n symbol: textSymbol,\r\n geometry: this._activeCluster.clusterGraphic.geometry\r\n });\r\n }\r\n }\r\n // flares have been created so add them to the dom\r\n for (let i = 0, len = flares.length; i < len; i++) {\r\n let f = flares[i];\r\n if (!f.graphic)\r\n continue;\r\n // create a group to hold flare object and text if needed. \r\n f.flareGroup = this._activeCluster.clusterGroup.createGroup();\r\n this._setFlarePosition(f.flareGroup, clusterSymbolSize, flareCount, i, degreeVariance, viewRotation);\r\n this._addClassToElement(f.flareGroup.rawNode, \"flare-group\");\r\n let flareElement = await this._createClonedElementFromGraphic(f.graphic);\r\n f.flareGroup.rawNode.appendChild(flareElement);\r\n this._translateClonedClusterElement(flareElement);\r\n if (f.textGraphic) {\r\n let flareTextElement = await this._createClonedElementFromGraphic(f.textGraphic);\r\n flareTextElement.setAttribute(\"pointer-events\", \"none\");\r\n f.flareGroup.rawNode.appendChild(flareTextElement);\r\n }\r\n this._addClassToElement(f.flareGroup.rawNode, \"activated\", 10);\r\n // assign some event handlers for the tooltips\r\n f.flareGroup.mouseEnter = on.pausable(f.flareGroup.rawNode, \"mouseenter\", () => this._createTooltip(f));\r\n f.flareGroup.mouseLeave = on.pausable(f.flareGroup.rawNode, \"mouseleave\", () => this._destroyTooltip());\r\n }\r\n }\r\n _setFlarePosition(flareGroup, clusterSymbolSize, flareCount, flareIndex, degreeVariance, viewRotation) {\r\n // get the position of the flare to be placed around the container circle.\r\n let degree = parseInt(((360 / flareCount) * flareIndex).toFixed());\r\n degree = degree + degreeVariance;\r\n // take into account any rotation on the view\r\n if (viewRotation !== 0) {\r\n degree -= viewRotation;\r\n }\r\n var radian = degree * (Math.PI / 180);\r\n let buffer = this.flareBufferPixels;\r\n // position the flare group around the cluster\r\n let position = {\r\n x: (buffer + clusterSymbolSize) * Math.cos(radian),\r\n y: (buffer + clusterSymbolSize) * Math.sin(radian)\r\n };\r\n flareGroup.setTransform({ dx: position.x, dy: position.y });\r\n return position;\r\n }\r\n async _getFlareSymbol(flareGraphic) {\r\n if (!this.flareRenderer)\r\n return this.flareSymbol;\r\n return (await this.flareRenderer.getClassBreakInfo(flareGraphic)).symbol;\r\n }\r\n /**\r\n * This is required as of v4.13. Elements retrieved from _createClonedElementFromGraphic are positioned at the top left of the insertion point from v4.13 onwards.\r\n * Minus half the width and height by using translate. Do this straight after it has been inserted into the dom.\r\n * Don't do it for text elements though, they're still fine.\r\n */\r\n _translateClonedClusterElement(element) {\r\n let bb = element.getBoundingClientRect();\r\n if (!bb)\r\n return;\r\n element.setAttribute(\"transform\", `translate(${(bb.width / 2) * -1},${(bb.height / 2) * -1})`);\r\n }\r\n async _createTooltip(flare) {\r\n let flareGroup = flare.flareGroup;\r\n this._destroyTooltip();\r\n let tooltipLength = query(\".tooltip-text\", flareGroup.rawNode).length;\r\n if (tooltipLength > 0) {\r\n return;\r\n }\r\n // get the text from the data-tooltip attribute of the shape object\r\n let text = flare.tooltipText;\r\n if (!text) {\r\n console.log(\"no tooltip text for flare.\");\r\n return;\r\n }\r\n // split on \\n character that should be in tooltip to signify multiple lines\r\n let lines = text.split(\"\\n\");\r\n // create a group to hold the tooltip elements\r\n let tooltipGroup = flareGroup.createGroup();\r\n // get the flare symbol, we'll use this to style the tooltip box\r\n let flareSymbol = await this._getFlareSymbol(flare.graphic);\r\n // align on top for normal flare, align on bottom for summary flares.\r\n let height = flareSymbol.size;\r\n let xPos = 1;\r\n let yPos = !flare.isSummary ? ((height) * -1) : height + 5;\r\n tooltipGroup.rawNode.setAttribute(\"class\", \"tooltip-text\");\r\n let textShapes = [];\r\n for (let i = 0, len = lines.length; i < len; i++) {\r\n let textShape = tooltipGroup.createText({ x: xPos, y: yPos + (i * 10), text: lines[i], align: 'middle' })\r\n .setFill(this.flareTextSymbol.color)\r\n .setFont({ size: 10, family: this.flareTextSymbol.font.get(\"family\"), weight: this.flareTextSymbol.font.get(\"weight\") });\r\n textShapes.push(textShape);\r\n textShape.rawNode.setAttribute(\"pointer-events\", \"none\");\r\n }\r\n let rectPadding = 2;\r\n let textBox = tooltipGroup.getBoundingBox();\r\n let rectShape = tooltipGroup.createRect({ x: textBox.x - rectPadding, y: textBox.y - rectPadding, width: textBox.width + (rectPadding * 2), height: textBox.height + (rectPadding * 2), r: 0 })\r\n .setFill(flareSymbol.color);\r\n if (flareSymbol.outline) {\r\n rectShape.setStroke({ color: flareSymbol.outline.color, width: 0.5 });\r\n }\r\n rectShape.rawNode.setAttribute(\"pointer-events\", \"none\");\r\n flareGroup.moveToFront();\r\n for (let i = 0, len = textShapes.length; i < len; i++) {\r\n textShapes[i].moveToFront();\r\n }\r\n }\r\n _destroyTooltip() {\r\n query(\".tooltip-text\", this._activeView.fclSurface.rawNode).forEach(domConstruct.destroy);\r\n }\r\n // #region helper functions\r\n _extent() {\r\n return this._activeView ? this._activeView.extent : undefined;\r\n }\r\n _scale() {\r\n return this._activeView ? this._activeView.scale : undefined;\r\n }\r\n /**\r\n * IE / Edge don't have the classList property on svg elements, so we can't use that add / remove classes - probably why dojo domClass doesn't work either.\r\n so the following two functions are dodgy string hacks to add / remove classes. Uses a timeout so you can make css transitions work if desired.\r\n * @param element\r\n * @param className\r\n * @param timeoutMs\r\n * @param callback\r\n */\r\n _addClassToElement(element, className, timeoutMs, callback) {\r\n let addClass = (_element, _className) => {\r\n let currentClass = _element.getAttribute(\"class\");\r\n if (!currentClass)\r\n currentClass = \"\";\r\n if (currentClass.indexOf(\" \" + _className) !== -1)\r\n return;\r\n let newClass = (currentClass + \" \" + _className).trim();\r\n _element.setAttribute(\"class\", newClass);\r\n };\r\n if (timeoutMs) {\r\n setTimeout(() => {\r\n addClass(element, className);\r\n if (callback) {\r\n callback();\r\n }\r\n }, timeoutMs);\r\n }\r\n else {\r\n addClass(element, className);\r\n }\r\n }\r\n _removeClassFromElement(element, className, timeoutMs, callback) {\r\n let removeClass = (_element, _className) => {\r\n let currentClass = _element.getAttribute(\"class\");\r\n if (!currentClass)\r\n return;\r\n if (currentClass.indexOf(\" \" + _className) === -1)\r\n return;\r\n _element.setAttribute(\"class\", currentClass.replace(\" \" + _className, \"\"));\r\n };\r\n if (timeoutMs) {\r\n setTimeout(() => {\r\n removeClass(element, className);\r\n if (callback) {\r\n callback();\r\n }\r\n }, timeoutMs);\r\n }\r\n else {\r\n removeClass(element, className);\r\n }\r\n }\r\n _getMousePos(evt) {\r\n // container on the view is actually a html element at this point, not a string as the typings suggest.\r\n let container = this._activeView.container;\r\n if (!container) {\r\n return { x: 0, y: 0 };\r\n }\r\n ;\r\n let rect = container.getBoundingClientRect();\r\n return {\r\n x: evt.x - rect.left,\r\n y: evt.y - rect.top\r\n };\r\n }\r\n /**\r\n * Setting visible to false on a graphic doesn't work in 4.2 for some reason. Removing the graphic to hide it instead. I think visible property should probably work though.\r\n * @param graphic\r\n */\r\n _hideGraphic(graphic) {\r\n if (!graphic)\r\n return;\r\n if (graphic.hasOwnProperty(\"length\")) {\r\n this.removeMany(graphic);\r\n }\r\n else {\r\n this.remove(graphic);\r\n }\r\n }\r\n _showGraphic(graphic) {\r\n if (!graphic)\r\n return;\r\n if (graphic.hasOwnProperty(\"length\")) {\r\n this.addMany(graphic);\r\n }\r\n else {\r\n this.add(graphic);\r\n }\r\n }\r\n //#endregion\r\n on(name, handler) {\r\n //@ts-ignore\r\n return this.layer.on(name, handler);\r\n }\r\n removeAll() {\r\n return this.layer.removeAll();\r\n }\r\n emit(name, data) {\r\n return this.layer.emit(name, data);\r\n }\r\n add(graphic) {\r\n return this.layer.add(graphic);\r\n }\r\n removeMany(graphics) {\r\n return this.layer.removeMany(graphics);\r\n }\r\n remove(graphic) {\r\n return this.layer.remove(graphic);\r\n }\r\n addMany(graphics) {\r\n return this.layer.addMany(graphics);\r\n }\r\n get graphics() {\r\n return this.layer.graphics;\r\n }\r\n}\r\nclass GridCluster {\r\n constructor() {\r\n this.subTypeCounts = [];\r\n this.singles = [];\r\n this.points = [];\r\n }\r\n}\r\nclass Cluster {\r\n}\r\nclass Flare {\r\n}\r\nexport class PointFilter {\r\n constructor(filterName, propertyName, values, keepOnlyIfValueExists = false) {\r\n this.filterName = filterName;\r\n this.propertyName = propertyName;\r\n this.propertyValues = values;\r\n this.keepOnlyIfValueExists = keepOnlyIfValueExists;\r\n }\r\n}\r\n//# sourceMappingURL=FlareClusterLayer_v4.js.map","function scale(value, src, dst) {\r\n // Proudly ripped from https://github.com/xdjoshuaaz/diyHue/blob/tmp3/BridgeEmulator/protocols/yeelight.py#L742\r\n // Scales a scalar between [src[0], src[1]] to between [dst[0], dst[1]]\r\n // e.g value = 5, src = 0,10, dst = 0,20. Result = 10\r\n return ((dst[1] - dst[0]) * (value - src[0])) / (src[1] - src[0]) + dst[0];\r\n}\r\nclass GraphicSymbolAnimator {\r\n constructor(graphic) {\r\n this._graphic = graphic;\r\n this._originalYOffset = this._graphic.symbol.yoffset;\r\n }\r\n step(progress, timeInIteration, options) {\r\n let symbol = this._graphic.symbol.clone();\r\n let scaledValue = scale(progress, [0, 1], [options.from, options.to]);\r\n symbol.yoffset = this._originalYOffset + scaledValue;\r\n this._graphic.symbol = symbol;\r\n }\r\n}\r\nexport default GraphicSymbolAnimator;\r\n","import GraphicSymbolAnimator from \"./GraphicSymbolAnimator\";\r\nclass ClusterAnimator {\r\n constructor(cluster) {\r\n this._cluster = cluster;\r\n\r\n this._textAnimator = new GraphicSymbolAnimator(this._cluster.textGraphic);\r\n this._clusterAnimator = new GraphicSymbolAnimator(this._cluster.clusterGraphic);\r\n }\r\n\r\n step(progress, timeInIteration, options) {\r\n this._textAnimator.step(progress, timeInIteration, options);\r\n this._clusterAnimator.step(progress, timeInIteration, options);\r\n }\r\n}\r\n\r\nexport default ClusterAnimator;","import easing from \"dojo/fx/easing\";\r\nclass StationAnimation {\r\n constructor(stationId, animator) {\r\n this._animator = animator;\r\n this._stationId = stationId;\r\n \r\n this._runningAnimationFrameRequest = null;\r\n this._startTimestamp = null;\r\n this._lastTickProgress = 0;\r\n this._lastTickTimeInIteration = 0;\r\n this._iteration = 0;\r\n \r\n this._options = {\r\n from: 0,\r\n to: 16,\r\n duration: 400,\r\n easingFn: easing.sineIn\r\n };\r\n \r\n this._callbacks = {\r\n start: [],\r\n stop: []\r\n };\r\n }\r\n \r\n get stationId() {\r\n return this._stationId;\r\n }\r\n \r\n set animator(animator) {\r\n this._animator = animator;\r\n this.doTick(this._lastTickProgress, this._lastTickTimeInIteration);\r\n }\r\n \r\n tick(t) {\r\n let deltaMs = 0;\r\n \r\n if (this._startTimestamp === null) {\r\n this._startTimestamp = t;\r\n } else {\r\n deltaMs = t - this._startTimestamp;\r\n }\r\n \r\n const DURATION = this._options.duration;\r\n const HALF_DURATION = DURATION / 2;\r\n \r\n // The following formula comes from https://stackoverflow.com/a/22400799\r\n // TLDR: It's a triangle wave (shape like /\\/\\/\\/\\/\\/\\/\\)\r\n // At t=0, y=0.\r\n // at t=DURATION/2, y=1.\r\n // at t=DURATION, y=0.\r\n const progress = (1 / HALF_DURATION) * (HALF_DURATION - Math.abs(deltaMs % DURATION - HALF_DURATION));\r\n \r\n // Apply easing to our triangle wave\r\n const easedProgress = this._options.easingFn(progress);\r\n \r\n const timeInIteration = deltaMs % DURATION;\r\n \r\n this.doTick(easedProgress, timeInIteration);\r\n \r\n let iteration = Math.floor(deltaMs / DURATION);\r\n let lastIteration = this._iteration;\r\n \r\n this._iteration = iteration;\r\n this._lastTickProgress = easedProgress;\r\n this._lastTickTimeInIteration = timeInIteration;\r\n \r\n if (this._runningAnimationFrameRequest !== null) {\r\n if (iteration !== lastIteration && this._stopping) {\r\n this.reset();\r\n } else {\r\n this.scheduleTick(true);\r\n }\r\n }\r\n }\r\n \r\n doTick(progress, timeInIteration) {\r\n this._animator.step(progress, timeInIteration, this._options);\r\n }\r\n \r\n reset() {\r\n this.doTick(0, 0);\r\n this._runningAnimationFrameRequest = null;\r\n this._stopping = false;\r\n this._startTimestamp = null;\r\n this._iteration = 0;\r\n }\r\n \r\n scheduleTick(force) {\r\n if (!force && this._runningAnimationFrameRequest !== null) {\r\n //TODO might want to restart it?\r\n return;\r\n }\r\n \r\n this._runningAnimationFrameRequest = window.requestAnimationFrame((t) => this.tick(t));\r\n }\r\n \r\n cancelScheduledTick() {\r\n if (this._runningAnimationFrameRequest === null) {\r\n return;\r\n }\r\n \r\n window.cancelAnimationFrame(this._runningAnimationFrameRequest);\r\n this._runningAnimationFrameRequest = null;\r\n }\r\n \r\n start() {\r\n this.scheduleTick();\r\n this.invokeCallbacks(\"start\");\r\n }\r\n \r\n stop() {\r\n this.cancelScheduledTick();\r\n this.invokeCallbacks(\"stop\");\r\n }\r\n \r\n stopAfterCompletion() {\r\n this._stopping = true;\r\n }\r\n \r\n on(type, callback) {\r\n if (type in this._callbacks) {\r\n if (this._callbacks[type].indexOf(callback) === -1) {\r\n this._callbacks[type].push(callback);\r\n }\r\n }\r\n }\r\n \r\n invokeCallbacks(type) {\r\n for (let i = 0; i < this._callbacks[type].length; i++) {\r\n this._callbacks[type][i].apply(this, Array.prototype.slice.call(arguments).slice(1));\r\n }\r\n }\r\n}\r\nexport default StationAnimation;","import Resource from \"../NRW/Util/Resource\";\r\nclass LanguageResolver {\r\n\r\n getParameterStatusText(parameter) {\r\n let statuses = {\r\n 0: Resource.Offline,\r\n 1: Resource.LevelFalling,\r\n 2: Resource.LevelSteady,\r\n 3: Resource.LevelRising,\r\n 4: Resource.RainfallDry,\r\n 5: Resource.RainfallLightRain,\r\n 6: Resource.RainfallModerateRain,\r\n 7: Resource.RainfallHeavyRain\r\n };\r\n\r\n if (!statuses[parameter.status]) {\r\n return null;\r\n }\r\n\r\n const statusText = statuses[parameter.status];\r\n\r\n if (statusText === null) {\r\n return null;\r\n }\r\n\r\n let cleanStatusText = \"\";\r\n if (statusText.indexOf(\"level\") >= 0) {\r\n cleanStatusText = Resource.Water + \" \" + statusText.replace(\"--\", \" \");\r\n } else {\r\n cleanStatusText = statusText.replace(\"--\", \" \");\r\n }\r\n\r\n return cleanStatusText;\r\n } \r\n}\r\nexport default new LanguageResolver();","import ParameterType from \"NRW/ParameterType\";\r\nimport Language from \"NRW/Util/Language\";\r\nimport Resource from \"NRW/Util/Resource\";\r\nimport LanguageResolver from \"NRW/LanguageResolver\";\r\nclass IconResolver {\r\n \r\n getStationStatusIcon(station, isHorizontal) {\r\n let types = [];\r\n let modifier = isHorizontal ? \"--horizontal\" : \"\";\r\n \r\n if (station.status === 0) {\r\n return {\r\n src: `/images/pins/offline${modifier}.svg`,\r\n alt: Resource.Offline\r\n }\r\n }\r\n \r\n if ((station.status & 1) !== 0) {\r\n types.push(ParameterType.river);\r\n }\r\n \r\n if ((station.status & 2) !== 0) {\r\n types.push(ParameterType.rainfall);\r\n }\r\n \r\n if ((station.status & 4) !== 0) {\r\n types.push(ParameterType.tidal);\r\n }\r\n \r\n types.sort((a, b) => a - b);\r\n \r\n if (types.length === 0) {\r\n return {\r\n src: `/images/pins/offline${modifier}.svg`,\r\n alt: Resource.Offline\r\n };\r\n }\r\n \r\n return {\r\n src: `/images/pins/${types.length}-${types.join(\"__\")}${modifier}.svg`,\r\n alt: \"\"\r\n };\r\n }\r\n \r\n getStationTypeIconFromParameters(station) {\r\n let parameters = station.parameters.slice(0); // clone array before sorting\r\n \r\n if (parameters.length === 0) {\r\n return this.getStationStatusIcon(station);\r\n }\r\n \r\n parameters.sort((a, b) => a.typeId - b.typeId);\r\n \r\n return {\r\n src: `/images/pins/${parameters.length}-${parameters.map(p => p.typeId).join(\"__\")}--horizontal.svg`,\r\n alt: parameters.map(p => Language.text(p.typeText)).join(\" / \")\r\n };\r\n }\r\n \r\n getParameterTypeIcon(parameter) {\r\n let type = parameter.typeId;\r\n \r\n if (!type) {\r\n return {\r\n src: \"https://cimsui.blob.core.windows.net/rloi-poc/wave.png\",\r\n alt: \"\"\r\n };\r\n }\r\n \r\n return {\r\n src: `/images/pins/1-${type}--horizontal.svg`,\r\n alt: Language.text(parameter.typeText)\r\n };\r\n }\r\n \r\n getParameterStatusIcon(parameter, colour) {\r\n return {\r\n src: `/images/status/parameter-${parameter.status}-${colour}.svg`,\r\n alt: LanguageResolver.getParameterStatusText(parameter)\r\n };\r\n }\r\n}\r\nexport default new IconResolver();\r\n","import PictureMarkerSymbol from \"esri/symbols/PictureMarkerSymbol\";\r\nimport IconResolver from \"../IconResolver\";\r\nclass StationRenderer {\r\n getIcon(station) {\r\n return IconResolver.getStationStatusIcon(station).src;\r\n }\r\n\r\n getSymbol(graphicWithAttributes, activeView) {\r\n let stationWithPoint = graphicWithAttributes.attributes;\r\n\r\n let station = stationWithPoint.station;\r\n\r\n let symbol = new PictureMarkerSymbol({\r\n type: \"picture-marker\", // autocasts as new PictureMarkerSymbol()\r\n url: this.getIcon(station),\r\n width: \"30px\",\r\n height: \"30px\"\r\n });\r\n\r\n return symbol;\r\n }\r\n}\r\n\r\nexport default StationRenderer;","class StationWithPointAccessor {\r\n constructor(station) {\r\n this.station = station;\r\n }\r\n\r\n get x() {\r\n return this.station.point.x;\r\n }\r\n \r\n get y() {\r\n return this.station.point.y;\r\n }\r\n}\r\nexport default StationWithPointAccessor;\r\n","import * as fcl from \"@nrw.core/flareclusterlayer\";\r\n\r\nimport ClassBreaksRenderer from \"esri/renderers/ClassBreaksRenderer\";\r\nimport ClusterAnimator from \"../Animation/ClusterAnimator\";\r\nimport GraphicSymbolAnimator from \"../Animation/GraphicSymbolAnimator\";\r\nimport PictureMarkerSymbol from \"esri/symbols/PictureMarkerSymbol\";\r\nimport SpatialReference from \"esri/geometry/SpatialReference\";\r\nimport StationAnimation from \"../Animation/StationAnimation\";\r\nimport StationRenderer from \"../Animation/StationRenderer\";\r\nimport StationWithPointAccessor from \"./StationWithPointAccessor\";\r\nimport TextSymbol from \"esri/symbols/TextSymbol\";\r\nimport promiseUtils from \"esri/core/promiseUtils\";\r\n\r\nconst latLngSpatialReference = new SpatialReference({\r\n wkid: 4326\r\n});\r\n\r\nclass StationsLayer {\r\n constructor() {\r\n this.clusterLayer = this.buildClusterLayer();\r\n\r\n this._runningAnimations = [];\r\n\r\n this.clusterLayer.on(\"draw-complete\", () => this.updateRunningAnimationSymbols());\r\n }\r\n\r\n get layer() {\r\n return this.clusterLayer.layer;\r\n }\r\n\r\n get stations() {\r\n return this.clusterLayer._data;\r\n }\r\n\r\n findGraphicForStationId(stationId) {\r\n let result = {\r\n cluster: null,\r\n station: null,\r\n stationId: stationId,\r\n any: false\r\n };\r\n\r\n let clusterIds = Object.keys(this.clusterLayer._clusters);\r\n\r\n for (let clusterIdIndex = 0; clusterIdIndex < clusterIds.length; clusterIdIndex++) {\r\n let clusterId = clusterIds[clusterIdIndex];\r\n let cluster = this.clusterLayer._clusters[clusterId];\r\n let singles = cluster.gridCluster.singles;\r\n\r\n for (let singleIndex = 0; singleIndex < singles.length; singleIndex++) {\r\n let single = singles[singleIndex];\r\n\r\n if (single.station.id === stationId) {\r\n result.cluster = cluster;\r\n break;\r\n }\r\n }\r\n\r\n if (result.cluster !== null) {\r\n this.clusterLayer.graphics.reorder(result.cluster.clusterGraphic,\r\n this.clusterLayer.graphics.length);\r\n this.clusterLayer.graphics.reorder(result.cluster.textGraphic,\r\n this.clusterLayer.graphics.length);\r\n break;\r\n }\r\n }\r\n\r\n let stationGraphics =\r\n this.clusterLayer.graphics.filter(g => typeof g.attributes.clusterId === typeof undefined);\r\n let relevantStationGraphics = stationGraphics.filter(g => g.attributes.station.id === stationId);\r\n\r\n if (relevantStationGraphics.length > 0) {\r\n result.station = relevantStationGraphics.items[0];\r\n this.clusterLayer.graphics.reorder(result.station, this.clusterLayer.graphics.length);\r\n }\r\n\r\n result.any = !!(result.cluster || result.station);\r\n return result;\r\n }\r\n\r\n highlight(stationId) {\r\n let graphic = this.findGraphicForStationId(stationId);\r\n let animator = this.buildAnimatorForGraphic(graphic);\r\n\r\n if (animator !== null) {\r\n let animation = new StationAnimation(stationId, animator);\r\n\r\n animation.on(\"start\",\r\n () => {\r\n if (this._runningAnimations.indexOf(animation) === -1) {\r\n this._runningAnimations.push(animation);\r\n }\r\n });\r\n\r\n animation.on(\"stop\",\r\n () => {\r\n let index = this._runningAnimations.indexOf(animation);\r\n\r\n if (index !== -1) {\r\n this._runningAnimations.splice(index, 1);\r\n }\r\n });\r\n\r\n return animation;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n buildAnimatorForGraphic(graphic) {\r\n if (!graphic.any) {\r\n console.warn(\"station id \" + graphic.stationId + \" is not visible\");\r\n return null;\r\n }\r\n\r\n let animator = null;\r\n\r\n if (graphic.station !== null) {\r\n animator = new GraphicSymbolAnimator(graphic.station);\r\n } else if (graphic.cluster !== null) {\r\n animator = new ClusterAnimator(graphic.cluster);\r\n }\r\n\r\n return animator;\r\n }\r\n\r\n updateRunningAnimationSymbols() {\r\n // Clone the array, as stopping animations will cause it to trigger the \"stop\" event and remove itself from _runningAnimations\r\n let runningAnimations = this._runningAnimations.slice();\r\n\r\n for (let i = 0; i < runningAnimations.length; i++) {\r\n let animation = runningAnimations[i];\r\n let graphic = this.findGraphicForStationId(animation.stationId);\r\n\r\n if (!graphic.any) {\r\n animation.stop();\r\n }\r\n\r\n let animator = this.buildAnimatorForGraphic(graphic);\r\n\r\n if (animator !== null) {\r\n animation.animator = animator;\r\n } else {\r\n animation.stop();\r\n }\r\n }\r\n }\r\n\r\n buildClusterMarker() {\r\n return new PictureMarkerSymbol({\r\n url: \"/images/pins/cluster.svg\",\r\n width: \"48px\",\r\n height: \"48px\"\r\n });\r\n }\r\n\r\n buildSingleClusterMarker() {\r\n return new PictureMarkerSymbol({\r\n url: \"/images/pins/cluster--single.svg\",\r\n width: \"48px\",\r\n height: \"48px\"\r\n });\r\n }\r\n\r\n buildClusterRenderer(clusterMarker, singleClusterMarker) {\r\n let clusterRenderer = new ClassBreaksRenderer({\r\n defaultSymbol: clusterMarker\r\n });\r\n\r\n clusterRenderer.addClassBreakInfo(0, 1, singleClusterMarker);\r\n clusterRenderer.addClassBreakInfo(1, Infinity, clusterMarker);\r\n clusterRenderer.field = \"clusterCount\";\r\n\r\n return clusterRenderer;\r\n }\r\n\r\n buildClusterCountTextSymbol() {\r\n return new TextSymbol({\r\n color: [255, 255, 255],\r\n font: {\r\n size: 10,\r\n family: \"arial\"\r\n },\r\n xoffset: 0,\r\n yoffset: -5,\r\n horizontalalignment: \"center\"\r\n })\r\n }\r\n\r\n buildClusterLayer() {\r\n this.clusterMarker = this.buildClusterMarker();\r\n this.singleClusterMarker = this.buildSingleClusterMarker();\r\n this.clusterCountTextSymbol = this.buildClusterCountTextSymbol();\r\n this.clusterRenderer = this.buildClusterRenderer(this.clusterMarker, this.singleClusterMarker);\r\n\r\n this.stationRenderer = new StationRenderer();\r\n\r\n return new fcl.FlareClusterLayer({\r\n id: \"flare-cluster-layer\",\r\n singleRenderer: this.stationRenderer,\r\n clusterRenderer: this.clusterRenderer,\r\n spatialReference: latLngSpatialReference,\r\n data: [],\r\n displayFlares: false,\r\n displaySubTypeFlares: false,\r\n clusterRatio: 75,\r\n clusterToScale: 1000000,\r\n clusterMinCount: 1,\r\n maxSingleFlareCount: 99999,\r\n textSymbol: this.clusterCountTextSymbol\r\n });\r\n }\r\n\r\n applyStations(stations) {\r\n this.clusterLayer.setData(stations.map(station => new StationWithPointAccessor(station)));\r\n this.updateRunningAnimationSymbols();\r\n }\r\n\r\n findStationsByGraphics(graphics, includeClustered, includeSingle) {\r\n if (typeof includeClustered === typeof undefined) {\r\n includeClustered = true;\r\n }\r\n if (typeof includeSingle === typeof undefined) {\r\n includeSingle = true;\r\n }\r\n\r\n let foundStationsWithPoint = [];\r\n\r\n for (let i = 0; i < graphics.length; i++) {\r\n let graphic = graphics[i];\r\n\r\n if (graphic.layer !== this.clusterLayer.layer) {\r\n continue;\r\n }\r\n\r\n let attributes = graphic.attributes;\r\n\r\n // bitwise AND/mask on findmodes.\r\n if (attributes.clusterObject && includeClustered) {\r\n foundStationsWithPoint.push(...attributes.clusterObject.singles);\r\n } else if (attributes.isClusterText && includeClustered) {\r\n foundStationsWithPoint.push(...this.clusterLayer._clusters[attributes.clusterId].gridCluster\r\n .singles);\r\n } else if (attributes.station && includeSingle) {\r\n foundStationsWithPoint.push(attributes);\r\n }\r\n }\r\n\r\n return foundStationsWithPoint.map(s => s.station);\r\n }\r\n\r\n hitTest(screenPoint) {\r\n if (!this.clusterLayer._activeView) {\r\n return promiseUtils.resolve(null);\r\n }\r\n\r\n let hitTestPromise = this.clusterLayer._activeView.hitTest(screenPoint.x, screenPoint.y);\r\n\r\n if (!hitTestPromise) {\r\n return promiseUtils.resolve(null);\r\n }\r\n\r\n return hitTestPromise;\r\n }\r\n}\r\n\r\nexport default StationsLayer;\r\n","class TabController {\r\n constructor($tabsContainerElement) {\r\n this.$element = $tabsContainerElement;\r\n this._tabs = [];\r\n\r\n this._onActiveTabChangeListeners = [];\r\n\r\n this.initialise();\r\n }\r\n\r\n initialise() {\r\n let $tabElements = this.$element.find(\".tabs__tab.tab\").get();\r\n\r\n this._tabs = $tabElements.map(el => new Tab(this, el, $(el).data(\"tabId\")));\r\n }\r\n\r\n get tabs() {\r\n return this._tabs;\r\n }\r\n\r\n setActiveTab(newActiveTab, callChangeListeners = true) {\r\n const previousActiveTab = this.findActiveTab();\r\n\r\n if (previousActiveTab === newActiveTab) {\r\n return true; \r\n }\r\n \r\n const willBecomeActive = callChangeListeners ? this.invokeActiveTabChangeListeners(previousActiveTab, newActiveTab) : true;\r\n\r\n if (willBecomeActive) {\r\n if (newActiveTab !== null) {\r\n newActiveTab.active = true;\r\n }\r\n\r\n if (previousActiveTab !== null) {\r\n previousActiveTab.active = false;\r\n }\r\n }\r\n\r\n return willBecomeActive;\r\n }\r\n\r\n addActiveTabChangeListener(callback) {\r\n if (this._onActiveTabChangeListeners.indexOf(callback) === -1) {\r\n this._onActiveTabChangeListeners.push(callback);\r\n }\r\n }\r\n\r\n invokeActiveTabChangeListeners(oldTab, newTab) {\r\n let result = true;\r\n \r\n for (let i = 0, x = this._onActiveTabChangeListeners.length; i < x; i++) {\r\n let thisCallbackResult = this._onActiveTabChangeListeners[i](oldTab, newTab);\r\n\r\n if (typeof thisCallbackResult === \"boolean\" && !thisCallbackResult) {\r\n result = false;\r\n break;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n findActiveTab() {\r\n for (let i = 0; i < this.tabs.length; i++) {\r\n if (this.tabs[i].active) {\r\n return this.tabs[i];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nclass Tab {\r\n constructor(tabController, tabElement, tabId) {\r\n this.tabController = tabController;\r\n this.tabId = tabId;\r\n\r\n this.element = tabElement;\r\n this._active = false;\r\n this._visible = true;\r\n\r\n this._onClickListeners = [];\r\n\r\n this.element.addEventListener(\"click\", (event) => {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.tabController.setActiveTab(this);\r\n });\r\n }\r\n\r\n get active() {\r\n return this._active;\r\n }\r\n\r\n set active(value) {\r\n value = !!value; // Force to boolean\r\n\r\n if (this._active === value) {\r\n return;\r\n }\r\n\r\n $(this.element)\r\n .toggleClass(\"tab--active\", value)\r\n .attr(\"aria-selected\", value);\r\n\r\n this._active = value;\r\n }\r\n\r\n get visible() {\r\n return this._visible;\r\n }\r\n\r\n set visible(value) {\r\n value = !!value; // Force to boolean\r\n\r\n if (this._visible === value) {\r\n return;\r\n }\r\n\r\n $(this.element)\r\n .toggleClass(\"tab--hide\", !value);\r\n\r\n this._visible = value;\r\n }\r\n}\r\n\r\nexport default TabController;","import { Breakpoint } from \"@nrw.core/styles\";\r\nimport TabController from \"../../TabController\";\r\n\r\nconst viewTypes = Object.freeze({\r\n mapView: 1,\r\n combinedView: 2,\r\n listView: 3\r\n});\r\n\r\nclass ViewController {\r\n get viewTypes() {\r\n return viewTypes;\r\n }\r\n \r\n constructor(cookieJar, mapController) {\r\n this.tabController = new TabController($(\".tabs\"));\r\n this.cookieJar = cookieJar;\r\n this.mapController = mapController;\r\n \r\n this.$viewContainer = $(\".view-container\");\r\n \r\n this._onViewChangedListeners = [];\r\n \r\n [this.mapViewTab, this.combinedViewTab, this.listViewTab] = this.tabController.tabs;\r\n \r\n this.tabController.addActiveTabChangeListener((oldTab, newTab) => {\r\n if (newTab === this.mapViewTab) {\r\n this.goToView(this.viewTypes.mapView);\r\n } else if (newTab === this.combinedViewTab) {\r\n this.goToView(this.viewTypes.combinedView);\r\n } else if (newTab === this.listViewTab) {\r\n this.goToView(this.viewTypes.listView);\r\n } else {\r\n return false;\r\n }\r\n \r\n return true;\r\n });\r\n \r\n Breakpoint.onChange.addListener((newBreakpoint, oldBreakpoint) => {\r\n this.onBreakpointChange(newBreakpoint, oldBreakpoint);\r\n })\r\n \r\n // Force an update now\r\n this.combinedViewTab.visible = false;\r\n this.onBreakpointChange(Breakpoint.lastBreakpoint, null);\r\n \r\n // Get cookie value for which tab the user was on\r\n this._currentViewType = null;\r\n let lastUserViewType = +cookieJar.viewType;\r\n \r\n if (!this.isValidViewType(lastUserViewType)) {\r\n this.goToView(viewTypes.mapView);\r\n } else {\r\n this.goToView(lastUserViewType);\r\n }\r\n \r\n this.registerCheckFloodWarningsServiceButton();\r\n }\r\n \r\n get currentViewType() {\r\n return this._currentViewType;\r\n }\r\n \r\n get mapIsVisible() {\r\n switch (this.currentViewType) {\r\n case this.viewTypes.mapView:\r\n case this.viewTypes.combinedView:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n \r\n goToView(newViewType) {\r\n let previousViewType = this._currentViewType;\r\n \r\n if (newViewType === previousViewType) {\r\n this.invokeViewChangedListeners(newViewType, previousViewType);\r\n return;\r\n }\r\n if (!this.isValidViewType(newViewType)) {\r\n throw new Error(\"Invalid view type \" + newViewType);\r\n }\r\n \r\n this.$viewContainer.toggleClass(\"view-container--map-view\", newViewType === this.viewTypes.mapView);\r\n this.$viewContainer.toggleClass(\"view-container--combined-view\", newViewType === this.viewTypes.combinedView);\r\n this.$viewContainer.toggleClass(\"view-container--list-view\", newViewType === this.viewTypes.listView);\r\n \r\n this.tabController.setActiveTab(this.getTabForViewType(newViewType), false);\r\n \r\n this._currentViewType = newViewType;\r\n this.cookieJar.viewType = newViewType;\r\n \r\n this.invokeViewChangedListeners(newViewType, previousViewType);\r\n }\r\n \r\n onBreakpointChange(newBreakpoint, oldBreakpoint) {\r\n if (newBreakpoint === Breakpoint.mobile || newBreakpoint === Breakpoint.tablet) {\r\n this.combinedViewTab.visible = false;\r\n \r\n if (this._currentViewType === this.viewTypes.combinedView) {\r\n this.tabController.setActiveTab(this.getTabForViewType(this.viewTypes.mapView));\r\n }\r\n } else if (newBreakpoint === Breakpoint.desktop) {\r\n this.combinedViewTab.visible = true;\r\n }\r\n }\r\n \r\n registerCheckFloodWarningsServiceButton() {\r\n $(\"[data-fwaa-href=true]\").on(\"click auxclick\", event => {\r\n if (event.which !== 1 && event.which !== 2) {\r\n return;\r\n }\r\n\r\n //event.preventDefault();\r\n event.stopPropagation();\r\n const extent = this.mapController.extent;\r\n const wkid = extent.spatialReference.wkid;\r\n\r\n const url = event.originalEvent.currentTarget.href;\r\n const queryIndex = url.indexOf(\"?\");\r\n const query = queryIndex === -1 ? \"\" : url.substring(url.indexOf(\"?\") + 1);\r\n const urlWithoutQuery = queryIndex === -1 ? url : url.substr(0, queryIndex);\r\n const params = new URLSearchParams(query);\r\n params.set(\"extent\", `${extent.xmin} ${extent.ymin} ${extent.xmax} ${extent.ymax} ${wkid}`);\r\n\r\n event.originalEvent.currentTarget.href = urlWithoutQuery + \"?\" + params.toString();\r\n });\r\n }\r\n \r\n isValidViewType(viewType) {\r\n const viewTypeKeys = Object.keys(this.viewTypes);\r\n \r\n if (viewTypeKeys.some(x => this.viewTypes[x] === viewType)) {\r\n return this.getTabForViewType(viewType).visible;\r\n }\r\n \r\n return false;\r\n }\r\n \r\n getTabForViewType(viewType) {\r\n if (viewType === this.viewTypes.mapView) {\r\n return this.mapViewTab;\r\n }\r\n if (viewType === this.viewTypes.combinedView) {\r\n return this.combinedViewTab;\r\n }\r\n if (viewType === this.viewTypes.listView) {\r\n return this.listViewTab;\r\n }\r\n return null;\r\n }\r\n \r\n addViewChangedListener(callback, callImmediately) {\r\n if (this._onViewChangedListeners.indexOf(callback) === -1) {\r\n this._onViewChangedListeners.push(callback);\r\n }\r\n \r\n if (callImmediately) {\r\n callback.bind(this)(this._currentViewType, this._currentViewType, true);\r\n }\r\n }\r\n \r\n invokeViewChangedListeners(newViewType, oldViewType) {\r\n for (let i = 0, x = this._onViewChangedListeners.length; i < x; i++) {\r\n this._onViewChangedListeners[i].call(this, newViewType, oldViewType);\r\n }\r\n }\r\n}\r\n\r\nexport default ViewController;\r\n","import \"../../polyfills/index\";\r\nimport \"NRW/Common\";\r\n\r\nimport { StationDetailComponent, StationListView, EventDispatcher } from \"@nrw.core/styles\";\r\n\r\nimport { MapController, MapLayerPointData } from \"@nrw.core/map\";\r\n\r\nimport moment from \"moment\";\r\nimport AccordionHelper from \"Helpers/AccordionHelper\";\r\nimport LinkBuilder from \"NRW/LinkBuilder\";\r\nimport Basemap from \"esri/Basemap\";\r\nimport Configuration from \"NRW/Util/Configuration\";\r\nimport Constants from \"NRW/Constants\";\r\nimport CookieJar from \"NRW/Util/CookieJar\";\r\nimport Filter from \"NRW/Filter\";\r\nimport Geometry from \"NRW/Util/Geometry\";\r\nimport Language from \"NRW/Util/Language\";\r\nimport MapBasemapConfigurationMapper from \"NRW/Pages/Landing/MapBasemapConfigurationMapper\";\r\nimport ModalHelper from \"Helpers/ModalHelper\";\r\nimport Point from \"esri/geometry/Point\";\r\nimport Resource from \"NRW/Util/Resource\";\r\nimport Scheduler from \"NRW/Util/Scheduler\";\r\nimport Search from \"NRW/Search\";\r\nimport SpatialReference from \"esri/geometry/SpatialReference\";\r\nimport StartUpVariables from \"NRW/StartUpVariables\";\r\nimport StationPopup from \"NRW/Stations/popup/StationPopup\";\r\nimport StationQuery from \"NRW/Stations/StationQuery\";\r\nimport StationsLayer from \"NRW/Stations/StationsLayer\";\r\nimport ViewController from \"./Landing/ViewController\";\r\nimport webMercatorUtils from \"esri/geometry/support/webMercatorUtils\";\r\n\r\n$(document).on(\"click\",\r\n \".station-detail__button--show-more\",\r\n function (e) {\r\n let stationDetailComponent = $(e.currentTarget).closest(\".station-detail\").prop(\"component\");\r\n stationDetailComponent.dataExpanded = !stationDetailComponent.dataExpanded;\r\n return false;\r\n });\r\n\r\nconst browserSupportHelper = window.__browserSupportHelper;\r\n\r\nexport default (function () {\r\n browserSupportHelper.trackTrace(\"Landing constructor start\", undefined, 0);\r\n\r\n const validLayerTypes = Object.freeze([\"river\", \"rainfall\", \"tidal\"]);\r\n const defaultActiveStationQuery = s => StationQuery.filterStationsByFilterState(s, filter.state);\r\n \r\n //FloodWarningLayer.init();\r\n let stationDataUpdateSource = new EventDispatcher();\r\n let stationsLayer = new StationsLayer();\r\n \r\n // const walesMaskLayer = new FeatureLayer({\r\n // url: Constants.WALES_MASK_LAYER_URL\r\n // });\r\n \r\n let layers = [\r\n // walesMaskLayer, JB: Currently disabled so test is in a workable state while a better fix is developed\r\n //FloodWarningLayer.getFloodWarningLayer(),\r\n stationsLayer.layer\r\n ];\r\n \r\n let autoRefreshScheduler = new Scheduler(Configuration.refreshIntervalMilliseconds);\r\n let basemap = MapBasemapConfigurationMapper.map() || Basemap.fromId(\"streets\");\r\n let mapController = new MapController(layers, Resource, \"viewDiv\", basemap, true);\r\n mapController.boundingExtent = mapController.buildWalesExtentForEachSpatialReference()[27700];\r\n\r\n const stationDetailComponentOptions = {\r\n LinkBuilder: LinkBuilder,\r\n moment: moment,\r\n Constants: {\r\n TRANSPARENT_PIXEL_DATA_URI: Constants.TRANSPARENT_PIXEL_DATA_URI\r\n },\r\n text: {\r\n lessData: Resource.LessData,\r\n viewLessData: Resource.ViewLessData,\r\n moreData: Resource.MoreData,\r\n viewMoreData: Resource.ViewMoreData,\r\n viewGraph: Resource.ViewGraph,\r\n graph: Resource.Graph,\r\n upToDateReadingNotAvailable: Resource.UpToDateReadingNotAvailable,\r\n rainfallHelpText: Resource.RainfallHelpText,\r\n rainfallHelpText: Resource.RainfallHelpText,\r\n viewRiverLevelGraph: Resource.ViewRiverLevelGraph,\r\n viewRainfallLevelGraph: Resource.ViewRainfallLevelGraph,\r\n viewTidalLevelGraph: Resource.ViewTidalLevelGraph,\r\n offline: Resource.Offline,\r\n levelFalling: Resource.LevelFalling,\r\n levelSteady: Resource.LevelSteady,\r\n levelRising: Resource.LevelRising,\r\n rainfallDry: Resource.RainfallDry,\r\n rainfallLightRain: Resource.RainfallLightRain,\r\n rainfallModerateRain: Resource.RainfallModerateRain,\r\n rainfallHeavyRain: Resource.RainfallHeavyRain\r\n }\r\n };\r\n\r\n let stationPopup = new StationPopup(mapController.mapView, (data, isPopup) => {\r\n let options = stationDetailComponentOptions;\r\n options.station = data;\r\n options.isPopup = isPopup;\r\n return new StationDetailComponent(options);\r\n });\r\n \r\n let filter = new Filter(validLayerTypes);\r\n let startUpVariables = new StartUpVariables(() => window.location.search);\r\n \r\n let stationData = new MapLayerPointData({ dataUrl: \"/map/GetStations\", convertPointToOSGridRef: false });\r\n let cookieJar = new CookieJar();\r\n let homePage = new ViewController(cookieJar, mapController);\r\n let stationListView = new StationListView({\r\n $scrollingContainer: homePage.$viewContainer.find(\".view-container__list\"),\r\n stationDetailComponent: StationDetailComponent,\r\n pageNumberLabel: Resource.PageNumber,\r\n $: $,\r\n stationDetailComponentOptions: stationDetailComponentOptions\r\n });\r\n let search = new Search(filter, stationData);\r\n let accordionHelper = new AccordionHelper();\r\n let useMapExtent = true;\r\n \r\n let stationsSource = null;\r\n let activeStationsQuery = [];\r\n resetActiveStationQuery();\r\n \r\n let _mapInvisiblyMovingToExtent = false;\r\n \r\n startUpVariables.configureFilterUsingQueryString(filter);\r\n //FloodWarningLayer.updateFloodWarning(mapController.mapView);\r\n \r\n $(document).on(\"click\", \".station-parameter__button--graph, .station-detail__button--graph\", (e) => {\r\n var defaultLayerArguments = '';\r\n var currentLayerFilterArguments = '';\r\n for (let i = 0; i < validLayerTypes.length; i++) {\r\n if (i !== 0) {\r\n defaultLayerArguments += `+`;\r\n }\r\n defaultLayerArguments += `${validLayerTypes[i]}`;\r\n \r\n if (filter._state[validLayerTypes[i]]) {\r\n if (currentLayerFilterArguments !== '') {\r\n currentLayerFilterArguments += `+`;\r\n }\r\n currentLayerFilterArguments += `${validLayerTypes[i]}`;\r\n }\r\n }\r\n \r\n var layerFilterArguments =\r\n currentLayerFilterArguments === '' ? defaultLayerArguments : currentLayerFilterArguments;\r\n \r\n var extentArgument = `${mapController.mapView.extent.xmin}+${mapController.mapView.extent.ymin}+${mapController.mapView.extent.xmax}+${mapController.mapView.extent.ymax}+${mapController.mapView.extent.spatialReference.wkid}`;\r\n var currentConfigUrl = `?layers=${layerFilterArguments}&extent=${extentArgument}`;\r\n history.replaceState({}, window.title, currentConfigUrl);\r\n });\r\n \r\n //#region Map events\r\n mapController.addMapExtentChangedListener((extent) => {\r\n if (!_mapInvisiblyMovingToExtent) {\r\n //FloodWarningLayer.updateFloodWarning(mapController.mapView);\r\n \r\n let stationsOnMap = stationsLayer.stations.map(s => s.station);\r\n showTheseStationsInStationsList(stationsOnMap, extent);\r\n } else {\r\n _mapInvisiblyMovingToExtent = false;\r\n }\r\n });\r\n\r\n startUpVariables.configureMapUsingQueryString(mapController);\r\n var extent = mapController.extent;\r\n\r\n mapController.onMapReady.then(() => {\r\n if(extent){\r\n mapController.extent = extent;\r\n }\r\n });\r\n \r\n mapController.addMapClickListener((event) => {\r\n stationsLayer.hitTest(event).then(({results}) => {\r\n let graphics = results.map(r => r.graphic).filter(r => r);\r\n \r\n let clusteredStations = stationsLayer.findStationsByGraphics(graphics, true, false);\r\n \r\n let extent = null;\r\n \r\n if (clusteredStations.length >= 1) {\r\n extent = buildExtentForPointsWithMinimumRadius(clusteredStations.map(s => s.point), 1.5);\r\n }\r\n \r\n if (extent !== null) {\r\n mapController.mapView.goTo({\r\n target: extent\r\n });\r\n return;\r\n }\r\n \r\n let singleStations = stationsLayer.findStationsByGraphics(graphics, false, true);\r\n \r\n if (singleStations.length === 0) {\r\n return;\r\n }\r\n \r\n let station = singleStations[0];\r\n \r\n if (event.pointerType === \"touch\") {\r\n let currentExtent = mapController.mapView.extent;\r\n let newCenter = station.point.clone();\r\n let newExtent = currentExtent.clone().centerAt(newCenter);\r\n \r\n if (mapController.domNode.clientWidth < 560 || mapController.domNode.clientHeight > mapController.domNode.clientWidth) {\r\n // Portrait orientation\r\n if (newCenter.y < currentExtent.center.y) {\r\n newExtent.offset(0, +currentExtent.height / 3);\r\n stationPopup.alignment = \"top-center\";\r\n } else {\r\n newExtent.offset(0, -currentExtent.height / 3);\r\n stationPopup.alignment = \"bottom-center\";\r\n }\r\n } else {\r\n // Landscape orientation\r\n if (newCenter.x < currentExtent.center.x) {\r\n newExtent.offset(+currentExtent.width / 3, -currentExtent.height / 3);\r\n stationPopup.alignment = \"bottom-right\";\r\n } else {\r\n newExtent.offset(-currentExtent.width / 3, -currentExtent.height / 3);\r\n stationPopup.alignment = \"bottom-left\";\r\n }\r\n }\r\n \r\n let action = () => {\r\n stationPopup.show(station);\r\n };\r\n \r\n goToExtent(newExtent).then(action, action);\r\n }\r\n });\r\n });\r\n \r\n mapController.addMapPointerMoveListener((event) => {\r\n if (event.pointerType === \"mouse\") {\r\n stationsLayer.hitTest(event).then(({ results }) => {\r\n let graphics = results.map(r => r.graphic).filter(r => r);\r\n \r\n let singleStations =\r\n stationsLayer.findStationsByGraphics(graphics, false, true);\r\n \r\n if (singleStations.length >= 1) {\r\n let station = singleStations[0];\r\n stationPopup.alignment = \"auto\";\r\n stationPopup.show(station);\r\n stationListView.setHighlightedStationId(station.id);\r\n \r\n } else {\r\n onMapPinMouseleave();\r\n }\r\n \r\n let clusteredStations = stationsLayer.findStationsByGraphics(graphics, true, false);\r\n \r\n setMapCursorToPointer(singleStations.length > 0 || clusteredStations.length > 0);\r\n });\r\n }\r\n });\r\n \r\n stationPopup.onMouseEnter.addListener(() => {\r\n stationListView.setHighlightedStationId(stationPopup.station.id);\r\n });\r\n \r\n mapController.domNode.addEventListener(\"mouseleave\", ev => {\r\n if (ev.relatedTarget === null || ev.relatedTarget === mapController.domNode) {\r\n return; // For some time spam-clicking the graph button in the popup causes mouseleaave to be called sometimes.\r\n }\r\n \r\n // Detect when the mouse leaves the whole map element to close popups and unhighlight list item\r\n onMapPinMouseleave();\r\n setMapCursorToPointer(false);\r\n });\r\n //#endregion\r\n \r\n //#region Filtering events\r\n filter.onChange.addListener(newFilterState => {\r\n if (stationData.loaded) {\r\n updateStations(StationQuery.filterStationsByFilterState(stationsSource, newFilterState));\r\n }\r\n });\r\n //#endregion\r\n \r\n //#region Search events\r\n search.addSearchResultSelectedListener((event, searchResult) => {\r\n let {\r\n type,\r\n result,\r\n dataType\r\n } = searchResult;\r\n \r\n if (type === search.searchTypes.GPS) {\r\n // validate within wales\r\n if (!mapController.boundingExtent.contains(searchResult.result.location)) {\r\n event.preventDefault(); // Stop search result becoming \"active\".\r\n \r\n var searchVm = search.searchResultsViewModel;\r\n searchVm.showRoot(true);\r\n searchVm.showNoExactMatchText(false);\r\n searchVm.showErrorMessage(true, Resource.UserLocationOutsideWales);\r\n return;\r\n }\r\n \r\n search.searchInput.value = \"\";\r\n }\r\n \r\n if (dataType === search.dataTypes.ADDRESS) {\r\n // Zoom in, show all stations\r\n let extent = result.extent;\r\n \r\n if (!extent) {\r\n extent = Geometry.extentOfRadius(result.location, Constants.LOCATION_ZOOM_RADIUS_KM);\r\n }\r\n \r\n if (!extent.intersects(mapController.boundingExtent)) {\r\n event.preventDefault();\r\n \r\n search.searchResultsViewModel.showRoot(true);\r\n search.searchResultsViewModel.isSearchActive = false;\r\n search.searchResultsViewModel.showResults(false);\r\n search.searchResultsViewModel.showErrorMessage(true, Resource.NoResults);\r\n search.searchResultsViewModel.showNoExactMatchText(false);\r\n \r\n search.autocompleteViewModel.showRoot(false);\r\n search.toggleLocationButton(false);\r\n \r\n } else {\r\n stationsSource = stationData.data;\r\n resetActiveStationQuery();\r\n updateStationsInStationsLayer();\r\n updateStationsInStationsList(extent);\r\n goToExtent(extent);\r\n }\r\n } else {\r\n if (type === search.searchTypes.RIVERS) {\r\n activeStationsQuery = [s => StationQuery.filterStationsByRiverId(s, result.id)];\r\n } else if (type === search.searchTypes.CATCHMENTS) {\r\n activeStationsQuery = [s => StationQuery.filterStationsByCatchmentId(s, result.id)];\r\n } else if (type === search.searchTypes.STATIONS) {\r\n activeStationsQuery = [s => StationQuery.filterStationsByIds(s, [result.id])];\r\n }\r\n \r\n let stationsFromSearch = applyActiveStationsQuery(stationData.data);\r\n activeStationsQuery.push(defaultActiveStationQuery);\r\n let filteredStations = applyActiveStationsQuery(stationData.data);\r\n \r\n if (filteredStations.length > 0) {\r\n stationsSource = stationsFromSearch;\r\n \r\n updateStationsInStationsLayer();\r\n let extent = buildExtentForPointsWithMinimumRadius(stationsFromSearch.map(s => s.point), 1.5);\r\n updateStationsInStationsList(extent);\r\n goToExtent(extent);\r\n }\r\n }\r\n \r\n let $searchedText = search.searchResultsViewModel.$searchedText;\r\n setTimeout(function ($el) {\r\n //only scroll if result term text is visible to the user\r\n if ($searchedText.offset().top > document.documentElement.scrollTop) {\r\n $(document.documentElement).animate({\r\n scrollTop: $searchedText.offset().top\r\n }, 400);\r\n }\r\n }, 0);\r\n });\r\n \r\n search.addSearchClearedListener(() => {\r\n stationsSource = stationData.data;\r\n resetActiveStationQuery();\r\n updateStationsInStationsLayer();\r\n updateStationsInStationsList(mapController.boundingExtent);\r\n goToExtent(mapController.boundingExtent);\r\n \r\n let searchPosition = $(search.searchInput);\r\n //only scroll up when the search input is not visible\r\n if (searchPosition.offset().top < document.documentElement.scrollTop) {\r\n $(document.documentElement).animate({\r\n scrollTop: searchPosition.offset().top\r\n }, 400);\r\n }\r\n \r\n search.resetState();\r\n search.clearSearchInput();\r\n search.focusSearchInput();\r\n });\r\n //#endregion\r\n \r\n //#region List events\r\n stationListView.addListItemMouseenterListener((listItem, event) => {\r\n if (listItem.animation) {\r\n listItem.animation.stop();\r\n listItem.animation.reset();\r\n }\r\n \r\n listItem.animation = stationsLayer.highlight(listItem.station.id);\r\n if (listItem.animation) {\r\n listItem.animation.start();\r\n }\r\n });\r\n \r\n stationListView.addListItemMouseleaveListener((listItem, event) => {\r\n if (listItem.animation) {\r\n listItem.animation.stopAfterCompletion();\r\n }\r\n });\r\n \r\n homePage.addViewChangedListener((newViewType, oldViewType, firstRun) => {\r\n if (newViewType === homePage.viewTypes.combinedView ||\r\n newViewType === homePage.viewTypes.listView ||\r\n newViewType === homePage.viewTypes.mapView) {\r\n let searchPosition = $(search.searchInput);\r\n \r\n if (newViewType === homePage.viewTypes.listView) {\r\n stationListView.pagination.enabled = true;\r\n } else {\r\n stationListView.pagination.enabled = false;\r\n }\r\n \r\n //search input field most be visable for the scrolling to the tab to happen\r\n if (!firstRun && searchPosition.offset().top > document.documentElement.scrollTop) {\r\n $(document.documentElement).animate({\r\n scrollTop: searchPosition.offset().top\r\n }, 400);\r\n }\r\n \r\n }\r\n }, true);\r\n //#endregion\r\n \r\n autoRefreshScheduler.onTick.addListener(() => {\r\n stationData.fetch().then(stationData => {\r\n processAndSortStationData(stationData.data);\r\n \r\n stationDataUpdateSource.invokeListeners([\r\n stationData.data.reduce((dict, station) => {\r\n dict[station.id] = station;\r\n return dict;\r\n }, {}), // Convert array to dictionary\r\n stationData.data\r\n ], this);\r\n \r\n })\r\n });\r\n \r\n stationDataUpdateSource.addListener((stationsById, stations) => {\r\n updateStationsInStationsLayer();\r\n stationListView.updateStations(stationsById);\r\n updateStationsInStationsList();\r\n \r\n if (stationPopup.renderedComponent && stationPopup.renderedComponent.station) {\r\n let station = stationPopup.renderedComponent.station;\r\n \r\n if (station.id in stationsById) {\r\n stationPopup.renderedComponent.update(stationsById[station.id]);\r\n } else {\r\n stationPopup.visible = false;\r\n }\r\n }\r\n });\r\n \r\n if (browserSupportHelper.hideMap) {\r\n forceListView();\r\n \r\n } else {\r\n whenAllBasemapLayersLoaded().then(function () { \r\n /* all layers successful */\r\n }, function (error) {\r\n console.error(error);\r\n \r\n forceListView();\r\n browserSupportHelper.showTechnicalIssuesMessage();\r\n browserSupportHelper.setMessageToError();\r\n browserSupportHelper.trackException(error, {\r\n \"BasemapLayersLoadError\": true\r\n }, undefined, 2);\r\n });\r\n }\r\n \r\n //#region Bootstrapping/initialising code (this kicks off the whole application)\r\n browserSupportHelper.trackTrace(\"Fetching station data\", undefined, 0);\r\n stationData.fetch().then(stationData => {\r\n browserSupportHelper.trackTrace(\"Fetched station data\", undefined, 0);\r\n\r\n processAndSortStationData(stationData.data);\r\n \r\n initialiseStationsList(stationData.data);\r\n if (stationsSource === null) {\r\n stationsSource = stationData.data;\r\n }\r\n updateStations();\r\n autoRefreshScheduler.start();\r\n\r\n browserSupportHelper.trackTrace(\"Used fetched station data\", undefined, 0);\r\n }).fail(error => {\r\n console.error(error);\r\n \r\n forceListView();\r\n browserSupportHelper.showTechnicalIssuesMessage();\r\n browserSupportHelper.setMessageToError();\r\n \r\n alert(\"An error has occurred when loading station data: \" + error.statusText);\r\n\r\n browserSupportHelper.trackException(error, {\r\n \"StationDataApiLoadError\": true\r\n }, undefined, 3);\r\n });\r\n //#endregion\r\n \r\n function processAndSortStationData(data) {\r\n for (let i = 0; i < data.length; i++) {\r\n const d = data[i];\r\n d.point = new Point({ ...d.britishNationalGrid, spatialReference: new SpatialReference({ wkid: 27700 }) });\r\n delete d.britishNationalGrid;\r\n }\r\n\r\n data.sort((a, b) => {\r\n a = Language.text(a.title).toUpperCase();\r\n b = Language.text(b.title).toUpperCase();\r\n\r\n return a < b ? -1 : a > b ? 1 : 0;\r\n });\r\n }\r\n\r\n //#region Modal event listeners\r\n\r\n document.getElementById(\"disclaimerForm\").addEventListener(\"submit\", ModalHelper.Close);\r\n accordionHelper.Close(\".about-us-section__accordion\");\r\n document.getElementById(\"aboutUsAccordionTitleBar\").addEventListener(\"click\", function () {\r\n accordionHelper.ToggleState(\".about-us-section__accordion\");\r\n });\r\n //#endregion\r\n\r\n //#region Business logic functions\r\n function forceListView()\r\n {\r\n browserSupportHelper.trackEvent(\"Restricted to list view only\");\r\n let mapTab = homePage.getTabForViewType(homePage.viewTypes.mapView);\r\n let combinedTab = homePage.getTabForViewType(homePage.viewTypes.combinedView);\r\n mapTab.visible = combinedTab.visible = false;\r\n homePage.tabController.$element.hide();\r\n \r\n useMapExtent = false;\r\n homePage.goToView(homePage.viewTypes.listView);\r\n updateStationsInStationsList();\r\n }\r\n \r\n function whenAllBasemapLayersLoaded() {\r\n let promise = $.Deferred();\r\n let layers = [].concat(basemap.baseLayers.items, basemap.referenceLayers.items);\r\n let remaining = layers.length;\r\n \r\n for (let i = 0; i < layers.length; i++) {\r\n layers[i].load().then(function () {\r\n if (--remaining === 0) {\r\n promise.resolve();\r\n }\r\n }, function (error) {\r\n promise.reject(error);\r\n });\r\n }\r\n \r\n return promise;\r\n }\r\n \r\n function goToExtent(extent, onInvisibleMapCallback) {\r\n _mapInvisiblyMovingToExtent = !homePage.mapIsVisible;\r\n \r\n let promise = mapController.safeGoTo({\r\n target: extent\r\n });\r\n \r\n if (!homePage.mapIsVisible && onInvisibleMapCallback) {\r\n onInvisibleMapCallback(extent);\r\n }\r\n \r\n return promise;\r\n }\r\n \r\n function initialiseStationsList(stations) {\r\n stationListView.clearStations();\r\n stationListView.addStations(stations);\r\n }\r\n \r\n function updateStations() {\r\n updateStationsInStationsLayer();\r\n updateStationsInStationsList();\r\n }\r\n \r\n function updateStationsInStationsLayer() {\r\n stationsLayer.applyStations(applyActiveStationsQuery(stationData.data));\r\n }\r\n \r\n function updateStationsInStationsList(extent) {\r\n if (typeof extent === typeof undefined) {\r\n extent = useMapExtent ? mapController.extent : null;\r\n }\r\n showTheseStationsInStationsList(applyActiveStationsQuery(stationData.data), extent);\r\n }\r\n \r\n function showTheseStationsInStationsList(stations, extent) {\r\n if (typeof extent === typeof undefined) {\r\n extent = useMapExtent ? mapController.extent : null;\r\n }\r\n \r\n stationListView.updateAllStationsRelevance(stations, extent);\r\n }\r\n \r\n function onMapPinMouseleave() {\r\n stationListView.setHighlightedStationId(null);\r\n stationPopup.beginPopupHideTimeout();\r\n }\r\n \r\n function setMapCursorToPointer(isHovering) {\r\n mapController.domNode.style.cursor = isHovering ? \"pointer\" : \"\";\r\n }\r\n \r\n function buildExtentForPointsWithMinimumRadius(points, expandFactor) {\r\n if (!points || points.length === 0) {\r\n return null;\r\n }\r\n \r\n if (typeof expandFactor === typeof undefined) {\r\n expandFactor = 1;\r\n }\r\n \r\n let pointsExtent = Geometry.extentOfPoints(points).clone().expand(expandFactor);\r\n let minimumExtent = Geometry.extentOfRadius(pointsExtent.center, Constants.LOCATION_ZOOM_RADIUS_KM);\r\n \r\n pointsExtent.union(minimumExtent);\r\n \r\n return pointsExtent;\r\n }\r\n \r\n function applyActiveStationsQuery(stations) {\r\n stations = stations.slice(0);\r\n \r\n for (let i = 0; i < activeStationsQuery.length; i++) {\r\n stations = activeStationsQuery[i](stations);\r\n }\r\n \r\n return stations;\r\n }\r\n \r\n function resetActiveStationQuery() {\r\n activeStationsQuery = [defaultActiveStationQuery];\r\n }\r\n \r\n browserSupportHelper.trackTrace(\"Landing constructor end\", undefined, 0);\r\n //#endregion\r\n });\r\n ","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\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","'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.github.io/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","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.<anonymous>\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\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","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.github.io/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX);\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.github.io/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = [].reverse;\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign\n if (isArray(this)) this.length = this.length;\n return nativeReverse.call(this);\n }\n});\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// `Math.log10` method\n// https://tc39.github.io/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n log10: function log10(x) {\n return log(x) * LOG10E;\n }\n});\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true }, {\n MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","/*!\r\n * Chart.js\r\n * http://chartjs.org/\r\n * Version: 2.7.3\r\n *\r\n * Copyright 2018 Chart.js Contributors\r\n * Released under the MIT license\r\n * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md\r\n */\r\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Chart = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\r\n\r\n},{}],2:[function(require,module,exports){\r\n/* MIT license */\r\nvar colorNames = require(6);\r\n\r\nmodule.exports = {\r\n getRgba: getRgba,\r\n getHsla: getHsla,\r\n getRgb: getRgb,\r\n getHsl: getHsl,\r\n getHwb: getHwb,\r\n getAlpha: getAlpha,\r\n\r\n hexString: hexString,\r\n rgbString: rgbString,\r\n rgbaString: rgbaString,\r\n percentString: percentString,\r\n percentaString: percentaString,\r\n hslString: hslString,\r\n hslaString: hslaString,\r\n hwbString: hwbString,\r\n keyword: keyword\r\n}\r\n\r\nfunction getRgba(string) {\r\n if (!string) {\r\n return;\r\n }\r\n var abbr = /^#([a-fA-F0-9]{3})$/i,\r\n hex = /^#([a-fA-F0-9]{6})$/i,\r\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\r\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\r\n keyword = /(\\w+)/;\r\n\r\n var rgb = [0, 0, 0],\r\n a = 1,\r\n match = string.match(abbr);\r\n if (match) {\r\n match = match[1];\r\n for (var i = 0; i < rgb.length; i++) {\r\n rgb[i] = parseInt(match[i] + match[i], 16);\r\n }\r\n }\r\n else if (match = string.match(hex)) {\r\n match = match[1];\r\n for (var i = 0; i < rgb.length; i++) {\r\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\r\n }\r\n }\r\n else if (match = string.match(rgba)) {\r\n for (var i = 0; i < rgb.length; i++) {\r\n rgb[i] = parseInt(match[i + 1]);\r\n }\r\n a = parseFloat(match[4]);\r\n }\r\n else if (match = string.match(per)) {\r\n for (var i = 0; i < rgb.length; i++) {\r\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\r\n }\r\n a = parseFloat(match[4]);\r\n }\r\n else if (match = string.match(keyword)) {\r\n if (match[1] == \"transparent\") {\r\n return [0, 0, 0, 0];\r\n }\r\n rgb = colorNames[match[1]];\r\n if (!rgb) {\r\n return;\r\n }\r\n }\r\n\r\n for (var i = 0; i < rgb.length; i++) {\r\n rgb[i] = scale(rgb[i], 0, 255);\r\n }\r\n if (!a && a != 0) {\r\n a = 1;\r\n }\r\n else {\r\n a = scale(a, 0, 1);\r\n }\r\n rgb[3] = a;\r\n return rgb;\r\n}\r\n\r\nfunction getHsla(string) {\r\n if (!string) {\r\n return;\r\n }\r\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\r\n var match = string.match(hsl);\r\n if (match) {\r\n var alpha = parseFloat(match[4]);\r\n var h = scale(parseInt(match[1]), 0, 360),\r\n s = scale(parseFloat(match[2]), 0, 100),\r\n l = scale(parseFloat(match[3]), 0, 100),\r\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\r\n return [h, s, l, a];\r\n }\r\n}\r\n\r\nfunction getHwb(string) {\r\n if (!string) {\r\n return;\r\n }\r\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\r\n var match = string.match(hwb);\r\n if (match) {\r\n var alpha = parseFloat(match[4]);\r\n var h = scale(parseInt(match[1]), 0, 360),\r\n w = scale(parseFloat(match[2]), 0, 100),\r\n b = scale(parseFloat(match[3]), 0, 100),\r\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\r\n return [h, w, b, a];\r\n }\r\n}\r\n\r\nfunction getRgb(string) {\r\n var rgba = getRgba(string);\r\n return rgba && rgba.slice(0, 3);\r\n}\r\n\r\nfunction getHsl(string) {\r\n var hsla = getHsla(string);\r\n return hsla && hsla.slice(0, 3);\r\n}\r\n\r\nfunction getAlpha(string) {\r\n var vals = getRgba(string);\r\n if (vals) {\r\n return vals[3];\r\n }\r\n else if (vals = getHsla(string)) {\r\n return vals[3];\r\n }\r\n else if (vals = getHwb(string)) {\r\n return vals[3];\r\n }\r\n}\r\n\r\n// generators\r\nfunction hexString(rgb) {\r\n return \"#\" + hexDouble(rgb[0]) + hexDouble(rgb[1])\r\n + hexDouble(rgb[2]);\r\n}\r\n\r\nfunction rgbString(rgba, alpha) {\r\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\r\n return rgbaString(rgba, alpha);\r\n }\r\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\r\n}\r\n\r\nfunction rgbaString(rgba, alpha) {\r\n if (alpha === undefined) {\r\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\r\n }\r\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\r\n + \", \" + alpha + \")\";\r\n}\r\n\r\nfunction percentString(rgba, alpha) {\r\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\r\n return percentaString(rgba, alpha);\r\n }\r\n var r = Math.round(rgba[0]/255 * 100),\r\n g = Math.round(rgba[1]/255 * 100),\r\n b = Math.round(rgba[2]/255 * 100);\r\n\r\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\r\n}\r\n\r\nfunction percentaString(rgba, alpha) {\r\n var r = Math.round(rgba[0]/255 * 100),\r\n g = Math.round(rgba[1]/255 * 100),\r\n b = Math.round(rgba[2]/255 * 100);\r\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\r\n}\r\n\r\nfunction hslString(hsla, alpha) {\r\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\r\n return hslaString(hsla, alpha);\r\n }\r\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\r\n}\r\n\r\nfunction hslaString(hsla, alpha) {\r\n if (alpha === undefined) {\r\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\r\n }\r\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\r\n + alpha + \")\";\r\n}\r\n\r\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\r\n// (hwb have alpha optional & 1 is default value)\r\nfunction hwbString(hwb, alpha) {\r\n if (alpha === undefined) {\r\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\r\n }\r\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\r\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\r\n}\r\n\r\nfunction keyword(rgb) {\r\n return reverseNames[rgb.slice(0, 3)];\r\n}\r\n\r\n// helpers\r\nfunction scale(num, min, max) {\r\n return Math.min(Math.max(min, num), max);\r\n}\r\n\r\nfunction hexDouble(num) {\r\n var str = num.toString(16).toUpperCase();\r\n return (str.length < 2) ? \"0\" + str : str;\r\n}\r\n\r\n\r\n//create a list of reverse color names\r\nvar reverseNames = {};\r\nfor (var name in colorNames) {\r\n reverseNames[colorNames[name]] = name;\r\n}\r\n\r\n},{\"6\":6}],3:[function(require,module,exports){\r\n/* MIT license */\r\nvar convert = require(5);\r\nvar string = require(2);\r\n\r\nvar Color = function (obj) {\r\n\tif (obj instanceof Color) {\r\n\t\treturn obj;\r\n\t}\r\n\tif (!(this instanceof Color)) {\r\n\t\treturn new Color(obj);\r\n\t}\r\n\r\n\tthis.valid = false;\r\n\tthis.values = {\r\n\t\trgb: [0, 0, 0],\r\n\t\thsl: [0, 0, 0],\r\n\t\thsv: [0, 0, 0],\r\n\t\thwb: [0, 0, 0],\r\n\t\tcmyk: [0, 0, 0, 0],\r\n\t\talpha: 1\r\n\t};\r\n\r\n\t// parse Color() argument\r\n\tvar vals;\r\n\tif (typeof obj === 'string') {\r\n\t\tvals = string.getRgba(obj);\r\n\t\tif (vals) {\r\n\t\t\tthis.setValues('rgb', vals);\r\n\t\t} else if (vals = string.getHsla(obj)) {\r\n\t\t\tthis.setValues('hsl', vals);\r\n\t\t} else if (vals = string.getHwb(obj)) {\r\n\t\t\tthis.setValues('hwb', vals);\r\n\t\t}\r\n\t} else if (typeof obj === 'object') {\r\n\t\tvals = obj;\r\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\r\n\t\t\tthis.setValues('rgb', vals);\r\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\r\n\t\t\tthis.setValues('hsl', vals);\r\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\r\n\t\t\tthis.setValues('hsv', vals);\r\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\r\n\t\t\tthis.setValues('hwb', vals);\r\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\r\n\t\t\tthis.setValues('cmyk', vals);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nColor.prototype = {\r\n\tisValid: function () {\r\n\t\treturn this.valid;\r\n\t},\r\n\trgb: function () {\r\n\t\treturn this.setSpace('rgb', arguments);\r\n\t},\r\n\thsl: function () {\r\n\t\treturn this.setSpace('hsl', arguments);\r\n\t},\r\n\thsv: function () {\r\n\t\treturn this.setSpace('hsv', arguments);\r\n\t},\r\n\thwb: function () {\r\n\t\treturn this.setSpace('hwb', arguments);\r\n\t},\r\n\tcmyk: function () {\r\n\t\treturn this.setSpace('cmyk', arguments);\r\n\t},\r\n\r\n\trgbArray: function () {\r\n\t\treturn this.values.rgb;\r\n\t},\r\n\thslArray: function () {\r\n\t\treturn this.values.hsl;\r\n\t},\r\n\thsvArray: function () {\r\n\t\treturn this.values.hsv;\r\n\t},\r\n\thwbArray: function () {\r\n\t\tvar values = this.values;\r\n\t\tif (values.alpha !== 1) {\r\n\t\t\treturn values.hwb.concat([values.alpha]);\r\n\t\t}\r\n\t\treturn values.hwb;\r\n\t},\r\n\tcmykArray: function () {\r\n\t\treturn this.values.cmyk;\r\n\t},\r\n\trgbaArray: function () {\r\n\t\tvar values = this.values;\r\n\t\treturn values.rgb.concat([values.alpha]);\r\n\t},\r\n\thslaArray: function () {\r\n\t\tvar values = this.values;\r\n\t\treturn values.hsl.concat([values.alpha]);\r\n\t},\r\n\talpha: function (val) {\r\n\t\tif (val === undefined) {\r\n\t\t\treturn this.values.alpha;\r\n\t\t}\r\n\t\tthis.setValues('alpha', val);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tred: function (val) {\r\n\t\treturn this.setChannel('rgb', 0, val);\r\n\t},\r\n\tgreen: function (val) {\r\n\t\treturn this.setChannel('rgb', 1, val);\r\n\t},\r\n\tblue: function (val) {\r\n\t\treturn this.setChannel('rgb', 2, val);\r\n\t},\r\n\thue: function (val) {\r\n\t\tif (val) {\r\n\t\t\tval %= 360;\r\n\t\t\tval = val < 0 ? 360 + val : val;\r\n\t\t}\r\n\t\treturn this.setChannel('hsl', 0, val);\r\n\t},\r\n\tsaturation: function (val) {\r\n\t\treturn this.setChannel('hsl', 1, val);\r\n\t},\r\n\tlightness: function (val) {\r\n\t\treturn this.setChannel('hsl', 2, val);\r\n\t},\r\n\tsaturationv: function (val) {\r\n\t\treturn this.setChannel('hsv', 1, val);\r\n\t},\r\n\twhiteness: function (val) {\r\n\t\treturn this.setChannel('hwb', 1, val);\r\n\t},\r\n\tblackness: function (val) {\r\n\t\treturn this.setChannel('hwb', 2, val);\r\n\t},\r\n\tvalue: function (val) {\r\n\t\treturn this.setChannel('hsv', 2, val);\r\n\t},\r\n\tcyan: function (val) {\r\n\t\treturn this.setChannel('cmyk', 0, val);\r\n\t},\r\n\tmagenta: function (val) {\r\n\t\treturn this.setChannel('cmyk', 1, val);\r\n\t},\r\n\tyellow: function (val) {\r\n\t\treturn this.setChannel('cmyk', 2, val);\r\n\t},\r\n\tblack: function (val) {\r\n\t\treturn this.setChannel('cmyk', 3, val);\r\n\t},\r\n\r\n\thexString: function () {\r\n\t\treturn string.hexString(this.values.rgb);\r\n\t},\r\n\trgbString: function () {\r\n\t\treturn string.rgbString(this.values.rgb, this.values.alpha);\r\n\t},\r\n\trgbaString: function () {\r\n\t\treturn string.rgbaString(this.values.rgb, this.values.alpha);\r\n\t},\r\n\tpercentString: function () {\r\n\t\treturn string.percentString(this.values.rgb, this.values.alpha);\r\n\t},\r\n\thslString: function () {\r\n\t\treturn string.hslString(this.values.hsl, this.values.alpha);\r\n\t},\r\n\thslaString: function () {\r\n\t\treturn string.hslaString(this.values.hsl, this.values.alpha);\r\n\t},\r\n\thwbString: function () {\r\n\t\treturn string.hwbString(this.values.hwb, this.values.alpha);\r\n\t},\r\n\tkeyword: function () {\r\n\t\treturn string.keyword(this.values.rgb, this.values.alpha);\r\n\t},\r\n\r\n\trgbNumber: function () {\r\n\t\tvar rgb = this.values.rgb;\r\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\r\n\t},\r\n\r\n\tluminosity: function () {\r\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\r\n\t\tvar rgb = this.values.rgb;\r\n\t\tvar lum = [];\r\n\t\tfor (var i = 0; i < rgb.length; i++) {\r\n\t\t\tvar chan = rgb[i] / 255;\r\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\r\n\t\t}\r\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\r\n\t},\r\n\r\n\tcontrast: function (color2) {\r\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\r\n\t\tvar lum1 = this.luminosity();\r\n\t\tvar lum2 = color2.luminosity();\r\n\t\tif (lum1 > lum2) {\r\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\r\n\t\t}\r\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\r\n\t},\r\n\r\n\tlevel: function (color2) {\r\n\t\tvar contrastRatio = this.contrast(color2);\r\n\t\tif (contrastRatio >= 7.1) {\r\n\t\t\treturn 'AAA';\r\n\t\t}\r\n\r\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\r\n\t},\r\n\r\n\tdark: function () {\r\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\r\n\t\tvar rgb = this.values.rgb;\r\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\r\n\t\treturn yiq < 128;\r\n\t},\r\n\r\n\tlight: function () {\r\n\t\treturn !this.dark();\r\n\t},\r\n\r\n\tnegate: function () {\r\n\t\tvar rgb = [];\r\n\t\tfor (var i = 0; i < 3; i++) {\r\n\t\t\trgb[i] = 255 - this.values.rgb[i];\r\n\t\t}\r\n\t\tthis.setValues('rgb', rgb);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tlighten: function (ratio) {\r\n\t\tvar hsl = this.values.hsl;\r\n\t\thsl[2] += hsl[2] * ratio;\r\n\t\tthis.setValues('hsl', hsl);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tdarken: function (ratio) {\r\n\t\tvar hsl = this.values.hsl;\r\n\t\thsl[2] -= hsl[2] * ratio;\r\n\t\tthis.setValues('hsl', hsl);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsaturate: function (ratio) {\r\n\t\tvar hsl = this.values.hsl;\r\n\t\thsl[1] += hsl[1] * ratio;\r\n\t\tthis.setValues('hsl', hsl);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tdesaturate: function (ratio) {\r\n\t\tvar hsl = this.values.hsl;\r\n\t\thsl[1] -= hsl[1] * ratio;\r\n\t\tthis.setValues('hsl', hsl);\r\n\t\treturn this;\r\n\t},\r\n\r\n\twhiten: function (ratio) {\r\n\t\tvar hwb = this.values.hwb;\r\n\t\thwb[1] += hwb[1] * ratio;\r\n\t\tthis.setValues('hwb', hwb);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tblacken: function (ratio) {\r\n\t\tvar hwb = this.values.hwb;\r\n\t\thwb[2] += hwb[2] * ratio;\r\n\t\tthis.setValues('hwb', hwb);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgreyscale: function () {\r\n\t\tvar rgb = this.values.rgb;\r\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\r\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\r\n\t\tthis.setValues('rgb', [val, val, val]);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tclearer: function (ratio) {\r\n\t\tvar alpha = this.values.alpha;\r\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\r\n\t\treturn this;\r\n\t},\r\n\r\n\topaquer: function (ratio) {\r\n\t\tvar alpha = this.values.alpha;\r\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\r\n\t\treturn this;\r\n\t},\r\n\r\n\trotate: function (degrees) {\r\n\t\tvar hsl = this.values.hsl;\r\n\t\tvar hue = (hsl[0] + degrees) % 360;\r\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\r\n\t\tthis.setValues('hsl', hsl);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t/**\r\n\t * Ported from sass implementation in C\r\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\r\n\t */\r\n\tmix: function (mixinColor, weight) {\r\n\t\tvar color1 = this;\r\n\t\tvar color2 = mixinColor;\r\n\t\tvar p = weight === undefined ? 0.5 : weight;\r\n\r\n\t\tvar w = 2 * p - 1;\r\n\t\tvar a = color1.alpha() - color2.alpha();\r\n\r\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\r\n\t\tvar w2 = 1 - w1;\r\n\r\n\t\treturn this\r\n\t\t\t.rgb(\r\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\r\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\r\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\r\n\t\t\t)\r\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\r\n\t},\r\n\r\n\ttoJSON: function () {\r\n\t\treturn this.rgb();\r\n\t},\r\n\r\n\tclone: function () {\r\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\r\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\r\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\r\n\t\t// except 'alpha' which is a number.\r\n\t\tvar result = new Color();\r\n\t\tvar source = this.values;\r\n\t\tvar target = result.values;\r\n\t\tvar value, type;\r\n\r\n\t\tfor (var prop in source) {\r\n\t\t\tif (source.hasOwnProperty(prop)) {\r\n\t\t\t\tvalue = source[prop];\r\n\t\t\t\ttype = ({}).toString.call(value);\r\n\t\t\t\tif (type === '[object Array]') {\r\n\t\t\t\t\ttarget[prop] = value.slice(0);\r\n\t\t\t\t} else if (type === '[object Number]') {\r\n\t\t\t\t\ttarget[prop] = value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error('unexpected color value:', value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n};\r\n\r\nColor.prototype.spaces = {\r\n\trgb: ['red', 'green', 'blue'],\r\n\thsl: ['hue', 'saturation', 'lightness'],\r\n\thsv: ['hue', 'saturation', 'value'],\r\n\thwb: ['hue', 'whiteness', 'blackness'],\r\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\r\n};\r\n\r\nColor.prototype.maxes = {\r\n\trgb: [255, 255, 255],\r\n\thsl: [360, 100, 100],\r\n\thsv: [360, 100, 100],\r\n\thwb: [360, 100, 100],\r\n\tcmyk: [100, 100, 100, 100]\r\n};\r\n\r\nColor.prototype.getValues = function (space) {\r\n\tvar values = this.values;\r\n\tvar vals = {};\r\n\r\n\tfor (var i = 0; i < space.length; i++) {\r\n\t\tvals[space.charAt(i)] = values[space][i];\r\n\t}\r\n\r\n\tif (values.alpha !== 1) {\r\n\t\tvals.a = values.alpha;\r\n\t}\r\n\r\n\t// {r: 255, g: 255, b: 255, a: 0.4}\r\n\treturn vals;\r\n};\r\n\r\nColor.prototype.setValues = function (space, vals) {\r\n\tvar values = this.values;\r\n\tvar spaces = this.spaces;\r\n\tvar maxes = this.maxes;\r\n\tvar alpha = 1;\r\n\tvar i;\r\n\r\n\tthis.valid = true;\r\n\r\n\tif (space === 'alpha') {\r\n\t\talpha = vals;\r\n\t} else if (vals.length) {\r\n\t\t// [10, 10, 10]\r\n\t\tvalues[space] = vals.slice(0, space.length);\r\n\t\talpha = vals[space.length];\r\n\t} else if (vals[space.charAt(0)] !== undefined) {\r\n\t\t// {r: 10, g: 10, b: 10}\r\n\t\tfor (i = 0; i < space.length; i++) {\r\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\r\n\t\t}\r\n\r\n\t\talpha = vals.a;\r\n\t} else if (vals[spaces[space][0]] !== undefined) {\r\n\t\t// {red: 10, green: 10, blue: 10}\r\n\t\tvar chans = spaces[space];\r\n\r\n\t\tfor (i = 0; i < space.length; i++) {\r\n\t\t\tvalues[space][i] = vals[chans[i]];\r\n\t\t}\r\n\r\n\t\talpha = vals.alpha;\r\n\t}\r\n\r\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\r\n\r\n\tif (space === 'alpha') {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tvar capped;\r\n\r\n\t// cap values of the space prior converting all values\r\n\tfor (i = 0; i < space.length; i++) {\r\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\r\n\t\tvalues[space][i] = Math.round(capped);\r\n\t}\r\n\r\n\t// convert to all the other color spaces\r\n\tfor (var sname in spaces) {\r\n\t\tif (sname !== space) {\r\n\t\t\tvalues[sname] = convert[space][sname](values[space]);\r\n\t\t}\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n\r\nColor.prototype.setSpace = function (space, args) {\r\n\tvar vals = args[0];\r\n\r\n\tif (vals === undefined) {\r\n\t\t// color.rgb()\r\n\t\treturn this.getValues(space);\r\n\t}\r\n\r\n\t// color.rgb(10, 10, 10)\r\n\tif (typeof vals === 'number') {\r\n\t\tvals = Array.prototype.slice.call(args);\r\n\t}\r\n\r\n\tthis.setValues(space, vals);\r\n\treturn this;\r\n};\r\n\r\nColor.prototype.setChannel = function (space, index, val) {\r\n\tvar svalues = this.values[space];\r\n\tif (val === undefined) {\r\n\t\t// color.red()\r\n\t\treturn svalues[index];\r\n\t} else if (val === svalues[index]) {\r\n\t\t// color.red(color.red())\r\n\t\treturn this;\r\n\t}\r\n\r\n\t// color.red(100)\r\n\tsvalues[index] = val;\r\n\tthis.setValues(space, svalues);\r\n\r\n\treturn this;\r\n};\r\n\r\nif (typeof window !== 'undefined') {\r\n\twindow.Color = Color;\r\n}\r\n\r\nmodule.exports = Color;\r\n\r\n},{\"2\":2,\"5\":5}],4:[function(require,module,exports){\r\n/* MIT license */\r\n\r\nmodule.exports = {\r\n rgb2hsl: rgb2hsl,\r\n rgb2hsv: rgb2hsv,\r\n rgb2hwb: rgb2hwb,\r\n rgb2cmyk: rgb2cmyk,\r\n rgb2keyword: rgb2keyword,\r\n rgb2xyz: rgb2xyz,\r\n rgb2lab: rgb2lab,\r\n rgb2lch: rgb2lch,\r\n\r\n hsl2rgb: hsl2rgb,\r\n hsl2hsv: hsl2hsv,\r\n hsl2hwb: hsl2hwb,\r\n hsl2cmyk: hsl2cmyk,\r\n hsl2keyword: hsl2keyword,\r\n\r\n hsv2rgb: hsv2rgb,\r\n hsv2hsl: hsv2hsl,\r\n hsv2hwb: hsv2hwb,\r\n hsv2cmyk: hsv2cmyk,\r\n hsv2keyword: hsv2keyword,\r\n\r\n hwb2rgb: hwb2rgb,\r\n hwb2hsl: hwb2hsl,\r\n hwb2hsv: hwb2hsv,\r\n hwb2cmyk: hwb2cmyk,\r\n hwb2keyword: hwb2keyword,\r\n\r\n cmyk2rgb: cmyk2rgb,\r\n cmyk2hsl: cmyk2hsl,\r\n cmyk2hsv: cmyk2hsv,\r\n cmyk2hwb: cmyk2hwb,\r\n cmyk2keyword: cmyk2keyword,\r\n\r\n keyword2rgb: keyword2rgb,\r\n keyword2hsl: keyword2hsl,\r\n keyword2hsv: keyword2hsv,\r\n keyword2hwb: keyword2hwb,\r\n keyword2cmyk: keyword2cmyk,\r\n keyword2lab: keyword2lab,\r\n keyword2xyz: keyword2xyz,\r\n\r\n xyz2rgb: xyz2rgb,\r\n xyz2lab: xyz2lab,\r\n xyz2lch: xyz2lch,\r\n\r\n lab2xyz: lab2xyz,\r\n lab2rgb: lab2rgb,\r\n lab2lch: lab2lch,\r\n\r\n lch2lab: lch2lab,\r\n lch2xyz: lch2xyz,\r\n lch2rgb: lch2rgb\r\n}\r\n\r\n\r\nfunction rgb2hsl(rgb) {\r\n var r = rgb[0]/255,\r\n g = rgb[1]/255,\r\n b = rgb[2]/255,\r\n min = Math.min(r, g, b),\r\n max = Math.max(r, g, b),\r\n delta = max - min,\r\n h, s, l;\r\n\r\n if (max == min)\r\n h = 0;\r\n else if (r == max)\r\n h = (g - b) / delta;\r\n else if (g == max)\r\n h = 2 + (b - r) / delta;\r\n else if (b == max)\r\n h = 4 + (r - g)/ delta;\r\n\r\n h = Math.min(h * 60, 360);\r\n\r\n if (h < 0)\r\n h += 360;\r\n\r\n l = (min + max) / 2;\r\n\r\n if (max == min)\r\n s = 0;\r\n else if (l <= 0.5)\r\n s = delta / (max + min);\r\n else\r\n s = delta / (2 - max - min);\r\n\r\n return [h, s * 100, l * 100];\r\n}\r\n\r\nfunction rgb2hsv(rgb) {\r\n var r = rgb[0],\r\n g = rgb[1],\r\n b = rgb[2],\r\n min = Math.min(r, g, b),\r\n max = Math.max(r, g, b),\r\n delta = max - min,\r\n h, s, v;\r\n\r\n if (max == 0)\r\n s = 0;\r\n else\r\n s = (delta/max * 1000)/10;\r\n\r\n if (max == min)\r\n h = 0;\r\n else if (r == max)\r\n h = (g - b) / delta;\r\n else if (g == max)\r\n h = 2 + (b - r) / delta;\r\n else if (b == max)\r\n h = 4 + (r - g) / delta;\r\n\r\n h = Math.min(h * 60, 360);\r\n\r\n if (h < 0)\r\n h += 360;\r\n\r\n v = ((max / 255) * 1000) / 10;\r\n\r\n return [h, s, v];\r\n}\r\n\r\nfunction rgb2hwb(rgb) {\r\n var r = rgb[0],\r\n g = rgb[1],\r\n b = rgb[2],\r\n h = rgb2hsl(rgb)[0],\r\n w = 1/255 * Math.min(r, Math.min(g, b)),\r\n b = 1 - 1/255 * Math.max(r, Math.max(g, b));\r\n\r\n return [h, w * 100, b * 100];\r\n}\r\n\r\nfunction rgb2cmyk(rgb) {\r\n var r = rgb[0] / 255,\r\n g = rgb[1] / 255,\r\n b = rgb[2] / 255,\r\n c, m, y, k;\r\n\r\n k = Math.min(1 - r, 1 - g, 1 - b);\r\n c = (1 - r - k) / (1 - k) || 0;\r\n m = (1 - g - k) / (1 - k) || 0;\r\n y = (1 - b - k) / (1 - k) || 0;\r\n return [c * 100, m * 100, y * 100, k * 100];\r\n}\r\n\r\nfunction rgb2keyword(rgb) {\r\n return reverseKeywords[JSON.stringify(rgb)];\r\n}\r\n\r\nfunction rgb2xyz(rgb) {\r\n var r = rgb[0] / 255,\r\n g = rgb[1] / 255,\r\n b = rgb[2] / 255;\r\n\r\n // assume sRGB\r\n r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\r\n g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\r\n b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\r\n\r\n var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\r\n var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\r\n var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\r\n\r\n return [x * 100, y *100, z * 100];\r\n}\r\n\r\nfunction rgb2lab(rgb) {\r\n var xyz = rgb2xyz(rgb),\r\n x = xyz[0],\r\n y = xyz[1],\r\n z = xyz[2],\r\n l, a, b;\r\n\r\n x /= 95.047;\r\n y /= 100;\r\n z /= 108.883;\r\n\r\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\r\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\r\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\r\n\r\n l = (116 * y) - 16;\r\n a = 500 * (x - y);\r\n b = 200 * (y - z);\r\n\r\n return [l, a, b];\r\n}\r\n\r\nfunction rgb2lch(args) {\r\n return lab2lch(rgb2lab(args));\r\n}\r\n\r\nfunction hsl2rgb(hsl) {\r\n var h = hsl[0] / 360,\r\n s = hsl[1] / 100,\r\n l = hsl[2] / 100,\r\n t1, t2, t3, rgb, val;\r\n\r\n if (s == 0) {\r\n val = l * 255;\r\n return [val, val, val];\r\n }\r\n\r\n if (l < 0.5)\r\n t2 = l * (1 + s);\r\n else\r\n t2 = l + s - l * s;\r\n t1 = 2 * l - t2;\r\n\r\n rgb = [0, 0, 0];\r\n for (var i = 0; i < 3; i++) {\r\n t3 = h + 1 / 3 * - (i - 1);\r\n t3 < 0 && t3++;\r\n t3 > 1 && t3--;\r\n\r\n if (6 * t3 < 1)\r\n val = t1 + (t2 - t1) * 6 * t3;\r\n else if (2 * t3 < 1)\r\n val = t2;\r\n else if (3 * t3 < 2)\r\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\r\n else\r\n val = t1;\r\n\r\n rgb[i] = val * 255;\r\n }\r\n\r\n return rgb;\r\n}\r\n\r\nfunction hsl2hsv(hsl) {\r\n var h = hsl[0],\r\n s = hsl[1] / 100,\r\n l = hsl[2] / 100,\r\n sv, v;\r\n\r\n if(l === 0) {\r\n // no need to do calc on black\r\n // also avoids divide by 0 error\r\n return [0, 0, 0];\r\n }\r\n\r\n l *= 2;\r\n s *= (l <= 1) ? l : 2 - l;\r\n v = (l + s) / 2;\r\n sv = (2 * s) / (l + s);\r\n return [h, sv * 100, v * 100];\r\n}\r\n\r\nfunction hsl2hwb(args) {\r\n return rgb2hwb(hsl2rgb(args));\r\n}\r\n\r\nfunction hsl2cmyk(args) {\r\n return rgb2cmyk(hsl2rgb(args));\r\n}\r\n\r\nfunction hsl2keyword(args) {\r\n return rgb2keyword(hsl2rgb(args));\r\n}\r\n\r\n\r\nfunction hsv2rgb(hsv) {\r\n var h = hsv[0] / 60,\r\n s = hsv[1] / 100,\r\n v = hsv[2] / 100,\r\n hi = Math.floor(h) % 6;\r\n\r\n var f = h - Math.floor(h),\r\n p = 255 * v * (1 - s),\r\n q = 255 * v * (1 - (s * f)),\r\n t = 255 * v * (1 - (s * (1 - f))),\r\n v = 255 * v;\r\n\r\n switch(hi) {\r\n case 0:\r\n return [v, t, p];\r\n case 1:\r\n return [q, v, p];\r\n case 2:\r\n return [p, v, t];\r\n case 3:\r\n return [p, q, v];\r\n case 4:\r\n return [t, p, v];\r\n case 5:\r\n return [v, p, q];\r\n }\r\n}\r\n\r\nfunction hsv2hsl(hsv) {\r\n var h = hsv[0],\r\n s = hsv[1] / 100,\r\n v = hsv[2] / 100,\r\n sl, l;\r\n\r\n l = (2 - s) * v;\r\n sl = s * v;\r\n sl /= (l <= 1) ? l : 2 - l;\r\n sl = sl || 0;\r\n l /= 2;\r\n return [h, sl * 100, l * 100];\r\n}\r\n\r\nfunction hsv2hwb(args) {\r\n return rgb2hwb(hsv2rgb(args))\r\n}\r\n\r\nfunction hsv2cmyk(args) {\r\n return rgb2cmyk(hsv2rgb(args));\r\n}\r\n\r\nfunction hsv2keyword(args) {\r\n return rgb2keyword(hsv2rgb(args));\r\n}\r\n\r\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\r\nfunction hwb2rgb(hwb) {\r\n var h = hwb[0] / 360,\r\n wh = hwb[1] / 100,\r\n bl = hwb[2] / 100,\r\n ratio = wh + bl,\r\n i, v, f, n;\r\n\r\n // wh + bl cant be > 1\r\n if (ratio > 1) {\r\n wh /= ratio;\r\n bl /= ratio;\r\n }\r\n\r\n i = Math.floor(6 * h);\r\n v = 1 - bl;\r\n f = 6 * h - i;\r\n if ((i & 0x01) != 0) {\r\n f = 1 - f;\r\n }\r\n n = wh + f * (v - wh); // linear interpolation\r\n\r\n switch (i) {\r\n default:\r\n case 6:\r\n case 0: r = v; g = n; b = wh; break;\r\n case 1: r = n; g = v; b = wh; break;\r\n case 2: r = wh; g = v; b = n; break;\r\n case 3: r = wh; g = n; b = v; break;\r\n case 4: r = n; g = wh; b = v; break;\r\n case 5: r = v; g = wh; b = n; break;\r\n }\r\n\r\n return [r * 255, g * 255, b * 255];\r\n}\r\n\r\nfunction hwb2hsl(args) {\r\n return rgb2hsl(hwb2rgb(args));\r\n}\r\n\r\nfunction hwb2hsv(args) {\r\n return rgb2hsv(hwb2rgb(args));\r\n}\r\n\r\nfunction hwb2cmyk(args) {\r\n return rgb2cmyk(hwb2rgb(args));\r\n}\r\n\r\nfunction hwb2keyword(args) {\r\n return rgb2keyword(hwb2rgb(args));\r\n}\r\n\r\nfunction cmyk2rgb(cmyk) {\r\n var c = cmyk[0] / 100,\r\n m = cmyk[1] / 100,\r\n y = cmyk[2] / 100,\r\n k = cmyk[3] / 100,\r\n r, g, b;\r\n\r\n r = 1 - Math.min(1, c * (1 - k) + k);\r\n g = 1 - Math.min(1, m * (1 - k) + k);\r\n b = 1 - Math.min(1, y * (1 - k) + k);\r\n return [r * 255, g * 255, b * 255];\r\n}\r\n\r\nfunction cmyk2hsl(args) {\r\n return rgb2hsl(cmyk2rgb(args));\r\n}\r\n\r\nfunction cmyk2hsv(args) {\r\n return rgb2hsv(cmyk2rgb(args));\r\n}\r\n\r\nfunction cmyk2hwb(args) {\r\n return rgb2hwb(cmyk2rgb(args));\r\n}\r\n\r\nfunction cmyk2keyword(args) {\r\n return rgb2keyword(cmyk2rgb(args));\r\n}\r\n\r\n\r\nfunction xyz2rgb(xyz) {\r\n var x = xyz[0] / 100,\r\n y = xyz[1] / 100,\r\n z = xyz[2] / 100,\r\n r, g, b;\r\n\r\n r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\r\n g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\r\n b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\r\n\r\n // assume sRGB\r\n r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\r\n : r = (r * 12.92);\r\n\r\n g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\r\n : g = (g * 12.92);\r\n\r\n b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\r\n : b = (b * 12.92);\r\n\r\n r = Math.min(Math.max(0, r), 1);\r\n g = Math.min(Math.max(0, g), 1);\r\n b = Math.min(Math.max(0, b), 1);\r\n\r\n return [r * 255, g * 255, b * 255];\r\n}\r\n\r\nfunction xyz2lab(xyz) {\r\n var x = xyz[0],\r\n y = xyz[1],\r\n z = xyz[2],\r\n l, a, b;\r\n\r\n x /= 95.047;\r\n y /= 100;\r\n z /= 108.883;\r\n\r\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\r\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\r\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\r\n\r\n l = (116 * y) - 16;\r\n a = 500 * (x - y);\r\n b = 200 * (y - z);\r\n\r\n return [l, a, b];\r\n}\r\n\r\nfunction xyz2lch(args) {\r\n return lab2lch(xyz2lab(args));\r\n}\r\n\r\nfunction lab2xyz(lab) {\r\n var l = lab[0],\r\n a = lab[1],\r\n b = lab[2],\r\n x, y, z, y2;\r\n\r\n if (l <= 8) {\r\n y = (l * 100) / 903.3;\r\n y2 = (7.787 * (y / 100)) + (16 / 116);\r\n } else {\r\n y = 100 * Math.pow((l + 16) / 116, 3);\r\n y2 = Math.pow(y / 100, 1/3);\r\n }\r\n\r\n x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\r\n\r\n z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\r\n\r\n return [x, y, z];\r\n}\r\n\r\nfunction lab2lch(lab) {\r\n var l = lab[0],\r\n a = lab[1],\r\n b = lab[2],\r\n hr, h, c;\r\n\r\n hr = Math.atan2(b, a);\r\n h = hr * 360 / 2 / Math.PI;\r\n if (h < 0) {\r\n h += 360;\r\n }\r\n c = Math.sqrt(a * a + b * b);\r\n return [l, c, h];\r\n}\r\n\r\nfunction lab2rgb(args) {\r\n return xyz2rgb(lab2xyz(args));\r\n}\r\n\r\nfunction lch2lab(lch) {\r\n var l = lch[0],\r\n c = lch[1],\r\n h = lch[2],\r\n a, b, hr;\r\n\r\n hr = h / 360 * 2 * Math.PI;\r\n a = c * Math.cos(hr);\r\n b = c * Math.sin(hr);\r\n return [l, a, b];\r\n}\r\n\r\nfunction lch2xyz(args) {\r\n return lab2xyz(lch2lab(args));\r\n}\r\n\r\nfunction lch2rgb(args) {\r\n return lab2rgb(lch2lab(args));\r\n}\r\n\r\nfunction keyword2rgb(keyword) {\r\n return cssKeywords[keyword];\r\n}\r\n\r\nfunction keyword2hsl(args) {\r\n return rgb2hsl(keyword2rgb(args));\r\n}\r\n\r\nfunction keyword2hsv(args) {\r\n return rgb2hsv(keyword2rgb(args));\r\n}\r\n\r\nfunction keyword2hwb(args) {\r\n return rgb2hwb(keyword2rgb(args));\r\n}\r\n\r\nfunction keyword2cmyk(args) {\r\n return rgb2cmyk(keyword2rgb(args));\r\n}\r\n\r\nfunction keyword2lab(args) {\r\n return rgb2lab(keyword2rgb(args));\r\n}\r\n\r\nfunction keyword2xyz(args) {\r\n return rgb2xyz(keyword2rgb(args));\r\n}\r\n\r\nvar cssKeywords = {\r\n aliceblue: [240,248,255],\r\n antiquewhite: [250,235,215],\r\n aqua: [0,255,255],\r\n aquamarine: [127,255,212],\r\n azure: [240,255,255],\r\n beige: [245,245,220],\r\n bisque: [255,228,196],\r\n black: [0,0,0],\r\n blanchedalmond: [255,235,205],\r\n blue: [0,0,255],\r\n blueviolet: [138,43,226],\r\n brown: [165,42,42],\r\n burlywood: [222,184,135],\r\n cadetblue: [95,158,160],\r\n chartreuse: [127,255,0],\r\n chocolate: [210,105,30],\r\n coral: [255,127,80],\r\n cornflowerblue: [100,149,237],\r\n cornsilk: [255,248,220],\r\n crimson: [220,20,60],\r\n cyan: [0,255,255],\r\n darkblue: [0,0,139],\r\n darkcyan: [0,139,139],\r\n darkgoldenrod: [184,134,11],\r\n darkgray: [169,169,169],\r\n darkgreen: [0,100,0],\r\n darkgrey: [169,169,169],\r\n darkkhaki: [189,183,107],\r\n darkmagenta: [139,0,139],\r\n darkolivegreen: [85,107,47],\r\n darkorange: [255,140,0],\r\n darkorchid: [153,50,204],\r\n darkred: [139,0,0],\r\n darksalmon: [233,150,122],\r\n darkseagreen: [143,188,143],\r\n darkslateblue: [72,61,139],\r\n darkslategray: [47,79,79],\r\n darkslategrey: [47,79,79],\r\n darkturquoise: [0,206,209],\r\n darkviolet: [148,0,211],\r\n deeppink: [255,20,147],\r\n deepskyblue: [0,191,255],\r\n dimgray: [105,105,105],\r\n dimgrey: [105,105,105],\r\n dodgerblue: [30,144,255],\r\n firebrick: [178,34,34],\r\n floralwhite: [255,250,240],\r\n forestgreen: [34,139,34],\r\n fuchsia: [255,0,255],\r\n gainsboro: [220,220,220],\r\n ghostwhite: [248,248,255],\r\n gold: [255,215,0],\r\n goldenrod: [218,165,32],\r\n gray: [128,128,128],\r\n green: [0,128,0],\r\n greenyellow: [173,255,47],\r\n grey: [128,128,128],\r\n honeydew: [240,255,240],\r\n hotpink: [255,105,180],\r\n indianred: [205,92,92],\r\n indigo: [75,0,130],\r\n ivory: [255,255,240],\r\n khaki: [240,230,140],\r\n lavender: [230,230,250],\r\n lavenderblush: [255,240,245],\r\n lawngreen: [124,252,0],\r\n lemonchiffon: [255,250,205],\r\n lightblue: [173,216,230],\r\n lightcoral: [240,128,128],\r\n lightcyan: [224,255,255],\r\n lightgoldenrodyellow: [250,250,210],\r\n lightgray: [211,211,211],\r\n lightgreen: [144,238,144],\r\n lightgrey: [211,211,211],\r\n lightpink: [255,182,193],\r\n lightsalmon: [255,160,122],\r\n lightseagreen: [32,178,170],\r\n lightskyblue: [135,206,250],\r\n lightslategray: [119,136,153],\r\n lightslategrey: [119,136,153],\r\n lightsteelblue: [176,196,222],\r\n lightyellow: [255,255,224],\r\n lime: [0,255,0],\r\n limegreen: [50,205,50],\r\n linen: [250,240,230],\r\n magenta: [255,0,255],\r\n maroon: [128,0,0],\r\n mediumaquamarine: [102,205,170],\r\n mediumblue: [0,0,205],\r\n mediumorchid: [186,85,211],\r\n mediumpurple: [147,112,219],\r\n mediumseagreen: [60,179,113],\r\n mediumslateblue: [123,104,238],\r\n mediumspringgreen: [0,250,154],\r\n mediumturquoise: [72,209,204],\r\n mediumvioletred: [199,21,133],\r\n midnightblue: [25,25,112],\r\n mintcream: [245,255,250],\r\n mistyrose: [255,228,225],\r\n moccasin: [255,228,181],\r\n navajowhite: [255,222,173],\r\n navy: [0,0,128],\r\n oldlace: [253,245,230],\r\n olive: [128,128,0],\r\n olivedrab: [107,142,35],\r\n orange: [255,165,0],\r\n orangered: [255,69,0],\r\n orchid: [218,112,214],\r\n palegoldenrod: [238,232,170],\r\n palegreen: [152,251,152],\r\n paleturquoise: [175,238,238],\r\n palevioletred: [219,112,147],\r\n papayawhip: [255,239,213],\r\n peachpuff: [255,218,185],\r\n peru: [205,133,63],\r\n pink: [255,192,203],\r\n plum: [221,160,221],\r\n powderblue: [176,224,230],\r\n purple: [128,0,128],\r\n rebeccapurple: [102, 51, 153],\r\n red: [255,0,0],\r\n rosybrown: [188,143,143],\r\n royalblue: [65,105,225],\r\n saddlebrown: [139,69,19],\r\n salmon: [250,128,114],\r\n sandybrown: [244,164,96],\r\n seagreen: [46,139,87],\r\n seashell: [255,245,238],\r\n sienna: [160,82,45],\r\n silver: [192,192,192],\r\n skyblue: [135,206,235],\r\n slateblue: [106,90,205],\r\n slategray: [112,128,144],\r\n slategrey: [112,128,144],\r\n snow: [255,250,250],\r\n springgreen: [0,255,127],\r\n steelblue: [70,130,180],\r\n tan: [210,180,140],\r\n teal: [0,128,128],\r\n thistle: [216,191,216],\r\n tomato: [255,99,71],\r\n turquoise: [64,224,208],\r\n violet: [238,130,238],\r\n wheat: [245,222,179],\r\n white: [255,255,255],\r\n whitesmoke: [245,245,245],\r\n yellow: [255,255,0],\r\n yellowgreen: [154,205,50]\r\n};\r\n\r\nvar reverseKeywords = {};\r\nfor (var key in cssKeywords) {\r\n reverseKeywords[JSON.stringify(cssKeywords[key])] = key;\r\n}\r\n\r\n},{}],5:[function(require,module,exports){\r\nvar conversions = require(4);\r\n\r\nvar convert = function() {\r\n return new Converter();\r\n}\r\n\r\nfor (var func in conversions) {\r\n // export Raw versions\r\n convert[func + \"Raw\"] = (function(func) {\r\n // accept array or plain args\r\n return function(arg) {\r\n if (typeof arg == \"number\")\r\n arg = Array.prototype.slice.call(arguments);\r\n return conversions[func](arg);\r\n }\r\n })(func);\r\n\r\n var pair = /(\\w+)2(\\w+)/.exec(func),\r\n from = pair[1],\r\n to = pair[2];\r\n\r\n // export rgb2hsl and [\"rgb\"][\"hsl\"]\r\n convert[from] = convert[from] || {};\r\n\r\n convert[from][to] = convert[func] = (function(func) { \r\n return function(arg) {\r\n if (typeof arg == \"number\")\r\n arg = Array.prototype.slice.call(arguments);\r\n \r\n var val = conversions[func](arg);\r\n if (typeof val == \"string\" || val === undefined)\r\n return val; // keyword\r\n\r\n for (var i = 0; i < val.length; i++)\r\n val[i] = Math.round(val[i]);\r\n return val;\r\n }\r\n })(func);\r\n}\r\n\r\n\r\n/* Converter does lazy conversion and caching */\r\nvar Converter = function() {\r\n this.convs = {};\r\n};\r\n\r\n/* Either get the values for a space or\r\n set the values for a space, depending on args */\r\nConverter.prototype.routeSpace = function(space, args) {\r\n var values = args[0];\r\n if (values === undefined) {\r\n // color.rgb()\r\n return this.getValues(space);\r\n }\r\n // color.rgb(10, 10, 10)\r\n if (typeof values == \"number\") {\r\n values = Array.prototype.slice.call(args); \r\n }\r\n\r\n return this.setValues(space, values);\r\n};\r\n \r\n/* Set the values for a space, invalidating cache */\r\nConverter.prototype.setValues = function(space, values) {\r\n this.space = space;\r\n this.convs = {};\r\n this.convs[space] = values;\r\n return this;\r\n};\r\n\r\n/* Get the values for a space. If there's already\r\n a conversion for the space, fetch it, otherwise\r\n compute it */\r\nConverter.prototype.getValues = function(space) {\r\n var vals = this.convs[space];\r\n if (!vals) {\r\n var fspace = this.space,\r\n from = this.convs[fspace];\r\n vals = convert[fspace][space](from);\r\n\r\n this.convs[space] = vals;\r\n }\r\n return vals;\r\n};\r\n\r\n[\"rgb\", \"hsl\", \"hsv\", \"cmyk\", \"keyword\"].forEach(function(space) {\r\n Converter.prototype[space] = function(vals) {\r\n return this.routeSpace(space, arguments);\r\n }\r\n});\r\n\r\nmodule.exports = convert;\r\n},{\"4\":4}],6:[function(require,module,exports){\r\n'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n\r\n},{}],7:[function(require,module,exports){\r\n/**\r\n * @namespace Chart\r\n */\r\nvar Chart = require(30)();\r\n\r\nChart.helpers = require(46);\r\n\r\n// @todo dispatch these helpers into appropriated helpers/helpers.* file and write unit tests!\r\nrequire(28)(Chart);\r\n\r\nChart.Animation = require(22);\r\nChart.animationService = require(23);\r\nChart.defaults = require(26);\r\nChart.Element = require(27);\r\nChart.elements = require(41);\r\nChart.Interaction = require(29);\r\nChart.layouts = require(31);\r\nChart.platform = require(49);\r\nChart.plugins = require(32);\r\nChart.Scale = require(33);\r\nChart.scaleService = require(34);\r\nChart.Ticks = require(35);\r\nChart.Tooltip = require(36);\r\n\r\nrequire(24)(Chart);\r\nrequire(25)(Chart);\r\n\r\nrequire(56)(Chart);\r\nrequire(54)(Chart);\r\nrequire(55)(Chart);\r\nrequire(57)(Chart);\r\nrequire(58)(Chart);\r\nrequire(59)(Chart);\r\n\r\n// Controllers must be loaded after elements\r\n// See Chart.core.datasetController.dataElementType\r\nrequire(15)(Chart);\r\nrequire(16)(Chart);\r\nrequire(17)(Chart);\r\nrequire(18)(Chart);\r\nrequire(19)(Chart);\r\nrequire(20)(Chart);\r\nrequire(21)(Chart);\r\n\r\nrequire(8)(Chart);\r\nrequire(9)(Chart);\r\nrequire(10)(Chart);\r\nrequire(11)(Chart);\r\nrequire(12)(Chart);\r\nrequire(13)(Chart);\r\nrequire(14)(Chart);\r\n\r\n// Loading built-in plugins\r\nvar plugins = require(50);\r\nfor (var k in plugins) {\r\n\tif (plugins.hasOwnProperty(k)) {\r\n\t\tChart.plugins.register(plugins[k]);\r\n\t}\r\n}\r\n\r\nChart.platform.initialize();\r\n\r\nmodule.exports = Chart;\r\nif (typeof window !== 'undefined') {\r\n\twindow.Chart = Chart;\r\n}\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, not available anymore\r\n * @namespace Chart.Legend\r\n * @deprecated since version 2.1.5\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nChart.Legend = plugins.legend._element;\r\n\r\n/**\r\n * Provided for backward compatibility, not available anymore\r\n * @namespace Chart.Title\r\n * @deprecated since version 2.1.5\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nChart.Title = plugins.title._element;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.plugins instead\r\n * @namespace Chart.pluginService\r\n * @deprecated since version 2.1.5\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nChart.pluginService = Chart.plugins;\r\n\r\n/**\r\n * Provided for backward compatibility, inheriting from Chart.PlugingBase has no\r\n * effect, instead simply create/register plugins via plain JavaScript objects.\r\n * @interface Chart.PluginBase\r\n * @deprecated since version 2.5.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nChart.PluginBase = Chart.Element.extend({});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas instead.\r\n * @namespace Chart.canvasHelpers\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nChart.canvasHelpers = Chart.helpers.canvas;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.layouts instead.\r\n * @namespace Chart.layoutService\r\n * @deprecated since version 2.8.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nChart.layoutService = Chart.layouts;\r\n\r\n},{\"10\":10,\"11\":11,\"12\":12,\"13\":13,\"14\":14,\"15\":15,\"16\":16,\"17\":17,\"18\":18,\"19\":19,\"20\":20,\"21\":21,\"22\":22,\"23\":23,\"24\":24,\"25\":25,\"26\":26,\"27\":27,\"28\":28,\"29\":29,\"30\":30,\"31\":31,\"32\":32,\"33\":33,\"34\":34,\"35\":35,\"36\":36,\"41\":41,\"46\":46,\"49\":49,\"50\":50,\"54\":54,\"55\":55,\"56\":56,\"57\":57,\"58\":58,\"59\":59,\"8\":8,\"9\":9}],8:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.Bar = function(context, config) {\r\n\t\tconfig.type = 'bar';\r\n\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n\r\n};\r\n\r\n},{}],9:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.Bubble = function(context, config) {\r\n\t\tconfig.type = 'bubble';\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n\r\n};\r\n\r\n},{}],10:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.Doughnut = function(context, config) {\r\n\t\tconfig.type = 'doughnut';\r\n\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n\r\n};\r\n\r\n},{}],11:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.Line = function(context, config) {\r\n\t\tconfig.type = 'line';\r\n\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n\r\n};\r\n\r\n},{}],12:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.PolarArea = function(context, config) {\r\n\t\tconfig.type = 'polarArea';\r\n\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n\r\n};\r\n\r\n},{}],13:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.Radar = function(context, config) {\r\n\t\tconfig.type = 'radar';\r\n\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n\r\n};\r\n\r\n},{}],14:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\tChart.Scatter = function(context, config) {\r\n\t\tconfig.type = 'scatter';\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n};\r\n\r\n},{}],15:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar elements = require(41);\r\nvar helpers = require(46);\r\n\r\ndefaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\r\n\t\t\t// Specific to Bar Controller\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9,\r\n\r\n\t\t\t// offset settings\r\n\t\t\toffset: true,\r\n\r\n\t\t\t// grid line settings\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ndefaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\tposition: 'left',\r\n\t\t\ttype: 'category',\r\n\r\n\t\t\t// Specific to Horizontal Bar Controller\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9,\r\n\r\n\t\t\t// offset settings\r\n\t\t\toffset: true,\r\n\r\n\t\t\t// grid line settings\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function(item, data) {\r\n\t\t\t\t// Pick first xLabel for now\r\n\t\t\t\tvar title = '';\r\n\r\n\t\t\t\tif (item.length > 0) {\r\n\t\t\t\t\tif (item[0].yLabel) {\r\n\t\t\t\t\t\ttitle = item[0].yLabel;\r\n\t\t\t\t\t} else if (data.labels.length > 0 && item[0].index < data.labels.length) {\r\n\t\t\t\t\t\ttitle = data.labels[item[0].index];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn title;\r\n\t\t\t},\r\n\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\treturn datasetLabel + ': ' + item.xLabel;\r\n\t\t\t}\r\n\t\t},\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale.isHorizontal() ? scale.width : scale.height;\r\n\tvar ticks = scale.getTicks();\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, pixels[i] - pixels[i - 1]);\r\n\t}\r\n\r\n\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, curr - prev) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar size, ratio;\r\n\r\n\tif (helpers.isNullOrUndef(thickness)) {\r\n\t\tsize = ruler.min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale end extremity.\r\n\t\tprev = curr - (next === null ? ruler.end - curr : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - ((curr - prev) / 2) * percent;\r\n\tsize = ((next - prev) / 2) * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.controllers.bar = Chart.DatasetController.extend({\r\n\r\n\t\tdataElementType: elements.Rectangle,\r\n\r\n\t\tinitialize: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta;\r\n\r\n\t\t\tChart.DatasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\t\tmeta = me.getMeta();\r\n\t\t\tmeta.stack = me.getDataset().stack;\r\n\t\t\tmeta.bar = true;\r\n\t\t},\r\n\r\n\t\tupdate: function(reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar rects = me.getMeta().data;\r\n\t\t\tvar i, ilen;\r\n\r\n\t\t\tme._ruler = me.getRuler();\r\n\r\n\t\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tupdateElement: function(rectangle, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar custom = rectangle.custom || {};\r\n\t\t\tvar rectangleOptions = chart.options.elements.rectangle;\r\n\r\n\t\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\trectangle._datasetIndex = me.index;\r\n\t\t\trectangle._index = index;\r\n\r\n\t\t\trectangle._model = {\r\n\t\t\t\tdatasetLabel: dataset.label,\r\n\t\t\t\tlabel: chart.data.labels[index],\r\n\t\t\t\tborderSkipped: custom.borderSkipped ? custom.borderSkipped : rectangleOptions.borderSkipped,\r\n\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, rectangleOptions.backgroundColor),\r\n\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, rectangleOptions.borderColor),\r\n\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, rectangleOptions.borderWidth)\r\n\t\t\t};\r\n\r\n\t\t\tme.updateElementGeometry(rectangle, index, reset);\r\n\r\n\t\t\trectangle.pivot();\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tupdateElementGeometry: function(rectangle, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar model = rectangle._model;\r\n\t\t\tvar vscale = me.getValueScale();\r\n\t\t\tvar base = vscale.getBasePixel();\r\n\t\t\tvar horizontal = vscale.isHorizontal();\r\n\t\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\t\tvar vpixels = me.calculateBarValuePixels(me.index, index);\r\n\t\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler);\r\n\r\n\t\t\tmodel.horizontal = horizontal;\r\n\t\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetValueScaleId: function() {\r\n\t\t\treturn this.getMeta().yAxisID;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetIndexScaleId: function() {\r\n\t\t\treturn this.getMeta().xAxisID;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetValueScale: function() {\r\n\t\t\treturn this.getScaleForId(this.getValueScaleId());\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetIndexScale: function() {\r\n\t\t\treturn this.getScaleForId(this.getIndexScaleId());\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Returns the stacks based on groups and bar visibility.\r\n\t\t * @param {Number} [last] - The dataset index\r\n\t\t * @returns {Array} The stack list\r\n\t\t * @private\r\n\t\t */\r\n\t\t_getStacks: function(last) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar scale = me.getIndexScale();\r\n\t\t\tvar stacked = scale.options.stacked;\r\n\t\t\tvar ilen = last === undefined ? chart.data.datasets.length : last + 1;\r\n\t\t\tvar stacks = [];\r\n\t\t\tvar i, meta;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tif (meta.bar && chart.isDatasetVisible(i) &&\r\n\t\t\t\t\t(stacked === false ||\r\n\t\t\t\t\t(stacked === true && stacks.indexOf(meta.stack) === -1) ||\r\n\t\t\t\t\t(stacked === undefined && (meta.stack === undefined || stacks.indexOf(meta.stack) === -1)))) {\r\n\t\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn stacks;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetStackCount: function() {\r\n\t\t\treturn this._getStacks().length;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t\t * @param {Number} [datasetIndex] - The dataset index\r\n\t\t * @param {String} [name] - The stack name to find\r\n\t\t * @returns {Number} The stack index\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetStackIndex: function(datasetIndex, name) {\r\n\t\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\t\tvar index = (name !== undefined)\r\n\t\t\t\t? stacks.indexOf(name)\r\n\t\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\t\treturn (index === -1)\r\n\t\t\t\t? stacks.length - 1\r\n\t\t\t\t: index;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetRuler: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar scale = me.getIndexScale();\r\n\t\t\tvar stackCount = me.getStackCount();\r\n\t\t\tvar datasetIndex = me.index;\r\n\t\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\t\tvar start = isHorizontal ? scale.left : scale.top;\r\n\t\t\tvar end = start + (isHorizontal ? scale.width : scale.height);\r\n\t\t\tvar pixels = [];\r\n\t\t\tvar i, ilen, min;\r\n\r\n\t\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\t\tpixels.push(scale.getPixelForValue(null, i, datasetIndex));\r\n\t\t\t}\r\n\r\n\t\t\tmin = helpers.isNullOrUndef(scale.options.barThickness)\r\n\t\t\t\t? computeMinSampleSize(scale, pixels)\r\n\t\t\t\t: -1;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tmin: min,\r\n\t\t\t\tpixels: pixels,\r\n\t\t\t\tstart: start,\r\n\t\t\t\tend: end,\r\n\t\t\t\tstackCount: stackCount,\r\n\t\t\t\tscale: scale\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Note: pixel values are not clamped to the scale area.\r\n\t\t * @private\r\n\t\t */\r\n\t\tcalculateBarValuePixels: function(datasetIndex, index) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar scale = me.getValueScale();\r\n\t\t\tvar datasets = chart.data.datasets;\r\n\t\t\tvar value = scale.getRightValue(datasets[datasetIndex].data[index]);\r\n\t\t\tvar stacked = scale.options.stacked;\r\n\t\t\tvar stack = meta.stack;\r\n\t\t\tvar start = 0;\r\n\t\t\tvar i, imeta, ivalue, base, head, size;\r\n\r\n\t\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\t\tfor (i = 0; i < datasetIndex; ++i) {\r\n\t\t\t\t\timeta = chart.getDatasetMeta(i);\r\n\r\n\t\t\t\t\tif (imeta.bar &&\r\n\t\t\t\t\t\timeta.stack === stack &&\r\n\t\t\t\t\t\timeta.controller.getValueScaleId() === scale.id &&\r\n\t\t\t\t\t\tchart.isDatasetVisible(i)) {\r\n\r\n\t\t\t\t\t\tivalue = scale.getRightValue(datasets[i].data[index]);\r\n\t\t\t\t\t\tif ((value < 0 && ivalue < 0) || (value >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tbase = scale.getPixelForValue(start);\r\n\t\t\thead = scale.getPixelForValue(start + value);\r\n\t\t\tsize = (head - base) / 2;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tsize: size,\r\n\t\t\t\tbase: base,\r\n\t\t\t\thead: head,\r\n\t\t\t\tcenter: head + size / 2\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tcalculateBarIndexPixels: function(datasetIndex, index, ruler) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = ruler.scale.options;\r\n\t\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\t\tvar size = Math.min(\r\n\t\t\t\thelpers.valueOrDefault(options.maxBarThickness, Infinity),\r\n\t\t\t\trange.chunk * range.ratio);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tbase: center - size / 2,\r\n\t\t\t\thead: center + size / 2,\r\n\t\t\t\tcenter: center,\r\n\t\t\t\tsize: size\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\tdraw: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar scale = me.getValueScale();\r\n\t\t\tvar rects = me.getMeta().data;\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar ilen = rects.length;\r\n\t\t\tvar i = 0;\r\n\r\n\t\t\thelpers.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\t\tfor (; i < ilen; ++i) {\r\n\t\t\t\tif (!isNaN(scale.getRightValue(dataset.data[i]))) {\r\n\t\t\t\t\trects[i].draw();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\thelpers.canvas.unclipArea(chart.ctx);\r\n\t\t},\r\n\t});\r\n\r\n\tChart.controllers.horizontalBar = Chart.controllers.bar.extend({\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetValueScaleId: function() {\r\n\t\t\treturn this.getMeta().xAxisID;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetIndexScaleId: function() {\r\n\t\t\treturn this.getMeta().yAxisID;\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"26\":26,\"41\":41,\"46\":46}],16:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar elements = require(41);\r\nvar helpers = require(46);\r\n\r\ndefaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.controllers.bubble = Chart.DatasetController.extend({\r\n\t\t/**\r\n\t\t * @protected\r\n\t\t */\r\n\t\tdataElementType: elements.Point,\r\n\r\n\t\t/**\r\n\t\t * @protected\r\n\t\t */\r\n\t\tupdate: function(reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar points = meta.data;\r\n\r\n\t\t\t// Update Points\r\n\t\t\thelpers.each(points, function(point, index) {\r\n\t\t\t\tme.updateElement(point, index, reset);\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @protected\r\n\t\t */\r\n\t\tupdateElement: function(point, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\tvar options = me._resolveElementOptions(point, index);\r\n\t\t\tvar data = me.getDataset().data[index];\r\n\t\t\tvar dsIndex = me.index;\r\n\r\n\t\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\t\tpoint._xScale = xScale;\r\n\t\t\tpoint._yScale = yScale;\r\n\t\t\tpoint._options = options;\r\n\t\t\tpoint._datasetIndex = dsIndex;\r\n\t\t\tpoint._index = index;\r\n\t\t\tpoint._model = {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\thitRadius: options.hitRadius,\r\n\t\t\t\tpointStyle: options.pointStyle,\r\n\t\t\t\trotation: options.rotation,\r\n\t\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t\tx: x,\r\n\t\t\t\ty: y,\r\n\t\t\t};\r\n\r\n\t\t\tpoint.pivot();\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @protected\r\n\t\t */\r\n\t\tsetHoverStyle: function(point) {\r\n\t\t\tvar model = point._model;\r\n\t\t\tvar options = point._options;\r\n\t\t\tpoint.$previousStyle = {\r\n\t\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\t\tborderColor: model.borderColor,\r\n\t\t\t\tborderWidth: model.borderWidth,\r\n\t\t\t\tradius: model.radius\r\n\t\t\t};\r\n\t\t\tmodel.backgroundColor = helpers.valueOrDefault(options.hoverBackgroundColor, helpers.getHoverColor(options.backgroundColor));\r\n\t\t\tmodel.borderColor = helpers.valueOrDefault(options.hoverBorderColor, helpers.getHoverColor(options.borderColor));\r\n\t\t\tmodel.borderWidth = helpers.valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\t_resolveElementOptions: function(point, index) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar datasets = chart.data.datasets;\r\n\t\t\tvar dataset = datasets[me.index];\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar options = chart.options.elements.point;\r\n\t\t\tvar resolve = helpers.options.resolve;\r\n\t\t\tvar data = dataset.data[index];\r\n\t\t\tvar values = {};\r\n\t\t\tvar i, ilen, key;\r\n\r\n\t\t\t// Scriptable options\r\n\t\t\tvar context = {\r\n\t\t\t\tchart: chart,\r\n\t\t\t\tdataIndex: index,\r\n\t\t\t\tdataset: dataset,\r\n\t\t\t\tdatasetIndex: me.index\r\n\t\t\t};\r\n\r\n\t\t\tvar keys = [\r\n\t\t\t\t'backgroundColor',\r\n\t\t\t\t'borderColor',\r\n\t\t\t\t'borderWidth',\r\n\t\t\t\t'hoverBackgroundColor',\r\n\t\t\t\t'hoverBorderColor',\r\n\t\t\t\t'hoverBorderWidth',\r\n\t\t\t\t'hoverRadius',\r\n\t\t\t\t'hitRadius',\r\n\t\t\t\t'pointStyle',\r\n\t\t\t\t'rotation'\r\n\t\t\t];\r\n\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdataset[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index);\r\n\t\t\t}\r\n\r\n\t\t\t// Custom radius resolution\r\n\t\t\tvalues.radius = resolve([\r\n\t\t\t\tcustom.radius,\r\n\t\t\t\tdata ? data.r : undefined,\r\n\t\t\t\tdataset.radius,\r\n\t\t\t\toptions.radius\r\n\t\t\t], context, index);\r\n\t\t\treturn values;\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"26\":26,\"41\":41,\"46\":46}],17:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar elements = require(41);\r\nvar helpers = require(46);\r\n\r\ndefaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar text = [];\r\n\t\ttext.push('<ul class=\"' + chart.id + '-legend\">');\r\n\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (var i = 0; i < datasets[0].data.length; ++i) {\r\n\t\t\t\ttext.push('<li><span style=\"background-color:' + datasets[0].backgroundColor[i] + '\"></span>');\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\ttext.push(labels[i]);\r\n\t\t\t\t}\r\n\t\t\t\ttext.push('</li>');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttext.push('</ul>');\r\n\t\treturn text.join('');\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar ds = data.datasets[0];\r\n\t\t\t\t\t\tvar arc = meta.data[i];\r\n\t\t\t\t\t\tvar custom = arc && arc.custom || {};\r\n\t\t\t\t\t\tvar valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\r\n\t\t\t\t\t\tvar arcOpts = chart.options.elements.arc;\r\n\t\t\t\t\t\tvar fill = custom.backgroundColor ? custom.backgroundColor : valueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\r\n\t\t\t\t\t\tvar stroke = custom.borderColor ? custom.borderColor : valueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\r\n\t\t\t\t\t\tvar bw = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: fill,\r\n\t\t\t\t\t\t\tstrokeStyle: stroke,\r\n\t\t\t\t\t\t\tlineWidth: bw,\r\n\t\t\t\t\t\t\thidden: isNaN(ds.data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: Math.PI * -0.5,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: Math.PI * 2.0,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ndefaults._set('pie', helpers.clone(defaults.doughnut));\r\ndefaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.controllers.doughnut = Chart.controllers.pie = Chart.DatasetController.extend({\r\n\r\n\t\tdataElementType: elements.Arc,\r\n\r\n\t\tlinkScales: helpers.noop,\r\n\r\n\t\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\t\tgetRingIndex: function(datasetIndex) {\r\n\t\t\tvar ringIndex = 0;\r\n\r\n\t\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t\t++ringIndex;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn ringIndex;\r\n\t\t},\r\n\r\n\t\tupdate: function(reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar chartArea = chart.chartArea;\r\n\t\t\tvar opts = chart.options;\r\n\t\t\tvar arcOpts = opts.elements.arc;\r\n\t\t\tvar availableWidth = chartArea.right - chartArea.left - arcOpts.borderWidth;\r\n\t\t\tvar availableHeight = chartArea.bottom - chartArea.top - arcOpts.borderWidth;\r\n\t\t\tvar minSize = Math.min(availableWidth, availableHeight);\r\n\t\t\tvar offset = {x: 0, y: 0};\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar cutoutPercentage = opts.cutoutPercentage;\r\n\t\t\tvar circumference = opts.circumference;\r\n\r\n\t\t\t// If the chart's circumference isn't a full circle, calculate minSize as a ratio of the width/height of the arc\r\n\t\t\tif (circumference < Math.PI * 2.0) {\r\n\t\t\t\tvar startAngle = opts.rotation % (Math.PI * 2.0);\r\n\t\t\t\tstartAngle += Math.PI * 2.0 * (startAngle >= Math.PI ? -1 : startAngle < -Math.PI ? 1 : 0);\r\n\t\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\t\tvar start = {x: Math.cos(startAngle), y: Math.sin(startAngle)};\r\n\t\t\t\tvar end = {x: Math.cos(endAngle), y: Math.sin(endAngle)};\r\n\t\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || (startAngle <= Math.PI * 2.0 && Math.PI * 2.0 <= endAngle);\r\n\t\t\t\tvar contains90 = (startAngle <= Math.PI * 0.5 && Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 2.5 && Math.PI * 2.5 <= endAngle);\r\n\t\t\t\tvar contains180 = (startAngle <= -Math.PI && -Math.PI <= endAngle) || (startAngle <= Math.PI && Math.PI <= endAngle);\r\n\t\t\t\tvar contains270 = (startAngle <= -Math.PI * 0.5 && -Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 1.5 && Math.PI * 1.5 <= endAngle);\r\n\t\t\t\tvar cutout = cutoutPercentage / 100.0;\r\n\t\t\t\tvar min = {x: contains180 ? -1 : Math.min(start.x * (start.x < 0 ? 1 : cutout), end.x * (end.x < 0 ? 1 : cutout)), y: contains270 ? -1 : Math.min(start.y * (start.y < 0 ? 1 : cutout), end.y * (end.y < 0 ? 1 : cutout))};\r\n\t\t\t\tvar max = {x: contains0 ? 1 : Math.max(start.x * (start.x > 0 ? 1 : cutout), end.x * (end.x > 0 ? 1 : cutout)), y: contains90 ? 1 : Math.max(start.y * (start.y > 0 ? 1 : cutout), end.y * (end.y > 0 ? 1 : cutout))};\r\n\t\t\t\tvar size = {width: (max.x - min.x) * 0.5, height: (max.y - min.y) * 0.5};\r\n\t\t\t\tminSize = Math.min(availableWidth / size.width, availableHeight / size.height);\r\n\t\t\t\toffset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5};\r\n\t\t\t}\r\n\r\n\t\t\tchart.borderWidth = me.getMaxBorderWidth(meta.data);\r\n\t\t\tchart.outerRadius = Math.max((minSize - chart.borderWidth) / 2, 0);\r\n\t\t\tchart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 0, 0);\r\n\t\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\t\t\tchart.offsetX = offset.x * chart.outerRadius;\r\n\t\t\tchart.offsetY = offset.y * chart.outerRadius;\r\n\r\n\t\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.getRingIndex(me.index));\r\n\t\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength, 0);\r\n\r\n\t\t\thelpers.each(meta.data, function(arc, index) {\r\n\t\t\t\tme.updateElement(arc, index, reset);\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tupdateElement: function(arc, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar chartArea = chart.chartArea;\r\n\t\t\tvar opts = chart.options;\r\n\t\t\tvar animationOpts = opts.animation;\r\n\t\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / (2.0 * Math.PI));\r\n\t\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\t\tvar valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\r\n\r\n\t\t\thelpers.extend(arc, {\r\n\t\t\t\t// Utility\r\n\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t_index: index,\r\n\r\n\t\t\t\t// Desired view properties\r\n\t\t\t\t_model: {\r\n\t\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\t\tendAngle: endAngle,\r\n\t\t\t\t\tcircumference: circumference,\r\n\t\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\t\tlabel: valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tvar model = arc._model;\r\n\r\n\t\t\t// Resets the visual styles\r\n\t\t\tvar custom = arc.custom || {};\r\n\t\t\tvar valueOrDefault = helpers.valueAtIndexOrDefault;\r\n\t\t\tvar elementOpts = this.chart.options.elements.arc;\r\n\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor);\r\n\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor);\r\n\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth);\r\n\r\n\t\t\t// Set correct angles if not resetting\r\n\t\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\t\tif (index === 0) {\r\n\t\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t\t}\r\n\r\n\t\t\tarc.pivot();\r\n\t\t},\r\n\r\n\t\tcalculateTotal: function() {\r\n\t\t\tvar dataset = this.getDataset();\r\n\t\t\tvar meta = this.getMeta();\r\n\t\t\tvar total = 0;\r\n\t\t\tvar value;\r\n\r\n\t\t\thelpers.each(meta.data, function(element, index) {\r\n\t\t\t\tvalue = dataset.data[index];\r\n\t\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t/* if (total === 0) {\r\n\t\t\t\ttotal = NaN;\r\n\t\t\t}*/\r\n\r\n\t\t\treturn total;\r\n\t\t},\r\n\r\n\t\tcalculateCircumference: function(value) {\r\n\t\t\tvar total = this.getMeta().total;\r\n\t\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\t\treturn (Math.PI * 2.0) * (Math.abs(value) / total);\r\n\t\t\t}\r\n\t\t\treturn 0;\r\n\t\t},\r\n\r\n\t\t// gets the max border or hover width to properly scale pie charts\r\n\t\tgetMaxBorderWidth: function(arcs) {\r\n\t\t\tvar max = 0;\r\n\t\t\tvar index = this.index;\r\n\t\t\tvar length = arcs.length;\r\n\t\t\tvar borderWidth;\r\n\t\t\tvar hoverWidth;\r\n\r\n\t\t\tfor (var i = 0; i < length; i++) {\r\n\t\t\t\tborderWidth = arcs[i]._model ? arcs[i]._model.borderWidth : 0;\r\n\t\t\t\thoverWidth = arcs[i]._chart ? arcs[i]._chart.config.data.datasets[index].hoverBorderWidth : 0;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t\treturn max;\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"26\":26,\"41\":41,\"46\":46}],18:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar elements = require(41);\r\nvar helpers = require(46);\r\n\r\ndefaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tfunction lineEnabled(dataset, options) {\r\n\t\treturn helpers.valueOrDefault(dataset.showLine, options.showLines);\r\n\t}\r\n\r\n\tChart.controllers.line = Chart.DatasetController.extend({\r\n\r\n\t\tdatasetElementType: elements.Line,\r\n\r\n\t\tdataElementType: elements.Point,\r\n\r\n\t\tupdate: function(reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar line = meta.dataset;\r\n\t\t\tvar points = meta.data || [];\r\n\t\t\tvar options = me.chart.options;\r\n\t\t\tvar lineElementOptions = options.elements.line;\r\n\t\t\tvar scale = me.getScaleForId(meta.yAxisID);\r\n\t\t\tvar i, ilen, custom;\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar showLine = lineEnabled(dataset, options);\r\n\r\n\t\t\t// Update Line\r\n\t\t\tif (showLine) {\r\n\t\t\t\tcustom = line.custom || {};\r\n\r\n\t\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\r\n\t\t\t\t\tdataset.lineTension = dataset.tension;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Utility\r\n\t\t\t\tline._scale = scale;\r\n\t\t\t\tline._datasetIndex = me.index;\r\n\t\t\t\t// Data\r\n\t\t\t\tline._children = points;\r\n\t\t\t\t// Model\r\n\t\t\t\tline._model = {\r\n\t\t\t\t\t// Appearance\r\n\t\t\t\t\t// The default behavior of lines is to break at null values, according\r\n\t\t\t\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t\t\t\t// This option gives lines the ability to span gaps\r\n\t\t\t\t\tspanGaps: dataset.spanGaps ? dataset.spanGaps : options.spanGaps,\r\n\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, lineElementOptions.tension),\r\n\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\r\n\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\r\n\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\r\n\t\t\t\t\tborderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\r\n\t\t\t\t\tborderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\r\n\t\t\t\t\tborderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\r\n\t\t\t\t\tborderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\r\n\t\t\t\t\tfill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\r\n\t\t\t\t\tsteppedLine: custom.steppedLine ? custom.steppedLine : helpers.valueOrDefault(dataset.steppedLine, lineElementOptions.stepped),\r\n\t\t\t\t\tcubicInterpolationMode: custom.cubicInterpolationMode ? custom.cubicInterpolationMode : helpers.valueOrDefault(dataset.cubicInterpolationMode, lineElementOptions.cubicInterpolationMode),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tline.pivot();\r\n\t\t\t}\r\n\r\n\t\t\t// Update Points\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t\t}\r\n\r\n\t\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\t\tme.updateBezierControlPoints();\r\n\t\t\t}\r\n\r\n\t\t\t// Now pivot the point for animation\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tpoints[i].pivot();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tgetPointBackgroundColor: function(point, index) {\r\n\t\t\tvar backgroundColor = this.chart.options.elements.point.backgroundColor;\r\n\t\t\tvar dataset = this.getDataset();\r\n\t\t\tvar custom = point.custom || {};\r\n\r\n\t\t\tif (custom.backgroundColor) {\r\n\t\t\t\tbackgroundColor = custom.backgroundColor;\r\n\t\t\t} else if (dataset.pointBackgroundColor) {\r\n\t\t\t\tbackgroundColor = helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, backgroundColor);\r\n\t\t\t} else if (dataset.backgroundColor) {\r\n\t\t\t\tbackgroundColor = dataset.backgroundColor;\r\n\t\t\t}\r\n\r\n\t\t\treturn backgroundColor;\r\n\t\t},\r\n\r\n\t\tgetPointBorderColor: function(point, index) {\r\n\t\t\tvar borderColor = this.chart.options.elements.point.borderColor;\r\n\t\t\tvar dataset = this.getDataset();\r\n\t\t\tvar custom = point.custom || {};\r\n\r\n\t\t\tif (custom.borderColor) {\r\n\t\t\t\tborderColor = custom.borderColor;\r\n\t\t\t} else if (dataset.pointBorderColor) {\r\n\t\t\t\tborderColor = helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, borderColor);\r\n\t\t\t} else if (dataset.borderColor) {\r\n\t\t\t\tborderColor = dataset.borderColor;\r\n\t\t\t}\r\n\r\n\t\t\treturn borderColor;\r\n\t\t},\r\n\r\n\t\tgetPointBorderWidth: function(point, index) {\r\n\t\t\tvar borderWidth = this.chart.options.elements.point.borderWidth;\r\n\t\t\tvar dataset = this.getDataset();\r\n\t\t\tvar custom = point.custom || {};\r\n\r\n\t\t\tif (!isNaN(custom.borderWidth)) {\r\n\t\t\t\tborderWidth = custom.borderWidth;\r\n\t\t\t} else if (!isNaN(dataset.pointBorderWidth) || helpers.isArray(dataset.pointBorderWidth)) {\r\n\t\t\t\tborderWidth = helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, borderWidth);\r\n\t\t\t} else if (!isNaN(dataset.borderWidth)) {\r\n\t\t\t\tborderWidth = dataset.borderWidth;\r\n\t\t\t}\r\n\r\n\t\t\treturn borderWidth;\r\n\t\t},\r\n\r\n\t\tgetPointRotation: function(point, index) {\r\n\t\t\tvar pointRotation = this.chart.options.elements.point.rotation;\r\n\t\t\tvar dataset = this.getDataset();\r\n\t\t\tvar custom = point.custom || {};\r\n\r\n\t\t\tif (!isNaN(custom.rotation)) {\r\n\t\t\t\tpointRotation = custom.rotation;\r\n\t\t\t} else if (!isNaN(dataset.pointRotation) || helpers.isArray(dataset.pointRotation)) {\r\n\t\t\t\tpointRotation = helpers.valueAtIndexOrDefault(dataset.pointRotation, index, pointRotation);\r\n\t\t\t}\r\n\t\t\treturn pointRotation;\r\n\t\t},\r\n\r\n\t\tupdateElement: function(point, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar datasetIndex = me.index;\r\n\t\t\tvar value = dataset.data[index];\r\n\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\tvar pointOptions = me.chart.options.elements.point;\r\n\t\t\tvar x, y;\r\n\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\r\n\t\t\t\tdataset.pointRadius = dataset.radius;\r\n\t\t\t}\r\n\t\t\tif ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) {\r\n\t\t\t\tdataset.pointHitRadius = dataset.hitRadius;\r\n\t\t\t}\r\n\r\n\t\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t\t// Utility\r\n\t\t\tpoint._xScale = xScale;\r\n\t\t\tpoint._yScale = yScale;\r\n\t\t\tpoint._datasetIndex = datasetIndex;\r\n\t\t\tpoint._index = index;\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\tpoint._model = {\r\n\t\t\t\tx: x,\r\n\t\t\t\ty: y,\r\n\t\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t\t// Appearance\r\n\t\t\t\tradius: custom.radius || helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointOptions.radius),\r\n\t\t\t\tpointStyle: custom.pointStyle || helpers.valueAtIndexOrDefault(dataset.pointStyle, index, pointOptions.pointStyle),\r\n\t\t\t\trotation: me.getPointRotation(point, index),\r\n\t\t\t\tbackgroundColor: me.getPointBackgroundColor(point, index),\r\n\t\t\t\tborderColor: me.getPointBorderColor(point, index),\r\n\t\t\t\tborderWidth: me.getPointBorderWidth(point, index),\r\n\t\t\t\ttension: meta.dataset._model ? meta.dataset._model.tension : 0,\r\n\t\t\t\tsteppedLine: meta.dataset._model ? meta.dataset._model.steppedLine : false,\r\n\t\t\t\t// Tooltip\r\n\t\t\t\thitRadius: custom.hitRadius || helpers.valueAtIndexOrDefault(dataset.pointHitRadius, index, pointOptions.hitRadius)\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\tvar sumPos = 0;\r\n\t\t\tvar sumNeg = 0;\r\n\t\t\tvar i, ds, dsMeta;\r\n\r\n\t\t\tif (yScale.options.stacked) {\r\n\t\t\t\tfor (i = 0; i < datasetIndex; i++) {\r\n\t\t\t\t\tds = chart.data.datasets[i];\r\n\t\t\t\t\tdsMeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id && chart.isDatasetVisible(i)) {\r\n\t\t\t\t\t\tvar stackedRightValue = Number(yScale.getRightValue(ds.data[index]));\r\n\t\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar rightValue = Number(yScale.getRightValue(value));\r\n\t\t\t\tif (rightValue < 0) {\r\n\t\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t\t}\r\n\t\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t\t}\r\n\r\n\t\t\treturn yScale.getPixelForValue(value);\r\n\t\t},\r\n\r\n\t\tupdateBezierControlPoints: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar area = me.chart.chartArea;\r\n\t\t\tvar points = (meta.data || []);\r\n\t\t\tvar i, ilen, point, model, controlPoints;\r\n\r\n\t\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\t\treturn !pt._model.skip;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t\t}\r\n\r\n\t\t\tif (meta.dataset._model.cubicInterpolationMode === 'monotone') {\r\n\t\t\t\thelpers.splineCurveMonotone(points);\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\t\tpoint = points[i];\r\n\t\t\t\t\tmodel = point._model;\r\n\t\t\t\t\tcontrolPoints = helpers.splineCurve(\r\n\t\t\t\t\t\thelpers.previousItem(points, i)._model,\r\n\t\t\t\t\t\tmodel,\r\n\t\t\t\t\t\thelpers.nextItem(points, i)._model,\r\n\t\t\t\t\t\tmeta.dataset._model.tension\r\n\t\t\t\t\t);\r\n\t\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (me.chart.options.elements.line.capBezierPoints) {\r\n\t\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tdraw: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar points = meta.data || [];\r\n\t\t\tvar area = chart.chartArea;\r\n\t\t\tvar ilen = points.length;\r\n\t\t\tvar halfBorderWidth;\r\n\t\t\tvar i = 0;\r\n\r\n\t\t\tif (lineEnabled(me.getDataset(), chart.options)) {\r\n\t\t\t\thalfBorderWidth = (meta.dataset._model.borderWidth || 0) / 2;\r\n\r\n\t\t\t\thelpers.canvas.clipArea(chart.ctx, {\r\n\t\t\t\t\tleft: area.left,\r\n\t\t\t\t\tright: area.right,\r\n\t\t\t\t\ttop: area.top - halfBorderWidth,\r\n\t\t\t\t\tbottom: area.bottom + halfBorderWidth\r\n\t\t\t\t});\r\n\r\n\t\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\t\thelpers.canvas.unclipArea(chart.ctx);\r\n\t\t\t}\r\n\r\n\t\t\t// Draw the points\r\n\t\t\tfor (; i < ilen; ++i) {\r\n\t\t\t\tpoints[i].draw(area);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsetHoverStyle: function(element) {\r\n\t\t\t// Point\r\n\t\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\t\tvar index = element._index;\r\n\t\t\tvar custom = element.custom || {};\r\n\t\t\tvar model = element._model;\r\n\r\n\t\t\telement.$previousStyle = {\r\n\t\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\t\tborderColor: model.borderColor,\r\n\t\t\t\tborderWidth: model.borderWidth,\r\n\t\t\t\tradius: model.radius\r\n\t\t\t};\r\n\r\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\r\n\t\t\tmodel.borderColor = custom.hoverBorderColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\r\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\r\n\t\t\tmodel.radius = custom.hoverRadius || helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\r\n\t\t},\r\n\t});\r\n};\r\n\r\n},{\"26\":26,\"41\":41,\"46\":46}],19:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar elements = require(41);\r\nvar helpers = require(46);\r\n\r\ndefaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar text = [];\r\n\t\ttext.push('<ul class=\"' + chart.id + '-legend\">');\r\n\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (var i = 0; i < datasets[0].data.length; ++i) {\r\n\t\t\t\ttext.push('<li><span style=\"background-color:' + datasets[0].backgroundColor[i] + '\"></span>');\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\ttext.push(labels[i]);\r\n\t\t\t\t}\r\n\t\t\t\ttext.push('</li>');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttext.push('</ul>');\r\n\t\treturn text.join('');\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar ds = data.datasets[0];\r\n\t\t\t\t\t\tvar arc = meta.data[i];\r\n\t\t\t\t\t\tvar custom = arc.custom || {};\r\n\t\t\t\t\t\tvar valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\r\n\t\t\t\t\t\tvar arcOpts = chart.options.elements.arc;\r\n\t\t\t\t\t\tvar fill = custom.backgroundColor ? custom.backgroundColor : valueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\r\n\t\t\t\t\t\tvar stroke = custom.borderColor ? custom.borderColor : valueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\r\n\t\t\t\t\t\tvar bw = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: fill,\r\n\t\t\t\t\t\t\tstrokeStyle: stroke,\r\n\t\t\t\t\t\t\tlineWidth: bw,\r\n\t\t\t\t\t\t\thidden: isNaN(ds.data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.controllers.polarArea = Chart.DatasetController.extend({\r\n\r\n\t\tdataElementType: elements.Arc,\r\n\r\n\t\tlinkScales: helpers.noop,\r\n\r\n\t\tupdate: function(reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\t\tvar starts = me._starts = [];\r\n\t\t\tvar angles = me._angles = [];\r\n\t\t\tvar i, ilen, angle;\r\n\r\n\t\t\tme._updateRadius();\r\n\r\n\t\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\t\tstarts[i] = start;\r\n\t\t\t\tangle = me._computeAngle(i);\r\n\t\t\t\tangles[i] = angle;\r\n\t\t\t\tstart += angle;\r\n\t\t\t}\r\n\r\n\t\t\thelpers.each(meta.data, function(arc, index) {\r\n\t\t\t\tme.updateElement(arc, index, reset);\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\t_updateRadius: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar chartArea = chart.chartArea;\r\n\t\t\tvar opts = chart.options;\r\n\t\t\tvar arcOpts = opts.elements.arc;\r\n\t\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\t\tchart.outerRadius = Math.max((minSize - arcOpts.borderWidth / 2) / 2, 0);\r\n\t\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t\t},\r\n\r\n\t\tupdateElement: function(arc, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar opts = chart.options;\r\n\t\t\tvar animationOpts = opts.animation;\r\n\t\t\tvar scale = chart.scale;\r\n\t\t\tvar labels = chart.data.labels;\r\n\r\n\t\t\tvar centerX = scale.xCenter;\r\n\t\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\t\tvar startAngle = me._starts[index];\r\n\t\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\r\n\t\t\thelpers.extend(arc, {\r\n\t\t\t\t// Utility\r\n\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t_index: index,\r\n\t\t\t\t_scale: scale,\r\n\r\n\t\t\t\t// Desired view properties\r\n\t\t\t\t_model: {\r\n\t\t\t\t\tx: centerX,\r\n\t\t\t\t\ty: centerY,\r\n\t\t\t\t\tinnerRadius: 0,\r\n\t\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\t\tlabel: helpers.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Apply border and fill style\r\n\t\t\tvar elementOpts = this.chart.options.elements.arc;\r\n\t\t\tvar custom = arc.custom || {};\r\n\t\t\tvar valueOrDefault = helpers.valueAtIndexOrDefault;\r\n\t\t\tvar model = arc._model;\r\n\r\n\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor);\r\n\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor);\r\n\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth);\r\n\r\n\t\t\tarc.pivot();\r\n\t\t},\r\n\r\n\t\tcountVisibleElements: function() {\r\n\t\t\tvar dataset = this.getDataset();\r\n\t\t\tvar meta = this.getMeta();\r\n\t\t\tvar count = 0;\r\n\r\n\t\t\thelpers.each(meta.data, function(element, index) {\r\n\t\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\t\tcount++;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn count;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\t_computeAngle: function(index) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar count = this.getMeta().count;\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar meta = me.getMeta();\r\n\r\n\t\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\r\n\t\t\t// Scriptable options\r\n\t\t\tvar context = {\r\n\t\t\t\tchart: me.chart,\r\n\t\t\t\tdataIndex: index,\r\n\t\t\t\tdataset: dataset,\r\n\t\t\t\tdatasetIndex: me.index\r\n\t\t\t};\r\n\r\n\t\t\treturn helpers.options.resolve([\r\n\t\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t\t(2 * Math.PI) / count\r\n\t\t\t], context, index);\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"26\":26,\"41\":41,\"46\":46}],20:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar elements = require(41);\r\nvar helpers = require(46);\r\n\r\ndefaults._set('radar', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.controllers.radar = Chart.DatasetController.extend({\r\n\r\n\t\tdatasetElementType: elements.Line,\r\n\r\n\t\tdataElementType: elements.Point,\r\n\r\n\t\tlinkScales: helpers.noop,\r\n\r\n\t\tupdate: function(reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar line = meta.dataset;\r\n\t\t\tvar points = meta.data;\r\n\t\t\tvar custom = line.custom || {};\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar lineElementOptions = me.chart.options.elements.line;\r\n\t\t\tvar scale = me.chart.scale;\r\n\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\r\n\t\t\t\tdataset.lineTension = dataset.tension;\r\n\t\t\t}\r\n\r\n\t\t\thelpers.extend(meta.dataset, {\r\n\t\t\t\t// Utility\r\n\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t_scale: scale,\r\n\t\t\t\t// Data\r\n\t\t\t\t_children: points,\r\n\t\t\t\t_loop: true,\r\n\t\t\t\t// Model\r\n\t\t\t\t_model: {\r\n\t\t\t\t\t// Appearance\r\n\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, lineElementOptions.tension),\r\n\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\r\n\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\r\n\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\r\n\t\t\t\t\tfill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\r\n\t\t\t\t\tborderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\r\n\t\t\t\t\tborderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\r\n\t\t\t\t\tborderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\r\n\t\t\t\t\tborderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.pivot();\r\n\r\n\t\t\t// Update Points\r\n\t\t\thelpers.each(points, function(point, index) {\r\n\t\t\t\tme.updateElement(point, index, reset);\r\n\t\t\t}, me);\r\n\r\n\t\t\t// Update bezier control points\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t},\r\n\t\tupdateElement: function(point, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar scale = me.chart.scale;\r\n\t\t\tvar pointElementOptions = me.chart.options.elements.point;\r\n\t\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\r\n\t\t\t\tdataset.pointRadius = dataset.radius;\r\n\t\t\t}\r\n\t\t\tif ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) {\r\n\t\t\t\tdataset.pointHitRadius = dataset.hitRadius;\r\n\t\t\t}\r\n\r\n\t\t\thelpers.extend(point, {\r\n\t\t\t\t// Utility\r\n\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t_index: index,\r\n\t\t\t\t_scale: scale,\r\n\r\n\t\t\t\t// Desired view properties\r\n\t\t\t\t_model: {\r\n\t\t\t\t\tx: reset ? scale.xCenter : pointPosition.x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\t\t\ty: reset ? scale.yCenter : pointPosition.y,\r\n\r\n\t\t\t\t\t// Appearance\r\n\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, me.chart.options.elements.line.tension),\r\n\t\t\t\t\tradius: custom.radius ? custom.radius : helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointElementOptions.radius),\r\n\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor),\r\n\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor),\r\n\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth),\r\n\t\t\t\t\tpointStyle: custom.pointStyle ? custom.pointStyle : helpers.valueAtIndexOrDefault(dataset.pointStyle, index, pointElementOptions.pointStyle),\r\n\t\t\t\t\trotation: custom.rotation ? custom.rotation : helpers.valueAtIndexOrDefault(dataset.pointRotation, index, pointElementOptions.rotation),\r\n\r\n\t\t\t\t\t// Tooltip\r\n\t\t\t\t\thitRadius: custom.hitRadius ? custom.hitRadius : helpers.valueAtIndexOrDefault(dataset.pointHitRadius, index, pointElementOptions.hitRadius)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tpoint._model.skip = custom.skip ? custom.skip : (isNaN(point._model.x) || isNaN(point._model.y));\r\n\t\t},\r\n\t\tupdateBezierControlPoints: function() {\r\n\t\t\tvar chartArea = this.chart.chartArea;\r\n\t\t\tvar meta = this.getMeta();\r\n\r\n\t\t\thelpers.each(meta.data, function(point, index) {\r\n\t\t\t\tvar model = point._model;\r\n\t\t\t\tvar controlPoints = helpers.splineCurve(\r\n\t\t\t\t\thelpers.previousItem(meta.data, index, true)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers.nextItem(meta.data, index, true)._model,\r\n\t\t\t\t\tmodel.tension\r\n\t\t\t\t);\r\n\r\n\t\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\t\tmodel.controlPointPreviousX = Math.max(Math.min(controlPoints.previous.x, chartArea.right), chartArea.left);\r\n\t\t\t\tmodel.controlPointPreviousY = Math.max(Math.min(controlPoints.previous.y, chartArea.bottom), chartArea.top);\r\n\r\n\t\t\t\tmodel.controlPointNextX = Math.max(Math.min(controlPoints.next.x, chartArea.right), chartArea.left);\r\n\t\t\t\tmodel.controlPointNextY = Math.max(Math.min(controlPoints.next.y, chartArea.bottom), chartArea.top);\r\n\r\n\t\t\t\t// Now pivot the point for animation\r\n\t\t\t\tpoint.pivot();\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tsetHoverStyle: function(point) {\r\n\t\t\t// Point\r\n\t\t\tvar dataset = this.chart.data.datasets[point._datasetIndex];\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar index = point._index;\r\n\t\t\tvar model = point._model;\r\n\r\n\t\t\tpoint.$previousStyle = {\r\n\t\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\t\tborderColor: model.borderColor,\r\n\t\t\t\tborderWidth: model.borderWidth,\r\n\t\t\t\tradius: model.radius\r\n\t\t\t};\r\n\r\n\t\t\tmodel.radius = custom.hoverRadius ? custom.hoverRadius : helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\r\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\r\n\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\r\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\r\n\t\t},\r\n\t});\r\n};\r\n\r\n},{\"26\":26,\"41\":41,\"46\":46}],21:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\n\r\ndefaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\tshowLines: false,\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\t// Scatter charts use line controllers\r\n\tChart.controllers.scatter = Chart.controllers.line;\r\n\r\n};\r\n\r\n},{\"26\":26}],22:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar Element = require(27);\r\n\r\nvar exports = module.exports = Element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\r\n\r\n},{\"27\":27}],23:[function(require,module,exports){\r\n/* global window: false */\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar helpers = require(46);\r\n\r\ndefaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers.noop,\r\n\t\tonComplete: helpers.noop\r\n\t}\r\n});\r\n\r\nmodule.exports = {\r\n\tframeDuration: 17,\r\n\tanimations: [],\r\n\tdropFrames: 0,\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {Number} duration - The animation duration in ms.\r\n\t * @param {Boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\t\tvar startTime = Date.now();\r\n\t\tvar framesToDrop = 0;\r\n\r\n\t\tif (me.dropFrames > 1) {\r\n\t\t\tframesToDrop = Math.floor(me.dropFrames);\r\n\t\t\tme.dropFrames = me.dropFrames % 1;\r\n\t\t}\r\n\r\n\t\tme.advance(1 + framesToDrop);\r\n\r\n\t\tvar endTime = Date.now();\r\n\r\n\t\tme.dropFrames += (endTime - startTime) / me.frameDuration;\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function(count) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart;\r\n\t\tvar i = 0;\r\n\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\r\n\t\t\tanimation.currentStep = (animation.currentStep || 0) + count;\r\n\t\t\tanimation.currentStep = Math.min(animation.currentStep, animation.numSteps);\r\n\r\n\t\t\thelpers.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= animation.numSteps) {\r\n\t\t\t\thelpers.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"26\":26,\"46\":46}],24:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar Animation = require(22);\r\nvar animations = require(23);\r\nvar defaults = require(26);\r\nvar helpers = require(46);\r\nvar Interaction = require(29);\r\nvar layouts = require(31);\r\nvar platform = require(49);\r\nvar plugins = require(32);\r\nvar scaleService = require(34);\r\nvar Tooltip = require(36);\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\t// Create a dictionary of chart types, to allow for extension of existing types\r\n\tChart.types = {};\r\n\r\n\t// Store a reference to each instance - allowing us to globally resize chart instances on window resize.\r\n\t// Destroy method on the chart will remove the instance of the chart from this reference.\r\n\tChart.instances = {};\r\n\r\n\t// Controllers available for dataset visualization eg. bar, line, slice, etc.\r\n\tChart.controllers = {};\r\n\r\n\t/**\r\n\t * Initializes the given config with global and chart default values.\r\n\t */\r\n\tfunction initConfig(config) {\r\n\t\tconfig = config || {};\r\n\r\n\t\t// Do NOT use configMerge() for the data object because this method merges arrays\r\n\t\t// and so would change references to labels and datasets, preventing data updates.\r\n\t\tvar data = config.data = config.data || {};\r\n\t\tdata.datasets = data.datasets || [];\r\n\t\tdata.labels = data.labels || [];\r\n\r\n\t\tconfig.options = helpers.configMerge(\r\n\t\t\tdefaults.global,\r\n\t\t\tdefaults[config.type],\r\n\t\t\tconfig.options || {});\r\n\r\n\t\treturn config;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the config of the chart\r\n\t * @param chart {Chart} chart to update the options for\r\n\t */\r\n\tfunction updateConfig(chart) {\r\n\t\tvar newOptions = chart.options;\r\n\r\n\t\thelpers.each(chart.scales, function(scale) {\r\n\t\t\tlayouts.removeBox(chart, scale);\r\n\t\t});\r\n\r\n\t\tnewOptions = helpers.configMerge(\r\n\t\t\tChart.defaults.global,\r\n\t\t\tChart.defaults[chart.config.type],\r\n\t\t\tnewOptions);\r\n\r\n\t\tchart.options = chart.config.options = newOptions;\r\n\t\tchart.ensureScalesHaveIDs();\r\n\t\tchart.buildOrUpdateScales();\r\n\t\t// Tooltip\r\n\t\tchart.tooltip._options = newOptions.tooltips;\r\n\t\tchart.tooltip.initialize();\r\n\t}\r\n\r\n\tfunction positionIsHorizontal(position) {\r\n\t\treturn position === 'top' || position === 'bottom';\r\n\t}\r\n\r\n\thelpers.extend(Chart.prototype, /** @lends Chart */ {\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tconstruct: function(item, config) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tconfig = initConfig(config);\r\n\r\n\t\t\tvar context = platform.acquireContext(item, config);\r\n\t\t\tvar canvas = context && context.canvas;\r\n\t\t\tvar height = canvas && canvas.height;\r\n\t\t\tvar width = canvas && canvas.width;\r\n\r\n\t\t\tme.id = helpers.uid();\r\n\t\t\tme.ctx = context;\r\n\t\t\tme.canvas = canvas;\r\n\t\t\tme.config = config;\r\n\t\t\tme.width = width;\r\n\t\t\tme.height = height;\r\n\t\t\tme.aspectRatio = height ? width / height : null;\r\n\t\t\tme.options = config.options;\r\n\t\t\tme._bufferedRender = false;\r\n\r\n\t\t\t/**\r\n\t\t\t * Provided for backward compatibility, Chart and Chart.Controller have been merged,\r\n\t\t\t * the \"instance\" still need to be defined since it might be called from plugins.\r\n\t\t\t * @prop Chart#chart\r\n\t\t\t * @deprecated since version 2.6.0\r\n\t\t\t * @todo remove at version 3\r\n\t\t\t * @private\r\n\t\t\t */\r\n\t\t\tme.chart = me;\r\n\t\t\tme.controller = me; // chart.chart.controller #inception\r\n\r\n\t\t\t// Add the chart instance to the global namespace\r\n\t\t\tChart.instances[me.id] = me;\r\n\r\n\t\t\t// Define alias to the config data: `chart.data === chart.config.data`\r\n\t\t\tObject.defineProperty(me, 'data', {\r\n\t\t\t\tget: function() {\r\n\t\t\t\t\treturn me.config.data;\r\n\t\t\t\t},\r\n\t\t\t\tset: function(value) {\r\n\t\t\t\t\tme.config.data = value;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (!context || !canvas) {\r\n\t\t\t\t// The given item is not a compatible context2d element, let's return before finalizing\r\n\t\t\t\t// the chart initialization but after setting basic chart / controller properties that\r\n\t\t\t\t// can help to figure out that the chart is not valid (e.g chart.canvas !== null);\r\n\t\t\t\t// https://github.com/chartjs/Chart.js/issues/2807\r\n\t\t\t\tconsole.error(\"Failed to create chart: can't acquire context from the given item\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tme.initialize();\r\n\t\t\tme.update();\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tinitialize: function() {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\t// Before init plugin notification\r\n\t\t\tplugins.notify(me, 'beforeInit');\r\n\r\n\t\t\thelpers.retinaScale(me, me.options.devicePixelRatio);\r\n\r\n\t\t\tme.bindEvents();\r\n\r\n\t\t\tif (me.options.responsive) {\r\n\t\t\t\t// Initial resize before chart draws (must be silent to preserve initial animations).\r\n\t\t\t\tme.resize(true);\r\n\t\t\t}\r\n\r\n\t\t\t// Make sure scales have IDs and are built before we build any controllers.\r\n\t\t\tme.ensureScalesHaveIDs();\r\n\t\t\tme.buildOrUpdateScales();\r\n\t\t\tme.initToolTip();\r\n\r\n\t\t\t// After init plugin notification\r\n\t\t\tplugins.notify(me, 'afterInit');\r\n\r\n\t\t\treturn me;\r\n\t\t},\r\n\r\n\t\tclear: function() {\r\n\t\t\thelpers.canvas.clear(this);\r\n\t\t\treturn this;\r\n\t\t},\r\n\r\n\t\tstop: function() {\r\n\t\t\t// Stops any current animation loop occurring\r\n\t\t\tanimations.cancelAnimation(this);\r\n\t\t\treturn this;\r\n\t\t},\r\n\r\n\t\tresize: function(silent) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = me.options;\r\n\t\t\tvar canvas = me.canvas;\r\n\t\t\tvar aspectRatio = (options.maintainAspectRatio && me.aspectRatio) || null;\r\n\r\n\t\t\t// the canvas render width and height will be casted to integers so make sure that\r\n\t\t\t// the canvas display style uses the same integer values to avoid blurring effect.\r\n\r\n\t\t\t// Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collapsed\r\n\t\t\tvar newWidth = Math.max(0, Math.floor(helpers.getMaximumWidth(canvas)));\r\n\t\t\tvar newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers.getMaximumHeight(canvas)));\r\n\r\n\t\t\tif (me.width === newWidth && me.height === newHeight) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tcanvas.width = me.width = newWidth;\r\n\t\t\tcanvas.height = me.height = newHeight;\r\n\t\t\tcanvas.style.width = newWidth + 'px';\r\n\t\t\tcanvas.style.height = newHeight + 'px';\r\n\r\n\t\t\thelpers.retinaScale(me, options.devicePixelRatio);\r\n\r\n\t\t\tif (!silent) {\r\n\t\t\t\t// Notify any plugins about the resize\r\n\t\t\t\tvar newSize = {width: newWidth, height: newHeight};\r\n\t\t\t\tplugins.notify(me, 'resize', [newSize]);\r\n\r\n\t\t\t\t// Notify of resize\r\n\t\t\t\tif (me.options.onResize) {\r\n\t\t\t\t\tme.options.onResize(me, newSize);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tme.stop();\r\n\t\t\t\tme.update({\r\n\t\t\t\t\tduration: me.options.responsiveAnimationDuration\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tensureScalesHaveIDs: function() {\r\n\t\t\tvar options = this.options;\r\n\t\t\tvar scalesOptions = options.scales || {};\r\n\t\t\tvar scaleOptions = options.scale;\r\n\r\n\t\t\thelpers.each(scalesOptions.xAxes, function(xAxisOptions, index) {\r\n\t\t\t\txAxisOptions.id = xAxisOptions.id || ('x-axis-' + index);\r\n\t\t\t});\r\n\r\n\t\t\thelpers.each(scalesOptions.yAxes, function(yAxisOptions, index) {\r\n\t\t\t\tyAxisOptions.id = yAxisOptions.id || ('y-axis-' + index);\r\n\t\t\t});\r\n\r\n\t\t\tif (scaleOptions) {\r\n\t\t\t\tscaleOptions.id = scaleOptions.id || 'scale';\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Builds a map of scale ID to scale object for future lookup.\r\n\t\t */\r\n\t\tbuildOrUpdateScales: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = me.options;\r\n\t\t\tvar scales = me.scales || {};\r\n\t\t\tvar items = [];\r\n\t\t\tvar updated = Object.keys(scales).reduce(function(obj, id) {\r\n\t\t\t\tobj[id] = false;\r\n\t\t\t\treturn obj;\r\n\t\t\t}, {});\r\n\r\n\t\t\tif (options.scales) {\r\n\t\t\t\titems = items.concat(\r\n\t\t\t\t\t(options.scales.xAxes || []).map(function(xAxisOptions) {\r\n\t\t\t\t\t\treturn {options: xAxisOptions, dtype: 'category', dposition: 'bottom'};\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t(options.scales.yAxes || []).map(function(yAxisOptions) {\r\n\t\t\t\t\t\treturn {options: yAxisOptions, dtype: 'linear', dposition: 'left'};\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (options.scale) {\r\n\t\t\t\titems.push({\r\n\t\t\t\t\toptions: options.scale,\r\n\t\t\t\t\tdtype: 'radialLinear',\r\n\t\t\t\t\tisDefault: true,\r\n\t\t\t\t\tdposition: 'chartArea'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\thelpers.each(items, function(item) {\r\n\t\t\t\tvar scaleOptions = item.options;\r\n\t\t\t\tvar id = scaleOptions.id;\r\n\t\t\t\tvar scaleType = helpers.valueOrDefault(scaleOptions.type, item.dtype);\r\n\r\n\t\t\t\tif (positionIsHorizontal(scaleOptions.position) !== positionIsHorizontal(item.dposition)) {\r\n\t\t\t\t\tscaleOptions.position = item.dposition;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tupdated[id] = true;\r\n\t\t\t\tvar scale = null;\r\n\t\t\t\tif (id in scales && scales[id].type === scaleType) {\r\n\t\t\t\t\tscale = scales[id];\r\n\t\t\t\t\tscale.options = scaleOptions;\r\n\t\t\t\t\tscale.ctx = me.ctx;\r\n\t\t\t\t\tscale.chart = me;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar scaleClass = scaleService.getScaleConstructor(scaleType);\r\n\t\t\t\t\tif (!scaleClass) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tscale = new scaleClass({\r\n\t\t\t\t\t\tid: id,\r\n\t\t\t\t\t\ttype: scaleType,\r\n\t\t\t\t\t\toptions: scaleOptions,\r\n\t\t\t\t\t\tctx: me.ctx,\r\n\t\t\t\t\t\tchart: me\r\n\t\t\t\t\t});\r\n\t\t\t\t\tscales[scale.id] = scale;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tscale.mergeTicksOptions();\r\n\r\n\t\t\t\t// TODO(SB): I think we should be able to remove this custom case (options.scale)\r\n\t\t\t\t// and consider it as a regular scale part of the \"scales\"\" map only! This would\r\n\t\t\t\t// make the logic easier and remove some useless? custom code.\r\n\t\t\t\tif (item.isDefault) {\r\n\t\t\t\t\tme.scale = scale;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t// clear up discarded scales\r\n\t\t\thelpers.each(updated, function(hasUpdated, id) {\r\n\t\t\t\tif (!hasUpdated) {\r\n\t\t\t\t\tdelete scales[id];\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tme.scales = scales;\r\n\r\n\t\t\tscaleService.addScalesToLayout(this);\r\n\t\t},\r\n\r\n\t\tbuildOrUpdateControllers: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar types = [];\r\n\t\t\tvar newControllers = [];\r\n\r\n\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\tvar meta = me.getDatasetMeta(datasetIndex);\r\n\t\t\t\tvar type = dataset.type || me.config.type;\r\n\r\n\t\t\t\tif (meta.type && meta.type !== type) {\r\n\t\t\t\t\tme.destroyDatasetMeta(datasetIndex);\r\n\t\t\t\t\tmeta = me.getDatasetMeta(datasetIndex);\r\n\t\t\t\t}\r\n\t\t\t\tmeta.type = type;\r\n\r\n\t\t\t\ttypes.push(meta.type);\r\n\r\n\t\t\t\tif (meta.controller) {\r\n\t\t\t\t\tmeta.controller.updateIndex(datasetIndex);\r\n\t\t\t\t\tmeta.controller.linkScales();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar ControllerClass = Chart.controllers[meta.type];\r\n\t\t\t\t\tif (ControllerClass === undefined) {\r\n\t\t\t\t\t\tthrow new Error('\"' + meta.type + '\" is not a chart type.');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tmeta.controller = new ControllerClass(me, datasetIndex);\r\n\t\t\t\t\tnewControllers.push(meta.controller);\r\n\t\t\t\t}\r\n\t\t\t}, me);\r\n\r\n\t\t\treturn newControllers;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Reset the elements of all datasets\r\n\t\t * @private\r\n\t\t */\r\n\t\tresetElements: function() {\r\n\t\t\tvar me = this;\r\n\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\tme.getDatasetMeta(datasetIndex).controller.reset();\r\n\t\t\t}, me);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t* Resets the chart back to it's state before the initial animation\r\n\t\t*/\r\n\t\treset: function() {\r\n\t\t\tthis.resetElements();\r\n\t\t\tthis.tooltip.initialize();\r\n\t\t},\r\n\r\n\t\tupdate: function(config) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tif (!config || typeof config !== 'object') {\r\n\t\t\t\t// backwards compatibility\r\n\t\t\t\tconfig = {\r\n\t\t\t\t\tduration: config,\r\n\t\t\t\t\tlazy: arguments[1]\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tupdateConfig(me);\r\n\r\n\t\t\t// plugins options references might have change, let's invalidate the cache\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\r\n\t\t\tplugins._invalidate(me);\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeUpdate') === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// In case the entire data object changed\r\n\t\t\tme.tooltip._data = me.data;\r\n\r\n\t\t\t// Make sure dataset controllers are updated and new controllers are reset\r\n\t\t\tvar newControllers = me.buildOrUpdateControllers();\r\n\r\n\t\t\t// Make sure all dataset controllers have correct meta data counts\r\n\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\tme.getDatasetMeta(datasetIndex).controller.buildOrUpdateElements();\r\n\t\t\t}, me);\r\n\r\n\t\t\tme.updateLayout();\r\n\r\n\t\t\t// Can only reset the new controllers after the scales have been updated\r\n\t\t\tif (me.options.animation && me.options.animation.duration) {\r\n\t\t\t\thelpers.each(newControllers, function(controller) {\r\n\t\t\t\t\tcontroller.reset();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tme.updateDatasets();\r\n\r\n\t\t\t// Need to reset tooltip in case it is displayed with elements that are removed\r\n\t\t\t// after update.\r\n\t\t\tme.tooltip.initialize();\r\n\r\n\t\t\t// Last active contains items that were previously in the tooltip.\r\n\t\t\t// When we reset the tooltip, we need to clear it\r\n\t\t\tme.lastActive = [];\r\n\r\n\t\t\t// Do this before render so that any plugins that need final scale updates can use it\r\n\t\t\tplugins.notify(me, 'afterUpdate');\r\n\r\n\t\t\tif (me._bufferedRender) {\r\n\t\t\t\tme._bufferedRequest = {\r\n\t\t\t\t\tduration: config.duration,\r\n\t\t\t\t\teasing: config.easing,\r\n\t\t\t\t\tlazy: config.lazy\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tme.render(config);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\r\n\t\t * hook, in which case, plugins will not be called on `afterLayout`.\r\n\t\t * @private\r\n\t\t */\r\n\t\tupdateLayout: function() {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeLayout') === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlayouts.update(this, this.width, this.height);\r\n\r\n\t\t\t/**\r\n\t\t\t * Provided for backward compatibility, use `afterLayout` instead.\r\n\t\t\t * @method IPlugin#afterScaleUpdate\r\n\t\t\t * @deprecated since version 2.5.0\r\n\t\t\t * @todo remove at version 3\r\n\t\t\t * @private\r\n\t\t\t */\r\n\t\t\tplugins.notify(me, 'afterScaleUpdate');\r\n\t\t\tplugins.notify(me, 'afterLayout');\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\r\n\t\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\r\n\t\t * @private\r\n\t\t */\r\n\t\tupdateDatasets: function() {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeDatasetsUpdate') === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tfor (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tme.updateDataset(i);\r\n\t\t\t}\r\n\r\n\t\t\tplugins.notify(me, 'afterDatasetsUpdate');\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\r\n\t\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\r\n\t\t * @private\r\n\t\t */\r\n\t\tupdateDataset: function(index) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getDatasetMeta(index);\r\n\t\t\tvar args = {\r\n\t\t\t\tmeta: meta,\r\n\t\t\t\tindex: index\r\n\t\t\t};\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeDatasetUpdate', [args]) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tmeta.controller.update();\r\n\r\n\t\t\tplugins.notify(me, 'afterDatasetUpdate', [args]);\r\n\t\t},\r\n\r\n\t\trender: function(config) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tif (!config || typeof config !== 'object') {\r\n\t\t\t\t// backwards compatibility\r\n\t\t\t\tconfig = {\r\n\t\t\t\t\tduration: config,\r\n\t\t\t\t\tlazy: arguments[1]\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tvar duration = config.duration;\r\n\t\t\tvar lazy = config.lazy;\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeRender') === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar animationOptions = me.options.animation;\r\n\t\t\tvar onComplete = function(animation) {\r\n\t\t\t\tplugins.notify(me, 'afterRender');\r\n\t\t\t\thelpers.callback(animationOptions && animationOptions.onComplete, [animation], me);\r\n\t\t\t};\r\n\r\n\t\t\tif (animationOptions && ((typeof duration !== 'undefined' && duration !== 0) || (typeof duration === 'undefined' && animationOptions.duration !== 0))) {\r\n\t\t\t\tvar animation = new Animation({\r\n\t\t\t\t\tnumSteps: (duration || animationOptions.duration) / 16.66, // 60 fps\r\n\t\t\t\t\teasing: config.easing || animationOptions.easing,\r\n\r\n\t\t\t\t\trender: function(chart, animationObject) {\r\n\t\t\t\t\t\tvar easingFunction = helpers.easing.effects[animationObject.easing];\r\n\t\t\t\t\t\tvar currentStep = animationObject.currentStep;\r\n\t\t\t\t\t\tvar stepDecimal = currentStep / animationObject.numSteps;\r\n\r\n\t\t\t\t\t\tchart.draw(easingFunction(stepDecimal), stepDecimal, currentStep);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tonAnimationProgress: animationOptions.onProgress,\r\n\t\t\t\t\tonAnimationComplete: onComplete\r\n\t\t\t\t});\r\n\r\n\t\t\t\tanimations.addAnimation(me, animation, duration, lazy);\r\n\t\t\t} else {\r\n\t\t\t\tme.draw();\r\n\r\n\t\t\t\t// See https://github.com/chartjs/Chart.js/issues/3781\r\n\t\t\t\tonComplete(new Animation({numSteps: 0, chart: me}));\r\n\t\t\t}\r\n\r\n\t\t\treturn me;\r\n\t\t},\r\n\r\n\t\tdraw: function(easingValue) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tme.clear();\r\n\r\n\t\t\tif (helpers.isNullOrUndef(easingValue)) {\r\n\t\t\t\teasingValue = 1;\r\n\t\t\t}\r\n\r\n\t\t\tme.transition(easingValue);\r\n\r\n\t\t\tif (me.width <= 0 || me.height <= 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeDraw', [easingValue]) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Draw all the scales\r\n\t\t\thelpers.each(me.boxes, function(box) {\r\n\t\t\t\tbox.draw(me.chartArea);\r\n\t\t\t}, me);\r\n\r\n\t\t\tif (me.scale) {\r\n\t\t\t\tme.scale.draw();\r\n\t\t\t}\r\n\r\n\t\t\tme.drawDatasets(easingValue);\r\n\t\t\tme._drawTooltip(easingValue);\r\n\r\n\t\t\tplugins.notify(me, 'afterDraw', [easingValue]);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\ttransition: function(easingValue) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tfor (var i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tif (me.isDatasetVisible(i)) {\r\n\t\t\t\t\tme.getDatasetMeta(i).controller.transition(easingValue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tme.tooltip.transition(easingValue);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\r\n\t\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\r\n\t\t * @private\r\n\t\t */\r\n\t\tdrawDatasets: function(easingValue) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeDatasetsDraw', [easingValue]) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Draw datasets reversed to support proper line stacking\r\n\t\t\tfor (var i = (me.data.datasets || []).length - 1; i >= 0; --i) {\r\n\t\t\t\tif (me.isDatasetVisible(i)) {\r\n\t\t\t\t\tme.drawDataset(i, easingValue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tplugins.notify(me, 'afterDatasetsDraw', [easingValue]);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\r\n\t\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\r\n\t\t * @private\r\n\t\t */\r\n\t\tdrawDataset: function(index, easingValue) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getDatasetMeta(index);\r\n\t\t\tvar args = {\r\n\t\t\t\tmeta: meta,\r\n\t\t\t\tindex: index,\r\n\t\t\t\teasingValue: easingValue\r\n\t\t\t};\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeDatasetDraw', [args]) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tmeta.controller.draw(easingValue);\r\n\r\n\t\t\tplugins.notify(me, 'afterDatasetDraw', [args]);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Draws tooltip unless a plugin returns `false` to the `beforeTooltipDraw`\r\n\t\t * hook, in which case, plugins will not be called on `afterTooltipDraw`.\r\n\t\t * @private\r\n\t\t */\r\n\t\t_drawTooltip: function(easingValue) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar tooltip = me.tooltip;\r\n\t\t\tvar args = {\r\n\t\t\t\ttooltip: tooltip,\r\n\t\t\t\teasingValue: easingValue\r\n\t\t\t};\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeTooltipDraw', [args]) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\ttooltip.draw();\r\n\r\n\t\t\tplugins.notify(me, 'afterTooltipDraw', [args]);\r\n\t\t},\r\n\r\n\t\t// Get the single element that was clicked on\r\n\t\t// @return : An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw\r\n\t\tgetElementAtEvent: function(e) {\r\n\t\t\treturn Interaction.modes.single(this, e);\r\n\t\t},\r\n\r\n\t\tgetElementsAtEvent: function(e) {\r\n\t\t\treturn Interaction.modes.label(this, e, {intersect: true});\r\n\t\t},\r\n\r\n\t\tgetElementsAtXAxis: function(e) {\r\n\t\t\treturn Interaction.modes['x-axis'](this, e, {intersect: true});\r\n\t\t},\r\n\r\n\t\tgetElementsAtEventForMode: function(e, mode, options) {\r\n\t\t\tvar method = Interaction.modes[mode];\r\n\t\t\tif (typeof method === 'function') {\r\n\t\t\t\treturn method(this, e, options);\r\n\t\t\t}\r\n\r\n\t\t\treturn [];\r\n\t\t},\r\n\r\n\t\tgetDatasetAtEvent: function(e) {\r\n\t\t\treturn Interaction.modes.dataset(this, e, {intersect: true});\r\n\t\t},\r\n\r\n\t\tgetDatasetMeta: function(datasetIndex) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar dataset = me.data.datasets[datasetIndex];\r\n\t\t\tif (!dataset._meta) {\r\n\t\t\t\tdataset._meta = {};\r\n\t\t\t}\r\n\r\n\t\t\tvar meta = dataset._meta[me.id];\r\n\t\t\tif (!meta) {\r\n\t\t\t\tmeta = dataset._meta[me.id] = {\r\n\t\t\t\t\ttype: null,\r\n\t\t\t\t\tdata: [],\r\n\t\t\t\t\tdataset: null,\r\n\t\t\t\t\tcontroller: null,\r\n\t\t\t\t\thidden: null,\t\t\t// See isDatasetVisible() comment\r\n\t\t\t\t\txAxisID: null,\r\n\t\t\t\t\tyAxisID: null\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn meta;\r\n\t\t},\r\n\r\n\t\tgetVisibleDatasetCount: function() {\r\n\t\t\tvar count = 0;\r\n\t\t\tfor (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (this.isDatasetVisible(i)) {\r\n\t\t\t\t\tcount++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn count;\r\n\t\t},\r\n\r\n\t\tisDatasetVisible: function(datasetIndex) {\r\n\t\t\tvar meta = this.getDatasetMeta(datasetIndex);\r\n\r\n\t\t\t// meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\r\n\t\t\t// the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\r\n\t\t\treturn typeof meta.hidden === 'boolean' ? !meta.hidden : !this.data.datasets[datasetIndex].hidden;\r\n\t\t},\r\n\r\n\t\tgenerateLegend: function() {\r\n\t\t\treturn this.options.legendCallback(this);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tdestroyDatasetMeta: function(datasetIndex) {\r\n\t\t\tvar id = this.id;\r\n\t\t\tvar dataset = this.data.datasets[datasetIndex];\r\n\t\t\tvar meta = dataset._meta && dataset._meta[id];\r\n\r\n\t\t\tif (meta) {\r\n\t\t\t\tmeta.controller.destroy();\r\n\t\t\t\tdelete dataset._meta[id];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tdestroy: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar canvas = me.canvas;\r\n\t\t\tvar i, ilen;\r\n\r\n\t\t\tme.stop();\r\n\r\n\t\t\t// dataset controllers need to cleanup associated data\r\n\t\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tme.destroyDatasetMeta(i);\r\n\t\t\t}\r\n\r\n\t\t\tif (canvas) {\r\n\t\t\t\tme.unbindEvents();\r\n\t\t\t\thelpers.canvas.clear(me);\r\n\t\t\t\tplatform.releaseContext(me.ctx);\r\n\t\t\t\tme.canvas = null;\r\n\t\t\t\tme.ctx = null;\r\n\t\t\t}\r\n\r\n\t\t\tplugins.notify(me, 'destroy');\r\n\r\n\t\t\tdelete Chart.instances[me.id];\r\n\t\t},\r\n\r\n\t\ttoBase64Image: function() {\r\n\t\t\treturn this.canvas.toDataURL.apply(this.canvas, arguments);\r\n\t\t},\r\n\r\n\t\tinitToolTip: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tme.tooltip = new Tooltip({\r\n\t\t\t\t_chart: me,\r\n\t\t\t\t_chartInstance: me, // deprecated, backward compatibility\r\n\t\t\t\t_data: me.data,\r\n\t\t\t\t_options: me.options.tooltips\r\n\t\t\t}, me);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tbindEvents: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar listeners = me._listeners = {};\r\n\t\t\tvar listener = function() {\r\n\t\t\t\tme.eventHandler.apply(me, arguments);\r\n\t\t\t};\r\n\r\n\t\t\thelpers.each(me.options.events, function(type) {\r\n\t\t\t\tplatform.addEventListener(me, type, listener);\r\n\t\t\t\tlisteners[type] = listener;\r\n\t\t\t});\r\n\r\n\t\t\t// Elements used to detect size change should not be injected for non responsive charts.\r\n\t\t\t// See https://github.com/chartjs/Chart.js/issues/2210\r\n\t\t\tif (me.options.responsive) {\r\n\t\t\t\tlistener = function() {\r\n\t\t\t\t\tme.resize();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tplatform.addEventListener(me, 'resize', listener);\r\n\t\t\t\tlisteners.resize = listener;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tunbindEvents: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar listeners = me._listeners;\r\n\t\t\tif (!listeners) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tdelete me._listeners;\r\n\t\t\thelpers.each(listeners, function(listener, type) {\r\n\t\t\t\tplatform.removeEventListener(me, type, listener);\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tupdateHoverStyle: function(elements, mode, enabled) {\r\n\t\t\tvar method = enabled ? 'setHoverStyle' : 'removeHoverStyle';\r\n\t\t\tvar element, i, ilen;\r\n\r\n\t\t\tfor (i = 0, ilen = elements.length; i < ilen; ++i) {\r\n\t\t\t\telement = elements[i];\r\n\t\t\t\tif (element) {\r\n\t\t\t\t\tthis.getDatasetMeta(element._datasetIndex).controller[method](element);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\teventHandler: function(e) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar tooltip = me.tooltip;\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeEvent', [e]) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Buffer any update calls so that renders do not occur\r\n\t\t\tme._bufferedRender = true;\r\n\t\t\tme._bufferedRequest = null;\r\n\r\n\t\t\tvar changed = me.handleEvent(e);\r\n\t\t\t// for smooth tooltip animations issue #4989\r\n\t\t\t// the tooltip should be the source of change\r\n\t\t\t// Animation check workaround:\r\n\t\t\t// tooltip._start will be null when tooltip isn't animating\r\n\t\t\tif (tooltip) {\r\n\t\t\t\tchanged = tooltip._start\r\n\t\t\t\t\t? tooltip.handleEvent(e)\r\n\t\t\t\t\t: changed | tooltip.handleEvent(e);\r\n\t\t\t}\r\n\r\n\t\t\tplugins.notify(me, 'afterEvent', [e]);\r\n\r\n\t\t\tvar bufferedRequest = me._bufferedRequest;\r\n\t\t\tif (bufferedRequest) {\r\n\t\t\t\t// If we have an update that was triggered, we need to do a normal render\r\n\t\t\t\tme.render(bufferedRequest);\r\n\t\t\t} else if (changed && !me.animating) {\r\n\t\t\t\t// If entering, leaving, or changing elements, animate the change via pivot\r\n\t\t\t\tme.stop();\r\n\r\n\t\t\t\t// We only need to render at this point. Updating will cause scales to be\r\n\t\t\t\t// recomputed generating flicker & using more memory than necessary.\r\n\t\t\t\tme.render({\r\n\t\t\t\t\tduration: me.options.hover.animationDuration,\r\n\t\t\t\t\tlazy: true\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tme._bufferedRender = false;\r\n\t\t\tme._bufferedRequest = null;\r\n\r\n\t\t\treturn me;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Handle an event\r\n\t\t * @private\r\n\t\t * @param {IEvent} event the event to handle\r\n\t\t * @return {Boolean} true if the chart needs to re-render\r\n\t\t */\r\n\t\thandleEvent: function(e) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = me.options || {};\r\n\t\t\tvar hoverOptions = options.hover;\r\n\t\t\tvar changed = false;\r\n\r\n\t\t\tme.lastActive = me.lastActive || [];\r\n\r\n\t\t\t// Find Active Elements for hover and tooltips\r\n\t\t\tif (e.type === 'mouseout') {\r\n\t\t\t\tme.active = [];\r\n\t\t\t} else {\r\n\t\t\t\tme.active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions);\r\n\t\t\t}\r\n\r\n\t\t\t// Invoke onHover hook\r\n\t\t\t// Need to call with native event here to not break backwards compatibility\r\n\t\t\thelpers.callback(options.onHover || options.hover.onHover, [e.native, me.active], me);\r\n\r\n\t\t\tif (e.type === 'mouseup' || e.type === 'click') {\r\n\t\t\t\tif (options.onClick) {\r\n\t\t\t\t\t// Use e.native here for backwards compatibility\r\n\t\t\t\t\toptions.onClick.call(me, e.native, me.active);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Remove styling for last active (even if it may still be active)\r\n\t\t\tif (me.lastActive.length) {\r\n\t\t\t\tme.updateHoverStyle(me.lastActive, hoverOptions.mode, false);\r\n\t\t\t}\r\n\r\n\t\t\t// Built in hover styling\r\n\t\t\tif (me.active.length && hoverOptions.mode) {\r\n\t\t\t\tme.updateHoverStyle(me.active, hoverOptions.mode, true);\r\n\t\t\t}\r\n\r\n\t\t\tchanged = !helpers.arrayEquals(me.active, me.lastActive);\r\n\r\n\t\t\t// Remember Last Actives\r\n\t\t\tme.lastActive = me.active;\r\n\r\n\t\t\treturn changed;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * Provided for backward compatibility, use Chart instead.\r\n\t * @class Chart.Controller\r\n\t * @deprecated since version 2.6.0\r\n\t * @todo remove at version 3\r\n\t * @private\r\n\t */\r\n\tChart.Controller = Chart;\r\n};\r\n\r\n},{\"22\":22,\"23\":23,\"26\":26,\"29\":29,\"31\":31,\"32\":32,\"34\":34,\"36\":36,\"46\":46,\"49\":49}],25:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(46);\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n\t/**\r\n\t * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n\t * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n\t * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n\t */\r\n\tfunction listenArrayEvents(array, listener) {\r\n\t\tif (array._chartjs) {\r\n\t\t\tarray._chartjs.listeners.push(listener);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tObject.defineProperty(array, '_chartjs', {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: {\r\n\t\t\t\tlisteners: [listener]\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarrayEvents.forEach(function(key) {\r\n\t\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\t\tvar base = array[key];\r\n\r\n\t\t\tObject.defineProperty(array, key, {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tenumerable: false,\r\n\t\t\t\tvalue: function() {\r\n\t\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\t\thelpers.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\treturn res;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the given array event listener and cleanup extra attached properties (such as\r\n\t * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n\t */\r\n\tfunction unlistenArrayEvents(array, listener) {\r\n\t\tvar stub = array._chartjs;\r\n\t\tif (!stub) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar listeners = stub.listeners;\r\n\t\tvar index = listeners.indexOf(listener);\r\n\t\tif (index !== -1) {\r\n\t\t\tlisteners.splice(index, 1);\r\n\t\t}\r\n\r\n\t\tif (listeners.length > 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tarrayEvents.forEach(function(key) {\r\n\t\t\tdelete array[key];\r\n\t\t});\r\n\r\n\t\tdelete array._chartjs;\r\n\t}\r\n\r\n\t// Base class for all dataset controllers (line, bar, etc)\r\n\tChart.DatasetController = function(chart, datasetIndex) {\r\n\t\tthis.initialize(chart, datasetIndex);\r\n\t};\r\n\r\n\thelpers.extend(Chart.DatasetController.prototype, {\r\n\r\n\t\t/**\r\n\t\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t\t * @type {Chart.core.element}\r\n\t\t */\r\n\t\tdatasetElementType: null,\r\n\r\n\t\t/**\r\n\t\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t\t * @type {Chart.core.element}\r\n\t\t */\r\n\t\tdataElementType: null,\r\n\r\n\t\tinitialize: function(chart, datasetIndex) {\r\n\t\t\tvar me = this;\r\n\t\t\tme.chart = chart;\r\n\t\t\tme.index = datasetIndex;\r\n\t\t\tme.linkScales();\r\n\t\t\tme.addElements();\r\n\t\t},\r\n\r\n\t\tupdateIndex: function(datasetIndex) {\r\n\t\t\tthis.index = datasetIndex;\r\n\t\t},\r\n\r\n\t\tlinkScales: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar dataset = me.getDataset();\r\n\r\n\t\t\tif (meta.xAxisID === null || !(meta.xAxisID in me.chart.scales)) {\r\n\t\t\t\tmeta.xAxisID = dataset.xAxisID || me.chart.options.scales.xAxes[0].id;\r\n\t\t\t}\r\n\t\t\tif (meta.yAxisID === null || !(meta.yAxisID in me.chart.scales)) {\r\n\t\t\t\tmeta.yAxisID = dataset.yAxisID || me.chart.options.scales.yAxes[0].id;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tgetDataset: function() {\r\n\t\t\treturn this.chart.data.datasets[this.index];\r\n\t\t},\r\n\r\n\t\tgetMeta: function() {\r\n\t\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t\t},\r\n\r\n\t\tgetScaleForId: function(scaleID) {\r\n\t\t\treturn this.chart.scales[scaleID];\r\n\t\t},\r\n\r\n\t\treset: function() {\r\n\t\t\tthis.update(true);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tdestroy: function() {\r\n\t\t\tif (this._data) {\r\n\t\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcreateMetaDataset: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar type = me.datasetElementType;\r\n\t\t\treturn type && new type({\r\n\t\t\t\t_chart: me.chart,\r\n\t\t\t\t_datasetIndex: me.index\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tcreateMetaData: function(index) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar type = me.dataElementType;\r\n\t\t\treturn type && new type({\r\n\t\t\t\t_chart: me.chart,\r\n\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t_index: index\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\taddElements: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar data = me.getDataset().data || [];\r\n\t\t\tvar metaData = meta.data;\r\n\t\t\tvar i, ilen;\r\n\r\n\t\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t\t}\r\n\r\n\t\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t\t},\r\n\r\n\t\taddElementAndReset: function(index) {\r\n\t\t\tvar element = this.createMetaData(index);\r\n\t\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\t\tthis.updateElement(element, index, true);\r\n\t\t},\r\n\r\n\t\tbuildOrUpdateElements: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t\t// the internal meta data accordingly.\r\n\t\t\tif (me._data !== data) {\r\n\t\t\t\tif (me._data) {\r\n\t\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t\tme._data = data;\r\n\t\t\t}\r\n\r\n\t\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\t\tme.resyncElements();\r\n\t\t},\r\n\r\n\t\tupdate: helpers.noop,\r\n\r\n\t\ttransition: function(easingValue) {\r\n\t\t\tvar meta = this.getMeta();\r\n\t\t\tvar elements = meta.data || [];\r\n\t\t\tvar ilen = elements.length;\r\n\t\t\tvar i = 0;\r\n\r\n\t\t\tfor (; i < ilen; ++i) {\r\n\t\t\t\telements[i].transition(easingValue);\r\n\t\t\t}\r\n\r\n\t\t\tif (meta.dataset) {\r\n\t\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tdraw: function() {\r\n\t\t\tvar meta = this.getMeta();\r\n\t\t\tvar elements = meta.data || [];\r\n\t\t\tvar ilen = elements.length;\r\n\t\t\tvar i = 0;\r\n\r\n\t\t\tif (meta.dataset) {\r\n\t\t\t\tmeta.dataset.draw();\r\n\t\t\t}\r\n\r\n\t\t\tfor (; i < ilen; ++i) {\r\n\t\t\t\telements[i].draw();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tremoveHoverStyle: function(element) {\r\n\t\t\thelpers.merge(element._model, element.$previousStyle || {});\r\n\t\t\tdelete element.$previousStyle;\r\n\t\t},\r\n\r\n\t\tsetHoverStyle: function(element) {\r\n\t\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\t\tvar index = element._index;\r\n\t\t\tvar custom = element.custom || {};\r\n\t\t\tvar valueOrDefault = helpers.valueAtIndexOrDefault;\r\n\t\t\tvar getHoverColor = helpers.getHoverColor;\r\n\t\t\tvar model = element._model;\r\n\r\n\t\t\telement.$previousStyle = {\r\n\t\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\t\tborderColor: model.borderColor,\r\n\t\t\t\tborderWidth: model.borderWidth\r\n\t\t\t};\r\n\r\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : valueOrDefault(dataset.hoverBackgroundColor, index, getHoverColor(model.backgroundColor));\r\n\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : valueOrDefault(dataset.hoverBorderColor, index, getHoverColor(model.borderColor));\r\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : valueOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tresyncElements: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar data = me.getDataset().data;\r\n\t\t\tvar numMeta = meta.data.length;\r\n\t\t\tvar numData = data.length;\r\n\r\n\t\t\tif (numData < numMeta) {\r\n\t\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t\t} else if (numData > numMeta) {\r\n\t\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tinsertElements: function(start, count) {\r\n\t\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\t\tthis.addElementAndReset(start + i);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tonDataPush: function() {\r\n\t\t\tthis.insertElements(this.getDataset().data.length - 1, arguments.length);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tonDataPop: function() {\r\n\t\t\tthis.getMeta().data.pop();\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tonDataShift: function() {\r\n\t\t\tthis.getMeta().data.shift();\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tonDataSplice: function(start, count) {\r\n\t\t\tthis.getMeta().data.splice(start, count);\r\n\t\t\tthis.insertElements(start, arguments.length - 2);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tonDataUnshift: function() {\r\n\t\t\tthis.insertElements(0, arguments.length);\r\n\t\t}\r\n\t});\r\n\r\n\tChart.DatasetController.extend = helpers.inherits;\r\n};\r\n\r\n},{\"46\":46}],26:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(46);\r\n\r\nmodule.exports = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n},{\"46\":46}],27:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar color = require(3);\r\nvar helpers = require(46);\r\n\r\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = color(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = color(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (type === 'number' && isFinite(origin) && isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers.extend(Element.prototype, {\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers.clone(me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = model;\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers.isNumber(this._model.x) && helpers.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers.inherits;\r\n\r\nmodule.exports = Element;\r\n\r\n},{\"3\":3,\"46\":46}],28:[function(require,module,exports){\r\n/* global window: false */\r\n/* global document: false */\r\n'use strict';\r\n\r\nvar color = require(3);\r\nvar defaults = require(26);\r\nvar helpers = require(46);\r\nvar scaleService = require(34);\r\n\r\nmodule.exports = function() {\r\n\r\n\t// -- Basic js utility methods\r\n\r\n\thelpers.configMerge = function(/* objects ... */) {\r\n\t\treturn helpers.merge(helpers.clone(arguments[0]), [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, target, source, options) {\r\n\t\t\t\tvar tval = target[key] || {};\r\n\t\t\t\tvar sval = source[key];\r\n\r\n\t\t\t\tif (key === 'scales') {\r\n\t\t\t\t\t// scale config merging is complex. Add our own function here for that\r\n\t\t\t\t\ttarget[key] = helpers.scaleMerge(tval, sval);\r\n\t\t\t\t} else if (key === 'scale') {\r\n\t\t\t\t\t// used in polar area & radar charts since there is only one scale\r\n\t\t\t\t\ttarget[key] = helpers.merge(tval, [scaleService.getScaleDefaults(sval.type), sval]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\thelpers._merger(key, target, source, options);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\thelpers.scaleMerge = function(/* objects ... */) {\r\n\t\treturn helpers.merge(helpers.clone(arguments[0]), [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, target, source, options) {\r\n\t\t\t\tif (key === 'xAxes' || key === 'yAxes') {\r\n\t\t\t\t\tvar slen = source[key].length;\r\n\t\t\t\t\tvar i, type, scale;\r\n\r\n\t\t\t\t\tif (!target[key]) {\r\n\t\t\t\t\t\ttarget[key] = [];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfor (i = 0; i < slen; ++i) {\r\n\t\t\t\t\t\tscale = source[key][i];\r\n\t\t\t\t\t\ttype = helpers.valueOrDefault(scale.type, key === 'xAxes' ? 'category' : 'linear');\r\n\r\n\t\t\t\t\t\tif (i >= target[key].length) {\r\n\t\t\t\t\t\t\ttarget[key].push({});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) {\r\n\t\t\t\t\t\t\t// new/untyped scale or type changed: let's apply the new defaults\r\n\t\t\t\t\t\t\t// then merge source scale to correctly overwrite the defaults.\r\n\t\t\t\t\t\t\thelpers.merge(target[key][i], [scaleService.getScaleDefaults(type), scale]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// scales type are the same\r\n\t\t\t\t\t\t\thelpers.merge(target[key][i], scale);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\thelpers._merger(key, target, source, options);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\thelpers.where = function(collection, filterCallback) {\r\n\t\tif (helpers.isArray(collection) && Array.prototype.filter) {\r\n\t\t\treturn collection.filter(filterCallback);\r\n\t\t}\r\n\t\tvar filtered = [];\r\n\r\n\t\thelpers.each(collection, function(item) {\r\n\t\t\tif (filterCallback(item)) {\r\n\t\t\t\tfiltered.push(item);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn filtered;\r\n\t};\r\n\thelpers.findIndex = Array.prototype.findIndex ?\r\n\t\tfunction(array, callback, scope) {\r\n\t\t\treturn array.findIndex(callback, scope);\r\n\t\t} :\r\n\t\tfunction(array, callback, scope) {\r\n\t\t\tscope = scope === undefined ? array : scope;\r\n\t\t\tfor (var i = 0, ilen = array.length; i < ilen; ++i) {\r\n\t\t\t\tif (callback.call(scope, array[i], i, array)) {\r\n\t\t\t\t\treturn i;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn -1;\r\n\t\t};\r\n\thelpers.findNextWhere = function(arrayToSearch, filterCallback, startIndex) {\r\n\t\t// Default to start of the array\r\n\t\tif (helpers.isNullOrUndef(startIndex)) {\r\n\t\t\tstartIndex = -1;\r\n\t\t}\r\n\t\tfor (var i = startIndex + 1; i < arrayToSearch.length; i++) {\r\n\t\t\tvar currentItem = arrayToSearch[i];\r\n\t\t\tif (filterCallback(currentItem)) {\r\n\t\t\t\treturn currentItem;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\thelpers.findPreviousWhere = function(arrayToSearch, filterCallback, startIndex) {\r\n\t\t// Default to end of the array\r\n\t\tif (helpers.isNullOrUndef(startIndex)) {\r\n\t\t\tstartIndex = arrayToSearch.length;\r\n\t\t}\r\n\t\tfor (var i = startIndex - 1; i >= 0; i--) {\r\n\t\t\tvar currentItem = arrayToSearch[i];\r\n\t\t\tif (filterCallback(currentItem)) {\r\n\t\t\t\treturn currentItem;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// -- Math methods\r\n\thelpers.isNumber = function(n) {\r\n\t\treturn !isNaN(parseFloat(n)) && isFinite(n);\r\n\t};\r\n\thelpers.almostEquals = function(x, y, epsilon) {\r\n\t\treturn Math.abs(x - y) < epsilon;\r\n\t};\r\n\thelpers.almostWhole = function(x, epsilon) {\r\n\t\tvar rounded = Math.round(x);\r\n\t\treturn (((rounded - epsilon) < x) && ((rounded + epsilon) > x));\r\n\t};\r\n\thelpers.max = function(array) {\r\n\t\treturn array.reduce(function(max, value) {\r\n\t\t\tif (!isNaN(value)) {\r\n\t\t\t\treturn Math.max(max, value);\r\n\t\t\t}\r\n\t\t\treturn max;\r\n\t\t}, Number.NEGATIVE_INFINITY);\r\n\t};\r\n\thelpers.min = function(array) {\r\n\t\treturn array.reduce(function(min, value) {\r\n\t\t\tif (!isNaN(value)) {\r\n\t\t\t\treturn Math.min(min, value);\r\n\t\t\t}\r\n\t\t\treturn min;\r\n\t\t}, Number.POSITIVE_INFINITY);\r\n\t};\r\n\thelpers.sign = Math.sign ?\r\n\t\tfunction(x) {\r\n\t\t\treturn Math.sign(x);\r\n\t\t} :\r\n\t\tfunction(x) {\r\n\t\t\tx = +x; // convert to a number\r\n\t\t\tif (x === 0 || isNaN(x)) {\r\n\t\t\t\treturn x;\r\n\t\t\t}\r\n\t\t\treturn x > 0 ? 1 : -1;\r\n\t\t};\r\n\thelpers.log10 = Math.log10 ?\r\n\t\tfunction(x) {\r\n\t\t\treturn Math.log10(x);\r\n\t\t} :\r\n\t\tfunction(x) {\r\n\t\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t\t// Check for whole powers of 10,\r\n\t\t\t// which due to floating point rounding error should be corrected.\r\n\t\t\tvar powerOf10 = Math.round(exponent);\r\n\t\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t\t};\r\n\thelpers.toRadians = function(degrees) {\r\n\t\treturn degrees * (Math.PI / 180);\r\n\t};\r\n\thelpers.toDegrees = function(radians) {\r\n\t\treturn radians * (180 / Math.PI);\r\n\t};\r\n\t// Gets the angle from vertical upright to the point about a centre.\r\n\thelpers.getAngleFromPoint = function(centrePoint, anglePoint) {\r\n\t\tvar distanceFromXCenter = anglePoint.x - centrePoint.x;\r\n\t\tvar distanceFromYCenter = anglePoint.y - centrePoint.y;\r\n\t\tvar radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\r\n\r\n\t\tvar angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\r\n\r\n\t\tif (angle < (-0.5 * Math.PI)) {\r\n\t\t\tangle += 2.0 * Math.PI; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tangle: angle,\r\n\t\t\tdistance: radialDistanceFromCenter\r\n\t\t};\r\n\t};\r\n\thelpers.distanceBetweenPoints = function(pt1, pt2) {\r\n\t\treturn Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\r\n\t};\r\n\thelpers.aliasPixel = function(pixelWidth) {\r\n\t\treturn (pixelWidth % 2 === 0) ? 0 : 0.5;\r\n\t};\r\n\thelpers.splineCurve = function(firstPoint, middlePoint, afterPoint, t) {\r\n\t\t// Props to Rob Spencer at scaled innovation for his post on splining between points\r\n\t\t// http://scaledinnovation.com/analytics/splines/aboutSplines.html\r\n\r\n\t\t// This function must also respect \"skipped\" points\r\n\r\n\t\tvar previous = firstPoint.skip ? middlePoint : firstPoint;\r\n\t\tvar current = middlePoint;\r\n\t\tvar next = afterPoint.skip ? middlePoint : afterPoint;\r\n\r\n\t\tvar d01 = Math.sqrt(Math.pow(current.x - previous.x, 2) + Math.pow(current.y - previous.y, 2));\r\n\t\tvar d12 = Math.sqrt(Math.pow(next.x - current.x, 2) + Math.pow(next.y - current.y, 2));\r\n\r\n\t\tvar s01 = d01 / (d01 + d12);\r\n\t\tvar s12 = d12 / (d01 + d12);\r\n\r\n\t\t// If all points are the same, s01 & s02 will be inf\r\n\t\ts01 = isNaN(s01) ? 0 : s01;\r\n\t\ts12 = isNaN(s12) ? 0 : s12;\r\n\r\n\t\tvar fa = t * s01; // scaling factor for triangle Ta\r\n\t\tvar fb = t * s12;\r\n\r\n\t\treturn {\r\n\t\t\tprevious: {\r\n\t\t\t\tx: current.x - fa * (next.x - previous.x),\r\n\t\t\t\ty: current.y - fa * (next.y - previous.y)\r\n\t\t\t},\r\n\t\t\tnext: {\r\n\t\t\t\tx: current.x + fb * (next.x - previous.x),\r\n\t\t\t\ty: current.y + fb * (next.y - previous.y)\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\thelpers.EPSILON = Number.EPSILON || 1e-14;\r\n\thelpers.splineCurveMonotone = function(points) {\r\n\t\t// This function calculates Bézier control points in a similar way than |splineCurve|,\r\n\t\t// but preserves monotonicity of the provided data and ensures no local extremums are added\r\n\t\t// between the dataset discrete points due to the interpolation.\r\n\t\t// See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\r\n\r\n\t\tvar pointsWithTangents = (points || []).map(function(point) {\r\n\t\t\treturn {\r\n\t\t\t\tmodel: point._model,\r\n\t\t\t\tdeltaK: 0,\r\n\t\t\t\tmK: 0\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\t// Calculate slopes (deltaK) and initialize tangents (mK)\r\n\t\tvar pointsLen = pointsWithTangents.length;\r\n\t\tvar i, pointBefore, pointCurrent, pointAfter;\r\n\t\tfor (i = 0; i < pointsLen; ++i) {\r\n\t\t\tpointCurrent = pointsWithTangents[i];\r\n\t\t\tif (pointCurrent.model.skip) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\r\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\r\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\r\n\t\t\t\tvar slopeDeltaX = (pointAfter.model.x - pointCurrent.model.x);\r\n\r\n\t\t\t\t// In the case of two points that appear at the same x pixel, slopeDeltaX is 0\r\n\t\t\t\tpointCurrent.deltaK = slopeDeltaX !== 0 ? (pointAfter.model.y - pointCurrent.model.y) / slopeDeltaX : 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (!pointBefore || pointBefore.model.skip) {\r\n\t\t\t\tpointCurrent.mK = pointCurrent.deltaK;\r\n\t\t\t} else if (!pointAfter || pointAfter.model.skip) {\r\n\t\t\t\tpointCurrent.mK = pointBefore.deltaK;\r\n\t\t\t} else if (this.sign(pointBefore.deltaK) !== this.sign(pointCurrent.deltaK)) {\r\n\t\t\t\tpointCurrent.mK = 0;\r\n\t\t\t} else {\r\n\t\t\t\tpointCurrent.mK = (pointBefore.deltaK + pointCurrent.deltaK) / 2;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Adjust tangents to ensure monotonic properties\r\n\t\tvar alphaK, betaK, tauK, squaredMagnitude;\r\n\t\tfor (i = 0; i < pointsLen - 1; ++i) {\r\n\t\t\tpointCurrent = pointsWithTangents[i];\r\n\t\t\tpointAfter = pointsWithTangents[i + 1];\r\n\t\t\tif (pointCurrent.model.skip || pointAfter.model.skip) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (helpers.almostEquals(pointCurrent.deltaK, 0, this.EPSILON)) {\r\n\t\t\t\tpointCurrent.mK = pointAfter.mK = 0;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\talphaK = pointCurrent.mK / pointCurrent.deltaK;\r\n\t\t\tbetaK = pointAfter.mK / pointCurrent.deltaK;\r\n\t\t\tsquaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\r\n\t\t\tif (squaredMagnitude <= 9) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\ttauK = 3 / Math.sqrt(squaredMagnitude);\r\n\t\t\tpointCurrent.mK = alphaK * tauK * pointCurrent.deltaK;\r\n\t\t\tpointAfter.mK = betaK * tauK * pointCurrent.deltaK;\r\n\t\t}\r\n\r\n\t\t// Compute control points\r\n\t\tvar deltaX;\r\n\t\tfor (i = 0; i < pointsLen; ++i) {\r\n\t\t\tpointCurrent = pointsWithTangents[i];\r\n\t\t\tif (pointCurrent.model.skip) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\r\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\r\n\t\t\tif (pointBefore && !pointBefore.model.skip) {\r\n\t\t\t\tdeltaX = (pointCurrent.model.x - pointBefore.model.x) / 3;\r\n\t\t\t\tpointCurrent.model.controlPointPreviousX = pointCurrent.model.x - deltaX;\r\n\t\t\t\tpointCurrent.model.controlPointPreviousY = pointCurrent.model.y - deltaX * pointCurrent.mK;\r\n\t\t\t}\r\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\r\n\t\t\t\tdeltaX = (pointAfter.model.x - pointCurrent.model.x) / 3;\r\n\t\t\t\tpointCurrent.model.controlPointNextX = pointCurrent.model.x + deltaX;\r\n\t\t\t\tpointCurrent.model.controlPointNextY = pointCurrent.model.y + deltaX * pointCurrent.mK;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\thelpers.nextItem = function(collection, index, loop) {\r\n\t\tif (loop) {\r\n\t\t\treturn index >= collection.length - 1 ? collection[0] : collection[index + 1];\r\n\t\t}\r\n\t\treturn index >= collection.length - 1 ? collection[collection.length - 1] : collection[index + 1];\r\n\t};\r\n\thelpers.previousItem = function(collection, index, loop) {\r\n\t\tif (loop) {\r\n\t\t\treturn index <= 0 ? collection[collection.length - 1] : collection[index - 1];\r\n\t\t}\r\n\t\treturn index <= 0 ? collection[0] : collection[index - 1];\r\n\t};\r\n\t// Implementation of the nice number algorithm used in determining where axis labels will go\r\n\thelpers.niceNum = function(range, round) {\r\n\t\tvar exponent = Math.floor(helpers.log10(range));\r\n\t\tvar fraction = range / Math.pow(10, exponent);\r\n\t\tvar niceFraction;\r\n\r\n\t\tif (round) {\r\n\t\t\tif (fraction < 1.5) {\r\n\t\t\t\tniceFraction = 1;\r\n\t\t\t} else if (fraction < 3) {\r\n\t\t\t\tniceFraction = 2;\r\n\t\t\t} else if (fraction < 7) {\r\n\t\t\t\tniceFraction = 5;\r\n\t\t\t} else {\r\n\t\t\t\tniceFraction = 10;\r\n\t\t\t}\r\n\t\t} else if (fraction <= 1.0) {\r\n\t\t\tniceFraction = 1;\r\n\t\t} else if (fraction <= 2) {\r\n\t\t\tniceFraction = 2;\r\n\t\t} else if (fraction <= 5) {\r\n\t\t\tniceFraction = 5;\r\n\t\t} else {\r\n\t\t\tniceFraction = 10;\r\n\t\t}\r\n\r\n\t\treturn niceFraction * Math.pow(10, exponent);\r\n\t};\r\n\t// Request animation polyfill - http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\thelpers.requestAnimFrame = (function() {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\treturn function(callback) {\r\n\t\t\t\tcallback();\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn window.requestAnimationFrame ||\r\n\t\t\twindow.webkitRequestAnimationFrame ||\r\n\t\t\twindow.mozRequestAnimationFrame ||\r\n\t\t\twindow.oRequestAnimationFrame ||\r\n\t\t\twindow.msRequestAnimationFrame ||\r\n\t\t\tfunction(callback) {\r\n\t\t\t\treturn window.setTimeout(callback, 1000 / 60);\r\n\t\t\t};\r\n\t}());\r\n\t// -- DOM methods\r\n\thelpers.getRelativePosition = function(evt, chart) {\r\n\t\tvar mouseX, mouseY;\r\n\t\tvar e = evt.originalEvent || evt;\r\n\t\tvar canvas = evt.target || evt.srcElement;\r\n\t\tvar boundingRect = canvas.getBoundingClientRect();\r\n\r\n\t\tvar touches = e.touches;\r\n\t\tif (touches && touches.length > 0) {\r\n\t\t\tmouseX = touches[0].clientX;\r\n\t\t\tmouseY = touches[0].clientY;\r\n\r\n\t\t} else {\r\n\t\t\tmouseX = e.clientX;\r\n\t\t\tmouseY = e.clientY;\r\n\t\t}\r\n\r\n\t\t// Scale mouse coordinates into canvas coordinates\r\n\t\t// by following the pattern laid out by 'jerryj' in the comments of\r\n\t\t// http://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/\r\n\t\tvar paddingLeft = parseFloat(helpers.getStyle(canvas, 'padding-left'));\r\n\t\tvar paddingTop = parseFloat(helpers.getStyle(canvas, 'padding-top'));\r\n\t\tvar paddingRight = parseFloat(helpers.getStyle(canvas, 'padding-right'));\r\n\t\tvar paddingBottom = parseFloat(helpers.getStyle(canvas, 'padding-bottom'));\r\n\t\tvar width = boundingRect.right - boundingRect.left - paddingLeft - paddingRight;\r\n\t\tvar height = boundingRect.bottom - boundingRect.top - paddingTop - paddingBottom;\r\n\r\n\t\t// We divide by the current device pixel ratio, because the canvas is scaled up by that amount in each direction. However\r\n\t\t// the backend model is in unscaled coordinates. Since we are going to deal with our model coordinates, we go back here\r\n\t\tmouseX = Math.round((mouseX - boundingRect.left - paddingLeft) / (width) * canvas.width / chart.currentDevicePixelRatio);\r\n\t\tmouseY = Math.round((mouseY - boundingRect.top - paddingTop) / (height) * canvas.height / chart.currentDevicePixelRatio);\r\n\r\n\t\treturn {\r\n\t\t\tx: mouseX,\r\n\t\t\ty: mouseY\r\n\t\t};\r\n\r\n\t};\r\n\r\n\t// Private helper function to convert max-width/max-height values that may be percentages into a number\r\n\tfunction parseMaxStyle(styleValue, node, parentProperty) {\r\n\t\tvar valueInPixels;\r\n\t\tif (typeof styleValue === 'string') {\r\n\t\t\tvalueInPixels = parseInt(styleValue, 10);\r\n\r\n\t\t\tif (styleValue.indexOf('%') !== -1) {\r\n\t\t\t\t// percentage * size in dimension\r\n\t\t\t\tvalueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalueInPixels = styleValue;\r\n\t\t}\r\n\r\n\t\treturn valueInPixels;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns if the given value contains an effective constraint.\r\n\t * @private\r\n\t */\r\n\tfunction isConstrainedValue(value) {\r\n\t\treturn value !== undefined && value !== null && value !== 'none';\r\n\t}\r\n\r\n\t// Private helper to get a constraint dimension\r\n\t// @param domNode : the node to check the constraint on\r\n\t// @param maxStyle : the style that defines the maximum for the direction we are using (maxWidth / maxHeight)\r\n\t// @param percentageProperty : property of parent to use when calculating width as a percentage\r\n\t// @see http://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser\r\n\tfunction getConstraintDimension(domNode, maxStyle, percentageProperty) {\r\n\t\tvar view = document.defaultView;\r\n\t\tvar parentNode = helpers._getParentNode(domNode);\r\n\t\tvar constrainedNode = view.getComputedStyle(domNode)[maxStyle];\r\n\t\tvar constrainedContainer = view.getComputedStyle(parentNode)[maxStyle];\r\n\t\tvar hasCNode = isConstrainedValue(constrainedNode);\r\n\t\tvar hasCContainer = isConstrainedValue(constrainedContainer);\r\n\t\tvar infinity = Number.POSITIVE_INFINITY;\r\n\r\n\t\tif (hasCNode || hasCContainer) {\r\n\t\t\treturn Math.min(\r\n\t\t\t\thasCNode ? parseMaxStyle(constrainedNode, domNode, percentageProperty) : infinity,\r\n\t\t\t\thasCContainer ? parseMaxStyle(constrainedContainer, parentNode, percentageProperty) : infinity);\r\n\t\t}\r\n\r\n\t\treturn 'none';\r\n\t}\r\n\t// returns Number or undefined if no constraint\r\n\thelpers.getConstraintWidth = function(domNode) {\r\n\t\treturn getConstraintDimension(domNode, 'max-width', 'clientWidth');\r\n\t};\r\n\t// returns Number or undefined if no constraint\r\n\thelpers.getConstraintHeight = function(domNode) {\r\n\t\treturn getConstraintDimension(domNode, 'max-height', 'clientHeight');\r\n\t};\r\n\t/**\r\n\t * @private\r\n \t */\r\n\thelpers._calculatePadding = function(container, padding, parentDimension) {\r\n\t\tpadding = helpers.getStyle(container, padding);\r\n\r\n\t\treturn padding.indexOf('%') > -1 ? parentDimension / parseInt(padding, 10) : parseInt(padding, 10);\r\n\t};\r\n\t/**\r\n\t * @private\r\n\t */\r\n\thelpers._getParentNode = function(domNode) {\r\n\t\tvar parent = domNode.parentNode;\r\n\t\tif (parent && parent.host) {\r\n\t\t\tparent = parent.host;\r\n\t\t}\r\n\t\treturn parent;\r\n\t};\r\n\thelpers.getMaximumWidth = function(domNode) {\r\n\t\tvar container = helpers._getParentNode(domNode);\r\n\t\tif (!container) {\r\n\t\t\treturn domNode.clientWidth;\r\n\t\t}\r\n\r\n\t\tvar clientWidth = container.clientWidth;\r\n\t\tvar paddingLeft = helpers._calculatePadding(container, 'padding-left', clientWidth);\r\n\t\tvar paddingRight = helpers._calculatePadding(container, 'padding-right', clientWidth);\r\n\r\n\t\tvar w = clientWidth - paddingLeft - paddingRight;\r\n\t\tvar cw = helpers.getConstraintWidth(domNode);\r\n\t\treturn isNaN(cw) ? w : Math.min(w, cw);\r\n\t};\r\n\thelpers.getMaximumHeight = function(domNode) {\r\n\t\tvar container = helpers._getParentNode(domNode);\r\n\t\tif (!container) {\r\n\t\t\treturn domNode.clientHeight;\r\n\t\t}\r\n\r\n\t\tvar clientHeight = container.clientHeight;\r\n\t\tvar paddingTop = helpers._calculatePadding(container, 'padding-top', clientHeight);\r\n\t\tvar paddingBottom = helpers._calculatePadding(container, 'padding-bottom', clientHeight);\r\n\r\n\t\tvar h = clientHeight - paddingTop - paddingBottom;\r\n\t\tvar ch = helpers.getConstraintHeight(domNode);\r\n\t\treturn isNaN(ch) ? h : Math.min(h, ch);\r\n\t};\r\n\thelpers.getStyle = function(el, property) {\r\n\t\treturn el.currentStyle ?\r\n\t\t\tel.currentStyle[property] :\r\n\t\t\tdocument.defaultView.getComputedStyle(el, null).getPropertyValue(property);\r\n\t};\r\n\thelpers.retinaScale = function(chart, forceRatio) {\r\n\t\tvar pixelRatio = chart.currentDevicePixelRatio = forceRatio || (typeof window !== 'undefined' && window.devicePixelRatio) || 1;\r\n\t\tif (pixelRatio === 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar height = chart.height;\r\n\t\tvar width = chart.width;\r\n\r\n\t\tcanvas.height = height * pixelRatio;\r\n\t\tcanvas.width = width * pixelRatio;\r\n\t\tchart.ctx.scale(pixelRatio, pixelRatio);\r\n\r\n\t\t// If no style has been set on the canvas, the render size is used as display size,\r\n\t\t// making the chart visually bigger, so let's enforce it to the \"correct\" values.\r\n\t\t// See https://github.com/chartjs/Chart.js/issues/3575\r\n\t\tif (!canvas.style.height && !canvas.style.width) {\r\n\t\t\tcanvas.style.height = height + 'px';\r\n\t\t\tcanvas.style.width = width + 'px';\r\n\t\t}\r\n\t};\r\n\t// -- Canvas methods\r\n\thelpers.fontString = function(pixelSize, fontStyle, fontFamily) {\r\n\t\treturn fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\r\n\t};\r\n\thelpers.longestText = function(ctx, font, arrayOfThings, cache) {\r\n\t\tcache = cache || {};\r\n\t\tvar data = cache.data = cache.data || {};\r\n\t\tvar gc = cache.garbageCollect = cache.garbageCollect || [];\r\n\r\n\t\tif (cache.font !== font) {\r\n\t\t\tdata = cache.data = {};\r\n\t\t\tgc = cache.garbageCollect = [];\r\n\t\t\tcache.font = font;\r\n\t\t}\r\n\r\n\t\tctx.font = font;\r\n\t\tvar longest = 0;\r\n\t\thelpers.each(arrayOfThings, function(thing) {\r\n\t\t\t// Undefined strings and arrays should not be measured\r\n\t\t\tif (thing !== undefined && thing !== null && helpers.isArray(thing) !== true) {\r\n\t\t\t\tlongest = helpers.measureText(ctx, data, gc, longest, thing);\r\n\t\t\t} else if (helpers.isArray(thing)) {\r\n\t\t\t\t// if it is an array lets measure each element\r\n\t\t\t\t// to do maybe simplify this function a bit so we can do this more recursively?\r\n\t\t\t\thelpers.each(thing, function(nestedThing) {\r\n\t\t\t\t\t// Undefined strings and arrays should not be measured\r\n\t\t\t\t\tif (nestedThing !== undefined && nestedThing !== null && !helpers.isArray(nestedThing)) {\r\n\t\t\t\t\t\tlongest = helpers.measureText(ctx, data, gc, longest, nestedThing);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar gcLen = gc.length / 2;\r\n\t\tif (gcLen > arrayOfThings.length) {\r\n\t\t\tfor (var i = 0; i < gcLen; i++) {\r\n\t\t\t\tdelete data[gc[i]];\r\n\t\t\t}\r\n\t\t\tgc.splice(0, gcLen);\r\n\t\t}\r\n\t\treturn longest;\r\n\t};\r\n\thelpers.measureText = function(ctx, data, gc, longest, string) {\r\n\t\tvar textWidth = data[string];\r\n\t\tif (!textWidth) {\r\n\t\t\ttextWidth = data[string] = ctx.measureText(string).width;\r\n\t\t\tgc.push(string);\r\n\t\t}\r\n\t\tif (textWidth > longest) {\r\n\t\t\tlongest = textWidth;\r\n\t\t}\r\n\t\treturn longest;\r\n\t};\r\n\thelpers.numberOfLabelLines = function(arrayOfThings) {\r\n\t\tvar numberOfLines = 1;\r\n\t\thelpers.each(arrayOfThings, function(thing) {\r\n\t\t\tif (helpers.isArray(thing)) {\r\n\t\t\t\tif (thing.length > numberOfLines) {\r\n\t\t\t\t\tnumberOfLines = thing.length;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn numberOfLines;\r\n\t};\r\n\r\n\thelpers.color = !color ?\r\n\t\tfunction(value) {\r\n\t\t\tconsole.error('Color.js not found!');\r\n\t\t\treturn value;\r\n\t\t} :\r\n\t\tfunction(value) {\r\n\t\t\t/* global CanvasGradient */\r\n\t\t\tif (value instanceof CanvasGradient) {\r\n\t\t\t\tvalue = defaults.global.defaultColor;\r\n\t\t\t}\r\n\r\n\t\t\treturn color(value);\r\n\t\t};\r\n\r\n\thelpers.getHoverColor = function(colorValue) {\r\n\t\t/* global CanvasPattern */\r\n\t\treturn (colorValue instanceof CanvasPattern) ?\r\n\t\t\tcolorValue :\r\n\t\t\thelpers.color(colorValue).saturate(0.5).darken(0.1).rgbString();\r\n\t};\r\n};\r\n\r\n},{\"26\":26,\"3\":3,\"34\":34,\"46\":46}],29:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(46);\r\n\r\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {Point} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param chart {chart} the chart\r\n * @param handler {Function} the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar datasets = chart.data.datasets;\r\n\tvar meta, i, j, ilen, jlen;\r\n\r\n\tfor (i = 0, ilen = datasets.length; i < ilen; ++i) {\r\n\t\tif (!chart.isDatasetVisible(i)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tmeta = chart.getDatasetMeta(i);\r\n\t\tfor (j = 0, jlen = meta.data.length; j < jlen; ++j) {\r\n\t\t\tvar element = meta.data[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param items {ChartElement[]} elements to filter\r\n * @param position {Point} the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param chart {Chart} the chart to look at elements from\r\n * @param position {Point} the point to be nearest to\r\n * @param intersect {Boolean} if true, only consider items that intersect the position\r\n * @param distanceMetric {Function} function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {String} axis the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart.data.datasets.forEach(function(dataset, datasetIndex) {\r\n\t\tif (chart.isDatasetVisible(datasetIndex)) {\r\n\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t\t// don't count items that are skipped (null data)\r\n\t\t\tif (element && !element._view.skip) {\r\n\t\t\t\telements.push(element);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nmodule.exports = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param chart {chart} the chart we are returning items from\r\n\t\t * @param e {Event} the event we are find things at\r\n\t\t * @param options {IInteractionOptions} options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param chart {chart} the chart we are returning items from\r\n\t\t * @param e {Event} the event we are find things at\r\n\t\t * @param options {IInteractionOptions} options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param chart {chart} the chart we are returning items from\r\n\t\t * @param e {Event} the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param chart {chart} the chart we are returning items from\r\n\t\t * @param e {Event} the event we are find things at\r\n\t\t * @param options {IInteractionOptions} options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar nearestItems = getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\r\n\t\t\t// We have multiple items at the same distance from the event. Now sort by smallest\r\n\t\t\tif (nearestItems.length > 1) {\r\n\t\t\t\tnearestItems.sort(function(a, b) {\r\n\t\t\t\t\tvar sizeA = a.getArea();\r\n\t\t\t\t\tvar sizeB = b.getArea();\r\n\t\t\t\t\tvar ret = sizeA - sizeB;\r\n\r\n\t\t\t\t\tif (ret === 0) {\r\n\t\t\t\t\t\t// if equal sort by dataset index\r\n\t\t\t\t\t\tret = a._datasetIndex - b._datasetIndex;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn ret;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Return only 1 item\r\n\t\t\treturn nearestItems.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param chart {chart} the chart we are returning items from\r\n\t\t * @param e {Event} the event we are find things at\r\n\t\t * @param options {IInteractionOptions} options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param chart {chart} the chart we are returning items from\r\n\t\t * @param e {Event} the event we are find things at\r\n\t\t * @param options {IInteractionOptions} options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"46\":46}],30:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\n\r\ndefaults._set('global', {\r\n\tresponsive: true,\r\n\tresponsiveAnimationDuration: 0,\r\n\tmaintainAspectRatio: true,\r\n\tevents: ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'],\r\n\thover: {\r\n\t\tonHover: null,\r\n\t\tmode: 'nearest',\r\n\t\tintersect: true,\r\n\t\tanimationDuration: 400\r\n\t},\r\n\tonClick: null,\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tshowLines: true,\r\n\r\n\t// Element defaults defined in element extensions\r\n\telements: {},\r\n\r\n\t// Layout options such as padding\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = function() {\r\n\r\n\t// Occupy the global variable of Chart, and create a simple base class\r\n\tvar Chart = function(item, config) {\r\n\t\tthis.construct(item, config);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tChart.Chart = Chart;\r\n\r\n\treturn Chart;\r\n};\r\n\r\n},{\"26\":26}],31:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(46);\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers.where(array, function(v) {\r\n\t\treturn v.position === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\tarray.forEach(function(v, i) {\r\n\t\tv._tmpIndex_ = i;\r\n\t\treturn v;\r\n\t});\r\n\tarray.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0._tmpIndex_ - v1._tmpIndex_ :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n\tarray.forEach(function(v) {\r\n\t\tdelete v._tmpIndex_;\r\n\t});\r\n}\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {String} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {Number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {Boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {Function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {Function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {Function} getPadding - Returns an object with padding on the edges\r\n * @prop {Number} width - Width of item. Must be valid after update()\r\n * @prop {Number} height - Height of item. Must be valid after update()\r\n * @prop {Number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {Number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {Number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {Number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nmodule.exports = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {Object} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {Object} item - the item to configure with the given options\r\n\t * @param {Object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {Number} width - the width to fit into\r\n\t * @param {Number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers.options.toPadding(layoutOptions.padding);\r\n\t\tvar leftPadding = padding.left;\r\n\t\tvar rightPadding = padding.right;\r\n\t\tvar topPadding = padding.top;\r\n\t\tvar bottomPadding = padding.bottom;\r\n\r\n\t\tvar leftBoxes = filterByPosition(chart.boxes, 'left');\r\n\t\tvar rightBoxes = filterByPosition(chart.boxes, 'right');\r\n\t\tvar topBoxes = filterByPosition(chart.boxes, 'top');\r\n\t\tvar bottomBoxes = filterByPosition(chart.boxes, 'bottom');\r\n\t\tvar chartAreaBoxes = filterByPosition(chart.boxes, 'chartArea');\r\n\r\n\t\t// Sort boxes by weight. A higher weight is further away from the chart area\r\n\t\tsortByWeight(leftBoxes, true);\r\n\t\tsortByWeight(rightBoxes, false);\r\n\t\tsortByWeight(topBoxes, true);\r\n\t\tsortByWeight(bottomBoxes, false);\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\t\t// What we do to find the best sizing, we do the following\r\n\t\t// 1. Determine the minimum size of the chart area.\r\n\t\t// 2. Split the remaining width equally between each vertical axis\r\n\t\t// 3. Split the remaining height equally between each horizontal axis\r\n\t\t// 4. Give each layout the maximum size it can be. The layout will return it's minimum size\r\n\t\t// 5. Adjust the sizes of each axis based on it's minimum reported size.\r\n\t\t// 6. Refit each axis\r\n\t\t// 7. Position each axis in the final location\r\n\t\t// 8. Tell the chart the final location of the chart area\r\n\t\t// 9. Tell any axes that overlay the chart area the positions of the chart area\r\n\r\n\t\t// Step 1\r\n\t\tvar chartWidth = width - leftPadding - rightPadding;\r\n\t\tvar chartHeight = height - topPadding - bottomPadding;\r\n\t\tvar chartAreaWidth = chartWidth / 2; // min 50%\r\n\t\tvar chartAreaHeight = chartHeight / 2; // min 50%\r\n\r\n\t\t// Step 2\r\n\t\tvar verticalBoxWidth = (width - chartAreaWidth) / (leftBoxes.length + rightBoxes.length);\r\n\r\n\t\t// Step 3\r\n\t\tvar horizontalBoxHeight = (height - chartAreaHeight) / (topBoxes.length + bottomBoxes.length);\r\n\r\n\t\t// Step 4\r\n\t\tvar maxChartAreaWidth = chartWidth;\r\n\t\tvar maxChartAreaHeight = chartHeight;\r\n\t\tvar minBoxSizes = [];\r\n\r\n\t\tfunction getMinimumBoxSize(box) {\r\n\t\t\tvar minSize;\r\n\t\t\tvar isHorizontal = box.isHorizontal();\r\n\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\tminSize = box.update(box.fullWidth ? chartWidth : maxChartAreaWidth, horizontalBoxHeight);\r\n\t\t\t\tmaxChartAreaHeight -= minSize.height;\r\n\t\t\t} else {\r\n\t\t\t\tminSize = box.update(verticalBoxWidth, maxChartAreaHeight);\r\n\t\t\t\tmaxChartAreaWidth -= minSize.width;\r\n\t\t\t}\r\n\r\n\t\t\tminBoxSizes.push({\r\n\t\t\t\thorizontal: isHorizontal,\r\n\t\t\t\tminSize: minSize,\r\n\t\t\t\tbox: box,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\thelpers.each(leftBoxes.concat(rightBoxes, topBoxes, bottomBoxes), getMinimumBoxSize);\r\n\r\n\t\t// If a horizontal box has padding, we move the left boxes over to avoid ugly charts (see issue #2478)\r\n\t\tvar maxHorizontalLeftPadding = 0;\r\n\t\tvar maxHorizontalRightPadding = 0;\r\n\t\tvar maxVerticalTopPadding = 0;\r\n\t\tvar maxVerticalBottomPadding = 0;\r\n\r\n\t\thelpers.each(topBoxes.concat(bottomBoxes), function(horizontalBox) {\r\n\t\t\tif (horizontalBox.getPadding) {\r\n\t\t\t\tvar boxPadding = horizontalBox.getPadding();\r\n\t\t\t\tmaxHorizontalLeftPadding = Math.max(maxHorizontalLeftPadding, boxPadding.left);\r\n\t\t\t\tmaxHorizontalRightPadding = Math.max(maxHorizontalRightPadding, boxPadding.right);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\thelpers.each(leftBoxes.concat(rightBoxes), function(verticalBox) {\r\n\t\t\tif (verticalBox.getPadding) {\r\n\t\t\t\tvar boxPadding = verticalBox.getPadding();\r\n\t\t\t\tmaxVerticalTopPadding = Math.max(maxVerticalTopPadding, boxPadding.top);\r\n\t\t\t\tmaxVerticalBottomPadding = Math.max(maxVerticalBottomPadding, boxPadding.bottom);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// At this point, maxChartAreaHeight and maxChartAreaWidth are the size the chart area could\r\n\t\t// be if the axes are drawn at their minimum sizes.\r\n\t\t// Steps 5 & 6\r\n\t\tvar totalLeftBoxesWidth = leftPadding;\r\n\t\tvar totalRightBoxesWidth = rightPadding;\r\n\t\tvar totalTopBoxesHeight = topPadding;\r\n\t\tvar totalBottomBoxesHeight = bottomPadding;\r\n\r\n\t\t// Function to fit a box\r\n\t\tfunction fitBox(box) {\r\n\t\t\tvar minBoxSize = helpers.findNextWhere(minBoxSizes, function(minBox) {\r\n\t\t\t\treturn minBox.box === box;\r\n\t\t\t});\r\n\r\n\t\t\tif (minBoxSize) {\r\n\t\t\t\tif (box.isHorizontal()) {\r\n\t\t\t\t\tvar scaleMargin = {\r\n\t\t\t\t\t\tleft: Math.max(totalLeftBoxesWidth, maxHorizontalLeftPadding),\r\n\t\t\t\t\t\tright: Math.max(totalRightBoxesWidth, maxHorizontalRightPadding),\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\tbottom: 0\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Don't use min size here because of label rotation. When the labels are rotated, their rotation highly depends\r\n\t\t\t\t\t// on the margin. Sometimes they need to increase in size slightly\r\n\t\t\t\t\tbox.update(box.fullWidth ? chartWidth : maxChartAreaWidth, chartHeight / 2, scaleMargin);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbox.update(minBoxSize.minSize.width, maxChartAreaHeight);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Update, and calculate the left and right margins for the horizontal boxes\r\n\t\thelpers.each(leftBoxes.concat(rightBoxes), fitBox);\r\n\r\n\t\thelpers.each(leftBoxes, function(box) {\r\n\t\t\ttotalLeftBoxesWidth += box.width;\r\n\t\t});\r\n\r\n\t\thelpers.each(rightBoxes, function(box) {\r\n\t\t\ttotalRightBoxesWidth += box.width;\r\n\t\t});\r\n\r\n\t\t// Set the Left and Right margins for the horizontal boxes\r\n\t\thelpers.each(topBoxes.concat(bottomBoxes), fitBox);\r\n\r\n\t\t// Figure out how much margin is on the top and bottom of the vertical boxes\r\n\t\thelpers.each(topBoxes, function(box) {\r\n\t\t\ttotalTopBoxesHeight += box.height;\r\n\t\t});\r\n\r\n\t\thelpers.each(bottomBoxes, function(box) {\r\n\t\t\ttotalBottomBoxesHeight += box.height;\r\n\t\t});\r\n\r\n\t\tfunction finalFitVerticalBox(box) {\r\n\t\t\tvar minBoxSize = helpers.findNextWhere(minBoxSizes, function(minSize) {\r\n\t\t\t\treturn minSize.box === box;\r\n\t\t\t});\r\n\r\n\t\t\tvar scaleMargin = {\r\n\t\t\t\tleft: 0,\r\n\t\t\t\tright: 0,\r\n\t\t\t\ttop: totalTopBoxesHeight,\r\n\t\t\t\tbottom: totalBottomBoxesHeight\r\n\t\t\t};\r\n\r\n\t\t\tif (minBoxSize) {\r\n\t\t\t\tbox.update(minBoxSize.minSize.width, maxChartAreaHeight, scaleMargin);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Let the left layout know the final margin\r\n\t\thelpers.each(leftBoxes.concat(rightBoxes), finalFitVerticalBox);\r\n\r\n\t\t// Recalculate because the size of each layout might have changed slightly due to the margins (label rotation for instance)\r\n\t\ttotalLeftBoxesWidth = leftPadding;\r\n\t\ttotalRightBoxesWidth = rightPadding;\r\n\t\ttotalTopBoxesHeight = topPadding;\r\n\t\ttotalBottomBoxesHeight = bottomPadding;\r\n\r\n\t\thelpers.each(leftBoxes, function(box) {\r\n\t\t\ttotalLeftBoxesWidth += box.width;\r\n\t\t});\r\n\r\n\t\thelpers.each(rightBoxes, function(box) {\r\n\t\t\ttotalRightBoxesWidth += box.width;\r\n\t\t});\r\n\r\n\t\thelpers.each(topBoxes, function(box) {\r\n\t\t\ttotalTopBoxesHeight += box.height;\r\n\t\t});\r\n\t\thelpers.each(bottomBoxes, function(box) {\r\n\t\t\ttotalBottomBoxesHeight += box.height;\r\n\t\t});\r\n\r\n\t\t// We may be adding some padding to account for rotated x axis labels\r\n\t\tvar leftPaddingAddition = Math.max(maxHorizontalLeftPadding - totalLeftBoxesWidth, 0);\r\n\t\ttotalLeftBoxesWidth += leftPaddingAddition;\r\n\t\ttotalRightBoxesWidth += Math.max(maxHorizontalRightPadding - totalRightBoxesWidth, 0);\r\n\r\n\t\tvar topPaddingAddition = Math.max(maxVerticalTopPadding - totalTopBoxesHeight, 0);\r\n\t\ttotalTopBoxesHeight += topPaddingAddition;\r\n\t\ttotalBottomBoxesHeight += Math.max(maxVerticalBottomPadding - totalBottomBoxesHeight, 0);\r\n\r\n\t\t// Figure out if our chart area changed. This would occur if the dataset layout label rotation\r\n\t\t// changed due to the application of the margins in step 6. Since we can only get bigger, this is safe to do\r\n\t\t// without calling `fit` again\r\n\t\tvar newMaxChartAreaHeight = height - totalTopBoxesHeight - totalBottomBoxesHeight;\r\n\t\tvar newMaxChartAreaWidth = width - totalLeftBoxesWidth - totalRightBoxesWidth;\r\n\r\n\t\tif (newMaxChartAreaWidth !== maxChartAreaWidth || newMaxChartAreaHeight !== maxChartAreaHeight) {\r\n\t\t\thelpers.each(leftBoxes, function(box) {\r\n\t\t\t\tbox.height = newMaxChartAreaHeight;\r\n\t\t\t});\r\n\r\n\t\t\thelpers.each(rightBoxes, function(box) {\r\n\t\t\t\tbox.height = newMaxChartAreaHeight;\r\n\t\t\t});\r\n\r\n\t\t\thelpers.each(topBoxes, function(box) {\r\n\t\t\t\tif (!box.fullWidth) {\r\n\t\t\t\t\tbox.width = newMaxChartAreaWidth;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\thelpers.each(bottomBoxes, function(box) {\r\n\t\t\t\tif (!box.fullWidth) {\r\n\t\t\t\t\tbox.width = newMaxChartAreaWidth;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmaxChartAreaHeight = newMaxChartAreaHeight;\r\n\t\t\tmaxChartAreaWidth = newMaxChartAreaWidth;\r\n\t\t}\r\n\r\n\t\t// Step 7 - Position the boxes\r\n\t\tvar left = leftPadding + leftPaddingAddition;\r\n\t\tvar top = topPadding + topPaddingAddition;\r\n\r\n\t\tfunction placeBox(box) {\r\n\t\t\tif (box.isHorizontal()) {\r\n\t\t\t\tbox.left = box.fullWidth ? leftPadding : totalLeftBoxesWidth;\r\n\t\t\t\tbox.right = box.fullWidth ? width - rightPadding : totalLeftBoxesWidth + maxChartAreaWidth;\r\n\t\t\t\tbox.top = top;\r\n\t\t\t\tbox.bottom = top + box.height;\r\n\r\n\t\t\t\t// Move to next point\r\n\t\t\t\ttop = box.bottom;\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tbox.left = left;\r\n\t\t\t\tbox.right = left + box.width;\r\n\t\t\t\tbox.top = totalTopBoxesHeight;\r\n\t\t\t\tbox.bottom = totalTopBoxesHeight + maxChartAreaHeight;\r\n\r\n\t\t\t\t// Move to next point\r\n\t\t\t\tleft = box.right;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers.each(leftBoxes.concat(topBoxes), placeBox);\r\n\r\n\t\t// Account for chart width and height\r\n\t\tleft += maxChartAreaWidth;\r\n\t\ttop += maxChartAreaHeight;\r\n\r\n\t\thelpers.each(rightBoxes, placeBox);\r\n\t\thelpers.each(bottomBoxes, placeBox);\r\n\r\n\t\t// Step 8\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: totalLeftBoxesWidth,\r\n\t\t\ttop: totalTopBoxesHeight,\r\n\t\t\tright: totalLeftBoxesWidth + maxChartAreaWidth,\r\n\t\t\tbottom: totalTopBoxesHeight + maxChartAreaHeight\r\n\t\t};\r\n\r\n\t\t// Step 9\r\n\t\thelpers.each(chartAreaBoxes, function(box) {\r\n\t\t\tbox.left = chart.chartArea.left;\r\n\t\t\tbox.top = chart.chartArea.top;\r\n\t\t\tbox.right = chart.chartArea.right;\r\n\t\t\tbox.bottom = chart.chartArea.bottom;\r\n\r\n\t\t\tbox.update(maxChartAreaWidth, maxChartAreaHeight);\r\n\t\t});\r\n\t}\r\n};\r\n\r\n},{\"46\":46}],32:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar helpers = require(46);\r\n\r\ndefaults._set('global', {\r\n\tplugins: {}\r\n});\r\n\r\n/**\r\n * The plugin service singleton\r\n * @namespace Chart.plugins\r\n * @since 2.1.0\r\n */\r\nmodule.exports = {\r\n\t/**\r\n\t * Globally registered plugins.\r\n\t * @private\r\n\t */\r\n\t_plugins: [],\r\n\r\n\t/**\r\n\t * This identifier is used to invalidate the descriptors cache attached to each chart\r\n\t * when a global plugin is registered or unregistered. In this case, the cache ID is\r\n\t * incremented and descriptors are regenerated during following API calls.\r\n\t * @private\r\n\t */\r\n\t_cacheId: 0,\r\n\r\n\t/**\r\n\t * Registers the given plugin(s) if not already registered.\r\n\t * @param {Array|Object} plugins plugin instance(s).\r\n\t */\r\n\tregister: function(plugins) {\r\n\t\tvar p = this._plugins;\r\n\t\t([]).concat(plugins).forEach(function(plugin) {\r\n\t\t\tif (p.indexOf(plugin) === -1) {\r\n\t\t\t\tp.push(plugin);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis._cacheId++;\r\n\t},\r\n\r\n\t/**\r\n\t * Unregisters the given plugin(s) only if registered.\r\n\t * @param {Array|Object} plugins plugin instance(s).\r\n\t */\r\n\tunregister: function(plugins) {\r\n\t\tvar p = this._plugins;\r\n\t\t([]).concat(plugins).forEach(function(plugin) {\r\n\t\t\tvar idx = p.indexOf(plugin);\r\n\t\t\tif (idx !== -1) {\r\n\t\t\t\tp.splice(idx, 1);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis._cacheId++;\r\n\t},\r\n\r\n\t/**\r\n\t * Remove all registered plugins.\r\n\t * @since 2.1.5\r\n\t */\r\n\tclear: function() {\r\n\t\tthis._plugins = [];\r\n\t\tthis._cacheId++;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the number of registered plugins?\r\n\t * @returns {Number}\r\n\t * @since 2.1.5\r\n\t */\r\n\tcount: function() {\r\n\t\treturn this._plugins.length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns all registered plugin instances.\r\n\t * @returns {Array} array of plugin objects.\r\n\t * @since 2.1.5\r\n\t */\r\n\tgetAll: function() {\r\n\t\treturn this._plugins;\r\n\t},\r\n\r\n\t/**\r\n\t * Calls enabled plugins for `chart` on the specified hook and with the given args.\r\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\r\n\t * returned value can be used, for instance, to interrupt the current action.\r\n\t * @param {Object} chart - The chart instance for which plugins should be called.\r\n\t * @param {String} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\r\n\t * @param {Array} [args] - Extra arguments to apply to the hook call.\r\n\t * @returns {Boolean} false if any of the plugins return false, else returns true.\r\n\t */\r\n\tnotify: function(chart, hook, args) {\r\n\t\tvar descriptors = this.descriptors(chart);\r\n\t\tvar ilen = descriptors.length;\r\n\t\tvar i, descriptor, plugin, params, method;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tdescriptor = descriptors[i];\r\n\t\t\tplugin = descriptor.plugin;\r\n\t\t\tmethod = plugin[hook];\r\n\t\t\tif (typeof method === 'function') {\r\n\t\t\t\tparams = [chart].concat(args || []);\r\n\t\t\t\tparams.push(descriptor.options);\r\n\t\t\t\tif (method.apply(plugin, params) === false) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns descriptors of enabled plugins for the given chart.\r\n\t * @returns {Array} [{ plugin, options }]\r\n\t * @private\r\n\t */\r\n\tdescriptors: function(chart) {\r\n\t\tvar cache = chart.$plugins || (chart.$plugins = {});\r\n\t\tif (cache.id === this._cacheId) {\r\n\t\t\treturn cache.descriptors;\r\n\t\t}\r\n\r\n\t\tvar plugins = [];\r\n\t\tvar descriptors = [];\r\n\t\tvar config = (chart && chart.config) || {};\r\n\t\tvar options = (config.options && config.options.plugins) || {};\r\n\r\n\t\tthis._plugins.concat(config.plugins || []).forEach(function(plugin) {\r\n\t\t\tvar idx = plugins.indexOf(plugin);\r\n\t\t\tif (idx !== -1) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar id = plugin.id;\r\n\t\t\tvar opts = options[id];\r\n\t\t\tif (opts === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (opts === true) {\r\n\t\t\t\topts = helpers.clone(defaults.global.plugins[id]);\r\n\t\t\t}\r\n\r\n\t\t\tplugins.push(plugin);\r\n\t\t\tdescriptors.push({\r\n\t\t\t\tplugin: plugin,\r\n\t\t\t\toptions: opts || {}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tcache.descriptors = descriptors;\r\n\t\tcache.id = this._cacheId;\r\n\t\treturn descriptors;\r\n\t},\r\n\r\n\t/**\r\n\t * Invalidates cache for the given chart: descriptors hold a reference on plugin option,\r\n\t * but in some cases, this reference can be changed by the user when updating options.\r\n\t * https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\r\n\t * @private\r\n\t */\r\n\t_invalidate: function(chart) {\r\n\t\tdelete chart.$plugins;\r\n\t}\r\n};\r\n\r\n/**\r\n * Plugin extension hooks.\r\n * @interface IPlugin\r\n * @since 2.1.0\r\n */\r\n/**\r\n * @method IPlugin#beforeInit\r\n * @desc Called before initializing `chart`.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#afterInit\r\n * @desc Called after `chart` has been initialized and before the first update.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeUpdate\r\n * @desc Called before updating `chart`. If any plugin returns `false`, the update\r\n * is cancelled (and thus subsequent render(s)) until another `update` is triggered.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart update.\r\n */\r\n/**\r\n * @method IPlugin#afterUpdate\r\n * @desc Called after `chart` has been updated and before rendering. Note that this\r\n * hook will not be called if the chart update has been previously cancelled.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeDatasetsUpdate\r\n * @desc Called before updating the `chart` datasets. If any plugin returns `false`,\r\n * the datasets update is cancelled until another `update` is triggered.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} false to cancel the datasets update.\r\n * @since version 2.1.5\r\n*/\r\n/**\r\n * @method IPlugin#afterDatasetsUpdate\r\n * @desc Called after the `chart` datasets have been updated. Note that this hook\r\n * will not be called if the datasets update has been previously cancelled.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n * @since version 2.1.5\r\n */\r\n/**\r\n * @method IPlugin#beforeDatasetUpdate\r\n * @desc Called before updating the `chart` dataset at the given `args.index`. If any plugin\r\n * returns `false`, the datasets update is cancelled until another `update` is triggered.\r\n * @param {Chart} chart - The chart instance.\r\n * @param {Object} args - The call arguments.\r\n * @param {Number} args.index - The dataset index.\r\n * @param {Object} args.meta - The dataset metadata.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\r\n */\r\n/**\r\n * @method IPlugin#afterDatasetUpdate\r\n * @desc Called after the `chart` datasets at the given `args.index` has been updated. Note\r\n * that this hook will not be called if the datasets update has been previously cancelled.\r\n * @param {Chart} chart - The chart instance.\r\n * @param {Object} args - The call arguments.\r\n * @param {Number} args.index - The dataset index.\r\n * @param {Object} args.meta - The dataset metadata.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeLayout\r\n * @desc Called before laying out `chart`. If any plugin returns `false`,\r\n * the layout update is cancelled until another `update` is triggered.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart layout.\r\n */\r\n/**\r\n * @method IPlugin#afterLayout\r\n * @desc Called after the `chart` has been layed out. Note that this hook will not\r\n * be called if the layout update has been previously cancelled.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeRender\r\n * @desc Called before rendering `chart`. If any plugin returns `false`,\r\n * the rendering is cancelled until another `render` is triggered.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart rendering.\r\n */\r\n/**\r\n * @method IPlugin#afterRender\r\n * @desc Called after the `chart` has been fully rendered (and animation completed). Note\r\n * that this hook will not be called if the rendering has been previously cancelled.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeDraw\r\n * @desc Called before drawing `chart` at every animation frame specified by the given\r\n * easing value. If any plugin returns `false`, the frame drawing is cancelled until\r\n * another `render` is triggered.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart drawing.\r\n */\r\n/**\r\n * @method IPlugin#afterDraw\r\n * @desc Called after the `chart` has been drawn for the specific easing value. Note\r\n * that this hook will not be called if the drawing has been previously cancelled.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeDatasetsDraw\r\n * @desc Called before drawing the `chart` datasets. If any plugin returns `false`,\r\n * the datasets drawing is cancelled until another `render` is triggered.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\r\n */\r\n/**\r\n * @method IPlugin#afterDatasetsDraw\r\n * @desc Called after the `chart` datasets have been drawn. Note that this hook\r\n * will not be called if the datasets drawing has been previously cancelled.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeDatasetDraw\r\n * @desc Called before drawing the `chart` dataset at the given `args.index` (datasets\r\n * are drawn in the reverse order). If any plugin returns `false`, the datasets drawing\r\n * is cancelled until another `render` is triggered.\r\n * @param {Chart} chart - The chart instance.\r\n * @param {Object} args - The call arguments.\r\n * @param {Number} args.index - The dataset index.\r\n * @param {Object} args.meta - The dataset metadata.\r\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\r\n */\r\n/**\r\n * @method IPlugin#afterDatasetDraw\r\n * @desc Called after the `chart` datasets at the given `args.index` have been drawn\r\n * (datasets are drawn in the reverse order). Note that this hook will not be called\r\n * if the datasets drawing has been previously cancelled.\r\n * @param {Chart} chart - The chart instance.\r\n * @param {Object} args - The call arguments.\r\n * @param {Number} args.index - The dataset index.\r\n * @param {Object} args.meta - The dataset metadata.\r\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeTooltipDraw\r\n * @desc Called before drawing the `tooltip`. If any plugin returns `false`,\r\n * the tooltip drawing is cancelled until another `render` is triggered.\r\n * @param {Chart} chart - The chart instance.\r\n * @param {Object} args - The call arguments.\r\n * @param {Object} args.tooltip - The tooltip.\r\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart tooltip drawing.\r\n */\r\n/**\r\n * @method IPlugin#afterTooltipDraw\r\n * @desc Called after drawing the `tooltip`. Note that this hook will not\r\n * be called if the tooltip drawing has been previously cancelled.\r\n * @param {Chart} chart - The chart instance.\r\n * @param {Object} args - The call arguments.\r\n * @param {Object} args.tooltip - The tooltip.\r\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeEvent\r\n * @desc Called before processing the specified `event`. If any plugin returns `false`,\r\n * the event will be discarded.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {IEvent} event - The event object.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#afterEvent\r\n * @desc Called after the `event` has been consumed. Note that this hook\r\n * will not be called if the `event` has been previously discarded.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {IEvent} event - The event object.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#resize\r\n * @desc Called after the chart as been resized.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Number} size - The new canvas display size (eq. canvas.style width & height).\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#destroy\r\n * @desc Called after the chart as been destroyed.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n */\r\n\r\n},{\"26\":26,\"46\":46}],33:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar Element = require(27);\r\nvar helpers = require(46);\r\nvar Ticks = require(35);\r\n\r\ndefaults._set('scale', {\r\n\tdisplay: true,\r\n\tposition: 'left',\r\n\toffset: false,\r\n\r\n\t// grid line settings\r\n\tgridLines: {\r\n\t\tdisplay: true,\r\n\t\tcolor: 'rgba(0, 0, 0, 0.1)',\r\n\t\tlineWidth: 1,\r\n\t\tdrawBorder: true,\r\n\t\tdrawOnChartArea: true,\r\n\t\tdrawTicks: true,\r\n\t\ttickMarkLength: 10,\r\n\t\tzeroLineWidth: 1,\r\n\t\tzeroLineColor: 'rgba(0,0,0,0.25)',\r\n\t\tzeroLineBorderDash: [],\r\n\t\tzeroLineBorderDashOffset: 0.0,\r\n\t\toffsetGridLines: false,\r\n\t\tborderDash: [],\r\n\t\tborderDashOffset: 0.0\r\n\t},\r\n\r\n\t// scale label\r\n\tscaleLabel: {\r\n\t\t// display property\r\n\t\tdisplay: false,\r\n\r\n\t\t// actual label\r\n\t\tlabelString: '',\r\n\r\n\t\t// line height\r\n\t\tlineHeight: 1.2,\r\n\r\n\t\t// top/bottom padding\r\n\t\tpadding: {\r\n\t\t\ttop: 4,\r\n\t\t\tbottom: 4\r\n\t\t}\r\n\t},\r\n\r\n\t// label settings\r\n\tticks: {\r\n\t\tbeginAtZero: false,\r\n\t\tminRotation: 0,\r\n\t\tmaxRotation: 50,\r\n\t\tmirror: false,\r\n\t\tpadding: 0,\r\n\t\treverse: false,\r\n\t\tdisplay: true,\r\n\t\tautoSkip: true,\r\n\t\tautoSkipPadding: 0,\r\n\t\tlabelOffset: 0,\r\n\t\t// We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\r\n\t\tcallback: Ticks.formatters.values,\r\n\t\tminor: {},\r\n\t\tmajor: {}\r\n\t}\r\n});\r\n\r\nfunction labelsFromTicks(ticks) {\r\n\tvar labels = [];\r\n\tvar i, ilen;\r\n\r\n\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\r\n\t\tlabels.push(ticks[i].label);\r\n\t}\r\n\r\n\treturn labels;\r\n}\r\n\r\nfunction getLineValue(scale, index, offsetGridLines) {\r\n\tvar lineValue = scale.getPixelForTick(index);\r\n\r\n\tif (offsetGridLines) {\r\n\t\tif (index === 0) {\r\n\t\t\tlineValue -= (scale.getPixelForTick(1) - lineValue) / 2;\r\n\t\t} else {\r\n\t\t\tlineValue -= (lineValue - scale.getPixelForTick(index - 1)) / 2;\r\n\t\t}\r\n\t}\r\n\treturn lineValue;\r\n}\r\n\r\nfunction computeTextSize(context, tick, font) {\r\n\treturn helpers.isArray(tick) ?\r\n\t\thelpers.longestText(context, font, tick) :\r\n\t\tcontext.measureText(tick).width;\r\n}\r\n\r\nfunction parseFontOptions(options) {\r\n\tvar valueOrDefault = helpers.valueOrDefault;\r\n\tvar globalDefaults = defaults.global;\r\n\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\tvar style = valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle);\r\n\tvar family = valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily);\r\n\r\n\treturn {\r\n\t\tsize: size,\r\n\t\tstyle: style,\r\n\t\tfamily: family,\r\n\t\tfont: helpers.fontString(size, style, family)\r\n\t};\r\n}\r\n\r\nfunction parseLineHeight(options) {\r\n\treturn helpers.options.toLineHeight(\r\n\t\thelpers.valueOrDefault(options.lineHeight, 1.2),\r\n\t\thelpers.valueOrDefault(options.fontSize, defaults.global.defaultFontSize));\r\n}\r\n\r\nmodule.exports = Element.extend({\r\n\t/**\r\n\t * Get the padding needed for the scale\r\n\t * @method getPadding\r\n\t * @private\r\n\t * @returns {Padding} the necessary padding\r\n\t */\r\n\tgetPadding: function() {\r\n\t\tvar me = this;\r\n\t\treturn {\r\n\t\t\tleft: me.paddingLeft || 0,\r\n\t\t\ttop: me.paddingTop || 0,\r\n\t\t\tright: me.paddingRight || 0,\r\n\t\t\tbottom: me.paddingBottom || 0\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the scale tick objects ({label, major})\r\n\t * @since 2.7\r\n\t */\r\n\tgetTicks: function() {\r\n\t\treturn this._ticks;\r\n\t},\r\n\r\n\t// These methods are ordered by lifecyle. Utilities then follow.\r\n\t// Any function defined here is inherited by all scale types.\r\n\t// Any function can be extended by the scale type\r\n\r\n\tmergeTicksOptions: function() {\r\n\t\tvar ticks = this.options.ticks;\r\n\t\tif (ticks.minor === false) {\r\n\t\t\tticks.minor = {\r\n\t\t\t\tdisplay: false\r\n\t\t\t};\r\n\t\t}\r\n\t\tif (ticks.major === false) {\r\n\t\t\tticks.major = {\r\n\t\t\t\tdisplay: false\r\n\t\t\t};\r\n\t\t}\r\n\t\tfor (var key in ticks) {\r\n\t\t\tif (key !== 'major' && key !== 'minor') {\r\n\t\t\t\tif (typeof ticks.minor[key] === 'undefined') {\r\n\t\t\t\t\tticks.minor[key] = ticks[key];\r\n\t\t\t\t}\r\n\t\t\t\tif (typeof ticks.major[key] === 'undefined') {\r\n\t\t\t\t\tticks.major[key] = ticks[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tbeforeUpdate: function() {\r\n\t\thelpers.callback(this.options.beforeUpdate, [this]);\r\n\t},\r\n\r\n\tupdate: function(maxWidth, maxHeight, margins) {\r\n\t\tvar me = this;\r\n\t\tvar i, ilen, labels, label, ticks, tick;\r\n\r\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\r\n\t\tme.beforeUpdate();\r\n\r\n\t\t// Absorb the master measurements\r\n\t\tme.maxWidth = maxWidth;\r\n\t\tme.maxHeight = maxHeight;\r\n\t\tme.margins = helpers.extend({\r\n\t\t\tleft: 0,\r\n\t\t\tright: 0,\r\n\t\t\ttop: 0,\r\n\t\t\tbottom: 0\r\n\t\t}, margins);\r\n\t\tme.longestTextCache = me.longestTextCache || {};\r\n\r\n\t\t// Dimensions\r\n\t\tme.beforeSetDimensions();\r\n\t\tme.setDimensions();\r\n\t\tme.afterSetDimensions();\r\n\r\n\t\t// Data min/max\r\n\t\tme.beforeDataLimits();\r\n\t\tme.determineDataLimits();\r\n\t\tme.afterDataLimits();\r\n\r\n\t\t// Ticks - `this.ticks` is now DEPRECATED!\r\n\t\t// Internal ticks are now stored as objects in the PRIVATE `this._ticks` member\r\n\t\t// and must not be accessed directly from outside this class. `this.ticks` being\r\n\t\t// around for long time and not marked as private, we can't change its structure\r\n\t\t// without unexpected breaking changes. If you need to access the scale ticks,\r\n\t\t// use scale.getTicks() instead.\r\n\r\n\t\tme.beforeBuildTicks();\r\n\r\n\t\t// New implementations should return an array of objects but for BACKWARD COMPAT,\r\n\t\t// we still support no return (`this.ticks` internally set by calling this method).\r\n\t\tticks = me.buildTicks() || [];\r\n\r\n\t\tme.afterBuildTicks();\r\n\r\n\t\tme.beforeTickToLabelConversion();\r\n\r\n\t\t// New implementations should return the formatted tick labels but for BACKWARD\r\n\t\t// COMPAT, we still support no return (`this.ticks` internally changed by calling\r\n\t\t// this method and supposed to contain only string values).\r\n\t\tlabels = me.convertTicksToLabels(ticks) || me.ticks;\r\n\r\n\t\tme.afterTickToLabelConversion();\r\n\r\n\t\tme.ticks = labels; // BACKWARD COMPATIBILITY\r\n\r\n\t\t// IMPORTANT: from this point, we consider that `this.ticks` will NEVER change!\r\n\r\n\t\t// BACKWARD COMPAT: synchronize `_ticks` with labels (so potentially `this.ticks`)\r\n\t\tfor (i = 0, ilen = labels.length; i < ilen; ++i) {\r\n\t\t\tlabel = labels[i];\r\n\t\t\ttick = ticks[i];\r\n\t\t\tif (!tick) {\r\n\t\t\t\tticks.push(tick = {\r\n\t\t\t\t\tlabel: label,\r\n\t\t\t\t\tmajor: false\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\ttick.label = label;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tme._ticks = ticks;\r\n\r\n\t\t// Tick Rotation\r\n\t\tme.beforeCalculateTickRotation();\r\n\t\tme.calculateTickRotation();\r\n\t\tme.afterCalculateTickRotation();\r\n\t\t// Fit\r\n\t\tme.beforeFit();\r\n\t\tme.fit();\r\n\t\tme.afterFit();\r\n\t\t//\r\n\t\tme.afterUpdate();\r\n\r\n\t\treturn me.minSize;\r\n\r\n\t},\r\n\tafterUpdate: function() {\r\n\t\thelpers.callback(this.options.afterUpdate, [this]);\r\n\t},\r\n\r\n\t//\r\n\r\n\tbeforeSetDimensions: function() {\r\n\t\thelpers.callback(this.options.beforeSetDimensions, [this]);\r\n\t},\r\n\tsetDimensions: function() {\r\n\t\tvar me = this;\r\n\t\t// Set the unconstrained dimension before label rotation\r\n\t\tif (me.isHorizontal()) {\r\n\t\t\t// Reset position before calculating rotation\r\n\t\t\tme.width = me.maxWidth;\r\n\t\t\tme.left = 0;\r\n\t\t\tme.right = me.width;\r\n\t\t} else {\r\n\t\t\tme.height = me.maxHeight;\r\n\r\n\t\t\t// Reset position before calculating rotation\r\n\t\t\tme.top = 0;\r\n\t\t\tme.bottom = me.height;\r\n\t\t}\r\n\r\n\t\t// Reset padding\r\n\t\tme.paddingLeft = 0;\r\n\t\tme.paddingTop = 0;\r\n\t\tme.paddingRight = 0;\r\n\t\tme.paddingBottom = 0;\r\n\t},\r\n\tafterSetDimensions: function() {\r\n\t\thelpers.callback(this.options.afterSetDimensions, [this]);\r\n\t},\r\n\r\n\t// Data limits\r\n\tbeforeDataLimits: function() {\r\n\t\thelpers.callback(this.options.beforeDataLimits, [this]);\r\n\t},\r\n\tdetermineDataLimits: helpers.noop,\r\n\tafterDataLimits: function() {\r\n\t\thelpers.callback(this.options.afterDataLimits, [this]);\r\n\t},\r\n\r\n\t//\r\n\tbeforeBuildTicks: function() {\r\n\t\thelpers.callback(this.options.beforeBuildTicks, [this]);\r\n\t},\r\n\tbuildTicks: helpers.noop,\r\n\tafterBuildTicks: function() {\r\n\t\thelpers.callback(this.options.afterBuildTicks, [this]);\r\n\t},\r\n\r\n\tbeforeTickToLabelConversion: function() {\r\n\t\thelpers.callback(this.options.beforeTickToLabelConversion, [this]);\r\n\t},\r\n\tconvertTicksToLabels: function() {\r\n\t\tvar me = this;\r\n\t\t// Convert ticks to strings\r\n\t\tvar tickOpts = me.options.ticks;\r\n\t\tme.ticks = me.ticks.map(tickOpts.userCallback || tickOpts.callback, this);\r\n\t},\r\n\tafterTickToLabelConversion: function() {\r\n\t\thelpers.callback(this.options.afterTickToLabelConversion, [this]);\r\n\t},\r\n\r\n\t//\r\n\r\n\tbeforeCalculateTickRotation: function() {\r\n\t\thelpers.callback(this.options.beforeCalculateTickRotation, [this]);\r\n\t},\r\n\tcalculateTickRotation: function() {\r\n\t\tvar me = this;\r\n\t\tvar context = me.ctx;\r\n\t\tvar tickOpts = me.options.ticks;\r\n\t\tvar labels = labelsFromTicks(me._ticks);\r\n\r\n\t\t// Get the width of each grid by calculating the difference\r\n\t\t// between x offsets between 0 and 1.\r\n\t\tvar tickFont = parseFontOptions(tickOpts);\r\n\t\tcontext.font = tickFont.font;\r\n\r\n\t\tvar labelRotation = tickOpts.minRotation || 0;\r\n\r\n\t\tif (labels.length && me.options.display && me.isHorizontal()) {\r\n\t\t\tvar originalLabelWidth = helpers.longestText(context, tickFont.font, labels, me.longestTextCache);\r\n\t\t\tvar labelWidth = originalLabelWidth;\r\n\t\t\tvar cosRotation, sinRotation;\r\n\r\n\t\t\t// Allow 3 pixels x2 padding either side for label readability\r\n\t\t\tvar tickWidth = me.getPixelForTick(1) - me.getPixelForTick(0) - 6;\r\n\r\n\t\t\t// Max label rotation can be set or default to 90 - also act as a loop counter\r\n\t\t\twhile (labelWidth > tickWidth && labelRotation < tickOpts.maxRotation) {\r\n\t\t\t\tvar angleRadians = helpers.toRadians(labelRotation);\r\n\t\t\t\tcosRotation = Math.cos(angleRadians);\r\n\t\t\t\tsinRotation = Math.sin(angleRadians);\r\n\r\n\t\t\t\tif (sinRotation * originalLabelWidth > me.maxHeight) {\r\n\t\t\t\t\t// go back one step\r\n\t\t\t\t\tlabelRotation--;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlabelRotation++;\r\n\t\t\t\tlabelWidth = cosRotation * originalLabelWidth;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tme.labelRotation = labelRotation;\r\n\t},\r\n\tafterCalculateTickRotation: function() {\r\n\t\thelpers.callback(this.options.afterCalculateTickRotation, [this]);\r\n\t},\r\n\r\n\t//\r\n\r\n\tbeforeFit: function() {\r\n\t\thelpers.callback(this.options.beforeFit, [this]);\r\n\t},\r\n\tfit: function() {\r\n\t\tvar me = this;\r\n\t\t// Reset\r\n\t\tvar minSize = me.minSize = {\r\n\t\t\twidth: 0,\r\n\t\t\theight: 0\r\n\t\t};\r\n\r\n\t\tvar labels = labelsFromTicks(me._ticks);\r\n\r\n\t\tvar opts = me.options;\r\n\t\tvar tickOpts = opts.ticks;\r\n\t\tvar scaleLabelOpts = opts.scaleLabel;\r\n\t\tvar gridLineOpts = opts.gridLines;\r\n\t\tvar display = opts.display;\r\n\t\tvar isHorizontal = me.isHorizontal();\r\n\r\n\t\tvar tickFont = parseFontOptions(tickOpts);\r\n\t\tvar tickMarkLength = opts.gridLines.tickMarkLength;\r\n\r\n\t\t// Width\r\n\t\tif (isHorizontal) {\r\n\t\t\t// subtract the margins to line up with the chartArea if we are a full width scale\r\n\t\t\tminSize.width = me.isFullWidth() ? me.maxWidth - me.margins.left - me.margins.right : me.maxWidth;\r\n\t\t} else {\r\n\t\t\tminSize.width = display && gridLineOpts.drawTicks ? tickMarkLength : 0;\r\n\t\t}\r\n\r\n\t\t// height\r\n\t\tif (isHorizontal) {\r\n\t\t\tminSize.height = display && gridLineOpts.drawTicks ? tickMarkLength : 0;\r\n\t\t} else {\r\n\t\t\tminSize.height = me.maxHeight; // fill all the height\r\n\t\t}\r\n\r\n\t\t// Are we showing a title for the scale?\r\n\t\tif (scaleLabelOpts.display && display) {\r\n\t\t\tvar scaleLabelLineHeight = parseLineHeight(scaleLabelOpts);\r\n\t\t\tvar scaleLabelPadding = helpers.options.toPadding(scaleLabelOpts.padding);\r\n\t\t\tvar deltaHeight = scaleLabelLineHeight + scaleLabelPadding.height;\r\n\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\tminSize.height += deltaHeight;\r\n\t\t\t} else {\r\n\t\t\t\tminSize.width += deltaHeight;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Don't bother fitting the ticks if we are not showing them\r\n\t\tif (tickOpts.display && display) {\r\n\t\t\tvar largestTextWidth = helpers.longestText(me.ctx, tickFont.font, labels, me.longestTextCache);\r\n\t\t\tvar tallestLabelHeightInLines = helpers.numberOfLabelLines(labels);\r\n\t\t\tvar lineSpace = tickFont.size * 0.5;\r\n\t\t\tvar tickPadding = me.options.ticks.padding;\r\n\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\t// A horizontal axis is more constrained by the height.\r\n\t\t\t\tme.longestLabelWidth = largestTextWidth;\r\n\r\n\t\t\t\tvar angleRadians = helpers.toRadians(me.labelRotation);\r\n\t\t\t\tvar cosRotation = Math.cos(angleRadians);\r\n\t\t\t\tvar sinRotation = Math.sin(angleRadians);\r\n\r\n\t\t\t\t// TODO - improve this calculation\r\n\t\t\t\tvar labelHeight = (sinRotation * largestTextWidth)\r\n\t\t\t\t\t+ (tickFont.size * tallestLabelHeightInLines)\r\n\t\t\t\t\t+ (lineSpace * (tallestLabelHeightInLines - 1))\r\n\t\t\t\t\t+ lineSpace; // padding\r\n\r\n\t\t\t\tminSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding);\r\n\r\n\t\t\t\tme.ctx.font = tickFont.font;\r\n\t\t\t\tvar firstLabelWidth = computeTextSize(me.ctx, labels[0], tickFont.font);\r\n\t\t\t\tvar lastLabelWidth = computeTextSize(me.ctx, labels[labels.length - 1], tickFont.font);\r\n\r\n\t\t\t\t// Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\r\n\t\t\t\t// which means that the right padding is dominated by the font height\r\n\t\t\t\tif (me.labelRotation !== 0) {\r\n\t\t\t\t\tme.paddingLeft = opts.position === 'bottom' ? (cosRotation * firstLabelWidth) + 3 : (cosRotation * lineSpace) + 3; // add 3 px to move away from canvas edges\r\n\t\t\t\t\tme.paddingRight = opts.position === 'bottom' ? (cosRotation * lineSpace) + 3 : (cosRotation * lastLabelWidth) + 3;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tme.paddingLeft = firstLabelWidth / 2 + 3; // add 3 px to move away from canvas edges\r\n\t\t\t\t\tme.paddingRight = lastLabelWidth / 2 + 3;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// A vertical axis is more constrained by the width. Labels are the\r\n\t\t\t\t// dominant factor here, so get that length first and account for padding\r\n\t\t\t\tif (tickOpts.mirror) {\r\n\t\t\t\t\tlargestTextWidth = 0;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// use lineSpace for consistency with horizontal axis\r\n\t\t\t\t\t// tickPadding is not implemented for horizontal\r\n\t\t\t\t\tlargestTextWidth += tickPadding + lineSpace;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tminSize.width = Math.min(me.maxWidth, minSize.width + largestTextWidth);\r\n\r\n\t\t\t\tme.paddingTop = tickFont.size / 2;\r\n\t\t\t\tme.paddingBottom = tickFont.size / 2;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tme.handleMargins();\r\n\r\n\t\tme.width = minSize.width;\r\n\t\tme.height = minSize.height;\r\n\t},\r\n\r\n\t/**\r\n\t * Handle margins and padding interactions\r\n\t * @private\r\n\t */\r\n\thandleMargins: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.margins) {\r\n\t\t\tme.paddingLeft = Math.max(me.paddingLeft - me.margins.left, 0);\r\n\t\t\tme.paddingTop = Math.max(me.paddingTop - me.margins.top, 0);\r\n\t\t\tme.paddingRight = Math.max(me.paddingRight - me.margins.right, 0);\r\n\t\t\tme.paddingBottom = Math.max(me.paddingBottom - me.margins.bottom, 0);\r\n\t\t}\r\n\t},\r\n\r\n\tafterFit: function() {\r\n\t\thelpers.callback(this.options.afterFit, [this]);\r\n\t},\r\n\r\n\t// Shared Methods\r\n\tisHorizontal: function() {\r\n\t\treturn this.options.position === 'top' || this.options.position === 'bottom';\r\n\t},\r\n\tisFullWidth: function() {\r\n\t\treturn (this.options.fullWidth);\r\n\t},\r\n\r\n\t// Get the correct value. NaN bad inputs, If the value type is object get the x or y based on whether we are horizontal or not\r\n\tgetRightValue: function(rawValue) {\r\n\t\t// Null and undefined values first\r\n\t\tif (helpers.isNullOrUndef(rawValue)) {\r\n\t\t\treturn NaN;\r\n\t\t}\r\n\t\t// isNaN(object) returns true, so make sure NaN is checking for a number; Discard Infinite values\r\n\t\tif (typeof rawValue === 'number' && !isFinite(rawValue)) {\r\n\t\t\treturn NaN;\r\n\t\t}\r\n\t\t// If it is in fact an object, dive in one more level\r\n\t\tif (rawValue) {\r\n\t\t\tif (this.isHorizontal()) {\r\n\t\t\t\tif (rawValue.x !== undefined) {\r\n\t\t\t\t\treturn this.getRightValue(rawValue.x);\r\n\t\t\t\t}\r\n\t\t\t} else if (rawValue.y !== undefined) {\r\n\t\t\t\treturn this.getRightValue(rawValue.y);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Value is good, return it\r\n\t\treturn rawValue;\r\n\t},\r\n\r\n\t/**\r\n\t * Used to get the value to display in the tooltip for the data at the given index\r\n\t * @param index\r\n\t * @param datasetIndex\r\n\t */\r\n\tgetLabelForIndex: helpers.noop,\r\n\r\n\t/**\r\n\t * Returns the location of the given data point. Value can either be an index or a numerical value\r\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\r\n\t * @param value\r\n\t * @param index\r\n\t * @param datasetIndex\r\n\t */\r\n\tgetPixelForValue: helpers.noop,\r\n\r\n\t/**\r\n\t * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\r\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\r\n\t * @param pixel\r\n\t */\r\n\tgetValueForPixel: helpers.noop,\r\n\r\n\t/**\r\n\t * Returns the location of the tick at the given index\r\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\r\n\t */\r\n\tgetPixelForTick: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar offset = me.options.offset;\r\n\t\tif (me.isHorizontal()) {\r\n\t\t\tvar innerWidth = me.width - (me.paddingLeft + me.paddingRight);\r\n\t\t\tvar tickWidth = innerWidth / Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\r\n\t\t\tvar pixel = (tickWidth * index) + me.paddingLeft;\r\n\r\n\t\t\tif (offset) {\r\n\t\t\t\tpixel += tickWidth / 2;\r\n\t\t\t}\r\n\r\n\t\t\tvar finalVal = me.left + Math.round(pixel);\r\n\t\t\tfinalVal += me.isFullWidth() ? me.margins.left : 0;\r\n\t\t\treturn finalVal;\r\n\t\t}\r\n\t\tvar innerHeight = me.height - (me.paddingTop + me.paddingBottom);\r\n\t\treturn me.top + (index * (innerHeight / (me._ticks.length - 1)));\r\n\t},\r\n\r\n\t/**\r\n\t * Utility for getting the pixel location of a percentage of scale\r\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\r\n\t */\r\n\tgetPixelForDecimal: function(decimal) {\r\n\t\tvar me = this;\r\n\t\tif (me.isHorizontal()) {\r\n\t\t\tvar innerWidth = me.width - (me.paddingLeft + me.paddingRight);\r\n\t\t\tvar valueOffset = (innerWidth * decimal) + me.paddingLeft;\r\n\r\n\t\t\tvar finalVal = me.left + Math.round(valueOffset);\r\n\t\t\tfinalVal += me.isFullWidth() ? me.margins.left : 0;\r\n\t\t\treturn finalVal;\r\n\t\t}\r\n\t\treturn me.top + (decimal * me.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the pixel for the minimum chart value\r\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\r\n\t */\r\n\tgetBasePixel: function() {\r\n\t\treturn this.getPixelForValue(this.getBaseValue());\r\n\t},\r\n\r\n\tgetBaseValue: function() {\r\n\t\tvar me = this;\r\n\t\tvar min = me.min;\r\n\t\tvar max = me.max;\r\n\r\n\t\treturn me.beginAtZero ? 0 :\r\n\t\t\tmin < 0 && max < 0 ? max :\r\n\t\t\tmin > 0 && max > 0 ? min :\r\n\t\t\t0;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a subset of ticks to be plotted to avoid overlapping labels.\r\n\t * @private\r\n\t */\r\n\t_autoSkip: function(ticks) {\r\n\t\tvar skipRatio;\r\n\t\tvar me = this;\r\n\t\tvar isHorizontal = me.isHorizontal();\r\n\t\tvar optionTicks = me.options.ticks.minor;\r\n\t\tvar tickCount = ticks.length;\r\n\t\tvar labelRotationRadians = helpers.toRadians(me.labelRotation);\r\n\t\tvar cosRotation = Math.cos(labelRotationRadians);\r\n\t\tvar longestRotatedLabel = me.longestLabelWidth * cosRotation;\r\n\t\tvar result = [];\r\n\t\tvar i, tick, shouldSkip;\r\n\r\n\t\t// figure out the maximum number of gridlines to show\r\n\t\tvar maxTicks;\r\n\t\tif (optionTicks.maxTicksLimit) {\r\n\t\t\tmaxTicks = optionTicks.maxTicksLimit;\r\n\t\t}\r\n\r\n\t\tif (isHorizontal) {\r\n\t\t\tskipRatio = false;\r\n\r\n\t\t\tif ((longestRotatedLabel + optionTicks.autoSkipPadding) * tickCount > (me.width - (me.paddingLeft + me.paddingRight))) {\r\n\t\t\t\tskipRatio = 1 + Math.floor(((longestRotatedLabel + optionTicks.autoSkipPadding) * tickCount) / (me.width - (me.paddingLeft + me.paddingRight)));\r\n\t\t\t}\r\n\r\n\t\t\t// if they defined a max number of optionTicks,\r\n\t\t\t// increase skipRatio until that number is met\r\n\t\t\tif (maxTicks && tickCount > maxTicks) {\r\n\t\t\t\tskipRatio = Math.max(skipRatio, Math.floor(tickCount / maxTicks));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (i = 0; i < tickCount; i++) {\r\n\t\t\ttick = ticks[i];\r\n\r\n\t\t\t// Since we always show the last tick,we need may need to hide the last shown one before\r\n\t\t\tshouldSkip = (skipRatio > 1 && i % skipRatio > 0); //|| (i % skipRatio === 0 && i + skipRatio >= tickCount);\r\n\t\t\tif (shouldSkip) {\r\n\t\t\t\t// leave tick in place but make sure it's not displayed (#4635)\r\n\t\t\t\tdelete tick.label;\r\n\t\t\t}\r\n\t\t\tresult.push(tick);\r\n\t\t}\r\n\t\treturn result;\r\n\t},\r\n\r\n\t// Actually draw the scale on the canvas\r\n\t// @param {rectangle} chartArea : the area of the chart to draw full grid lines on\r\n\tdraw: function(chartArea) {\r\n\t\tvar me = this;\r\n\t\tvar options = me.options;\r\n\t\tif (!options.display) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar context = me.ctx;\r\n\t\tvar globalDefaults = defaults.global;\r\n\t\tvar optionTicks = options.ticks.minor;\r\n\t\tvar optionMajorTicks = options.ticks.major || optionTicks;\r\n\t\tvar gridLines = options.gridLines;\r\n\t\tvar scaleLabel = options.scaleLabel;\r\n\r\n\t\tvar isRotated = me.labelRotation !== 0;\r\n\t\tvar isHorizontal = me.isHorizontal();\r\n\r\n\t\tvar ticks = optionTicks.autoSkip ? me._autoSkip(me.getTicks()) : me.getTicks();\r\n\t\tvar tickFontColor = helpers.valueOrDefault(optionTicks.fontColor, globalDefaults.defaultFontColor);\r\n\t\tvar tickFont = parseFontOptions(optionTicks);\r\n\t\tvar majorTickFontColor = helpers.valueOrDefault(optionMajorTicks.fontColor, globalDefaults.defaultFontColor);\r\n\t\tvar majorTickFont = parseFontOptions(optionMajorTicks);\r\n\r\n\t\tvar tl = gridLines.drawTicks ? gridLines.tickMarkLength : 0;\r\n\r\n\t\tvar scaleLabelFontColor = helpers.valueOrDefault(scaleLabel.fontColor, globalDefaults.defaultFontColor);\r\n\t\tvar scaleLabelFont = parseFontOptions(scaleLabel);\r\n\t\tvar scaleLabelPadding = helpers.options.toPadding(scaleLabel.padding);\r\n\t\tvar labelRotationRadians = helpers.toRadians(me.labelRotation);\r\n\r\n\t\tvar itemsToDraw = [];\r\n\r\n\t\tvar axisWidth = me.options.gridLines.lineWidth;\r\n\t\tvar xTickStart = options.position === 'right' ? me.left : me.right - axisWidth - tl;\r\n\t\tvar xTickEnd = options.position === 'right' ? me.left + tl : me.right;\r\n\t\tvar yTickStart = options.position === 'bottom' ? me.top + axisWidth : me.bottom - tl - axisWidth;\r\n\t\tvar yTickEnd = options.position === 'bottom' ? me.top + axisWidth + tl : me.bottom + axisWidth;\r\n\r\n\t\thelpers.each(ticks, function(tick, index) {\r\n\t\t\t// autoskipper skipped this tick (#4635)\r\n\t\t\tif (helpers.isNullOrUndef(tick.label)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar label = tick.label;\r\n\t\t\tvar lineWidth, lineColor, borderDash, borderDashOffset;\r\n\t\t\tif (index === me.zeroLineIndex && options.offset === gridLines.offsetGridLines) {\r\n\t\t\t\t// Draw the first index specially\r\n\t\t\t\tlineWidth = gridLines.zeroLineWidth;\r\n\t\t\t\tlineColor = gridLines.zeroLineColor;\r\n\t\t\t\tborderDash = gridLines.zeroLineBorderDash;\r\n\t\t\t\tborderDashOffset = gridLines.zeroLineBorderDashOffset;\r\n\t\t\t} else {\r\n\t\t\t\tlineWidth = helpers.valueAtIndexOrDefault(gridLines.lineWidth, index);\r\n\t\t\t\tlineColor = helpers.valueAtIndexOrDefault(gridLines.color, index);\r\n\t\t\t\tborderDash = helpers.valueOrDefault(gridLines.borderDash, globalDefaults.borderDash);\r\n\t\t\t\tborderDashOffset = helpers.valueOrDefault(gridLines.borderDashOffset, globalDefaults.borderDashOffset);\r\n\t\t\t}\r\n\r\n\t\t\t// Common properties\r\n\t\t\tvar tx1, ty1, tx2, ty2, x1, y1, x2, y2, labelX, labelY;\r\n\t\t\tvar textAlign = 'middle';\r\n\t\t\tvar textBaseline = 'middle';\r\n\t\t\tvar tickPadding = optionTicks.padding;\r\n\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\tvar labelYOffset = tl + tickPadding;\r\n\r\n\t\t\t\tif (options.position === 'bottom') {\r\n\t\t\t\t\t// bottom\r\n\t\t\t\t\ttextBaseline = !isRotated ? 'top' : 'middle';\r\n\t\t\t\t\ttextAlign = !isRotated ? 'center' : 'right';\r\n\t\t\t\t\tlabelY = me.top + labelYOffset;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// top\r\n\t\t\t\t\ttextBaseline = !isRotated ? 'bottom' : 'middle';\r\n\t\t\t\t\ttextAlign = !isRotated ? 'center' : 'left';\r\n\t\t\t\t\tlabelY = me.bottom - labelYOffset;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar xLineValue = getLineValue(me, index, gridLines.offsetGridLines && ticks.length > 1);\r\n\t\t\t\tif (xLineValue < me.left) {\r\n\t\t\t\t\tlineColor = 'rgba(0,0,0,0)';\r\n\t\t\t\t}\r\n\t\t\t\txLineValue += helpers.aliasPixel(lineWidth);\r\n\r\n\t\t\t\tlabelX = me.getPixelForTick(index) + optionTicks.labelOffset; // x values for optionTicks (need to consider offsetLabel option)\r\n\r\n\t\t\t\ttx1 = tx2 = x1 = x2 = xLineValue;\r\n\t\t\t\tty1 = yTickStart;\r\n\t\t\t\tty2 = yTickEnd;\r\n\t\t\t\ty1 = chartArea.top;\r\n\t\t\t\ty2 = chartArea.bottom + axisWidth;\r\n\t\t\t} else {\r\n\t\t\t\tvar isLeft = options.position === 'left';\r\n\t\t\t\tvar labelXOffset;\r\n\r\n\t\t\t\tif (optionTicks.mirror) {\r\n\t\t\t\t\ttextAlign = isLeft ? 'left' : 'right';\r\n\t\t\t\t\tlabelXOffset = tickPadding;\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttextAlign = isLeft ? 'right' : 'left';\r\n\t\t\t\t\tlabelXOffset = tl + tickPadding;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlabelX = isLeft ? me.right - labelXOffset : me.left + labelXOffset;\r\n\r\n\t\t\t\tvar yLineValue = getLineValue(me, index, gridLines.offsetGridLines && ticks.length > 1);\r\n\t\t\t\tif (yLineValue < me.top) {\r\n\t\t\t\t\tlineColor = 'rgba(0,0,0,0)';\r\n\t\t\t\t}\r\n\t\t\t\tyLineValue += helpers.aliasPixel(lineWidth);\r\n\r\n\t\t\t\tlabelY = me.getPixelForTick(index) + optionTicks.labelOffset;\r\n\r\n\t\t\t\ttx1 = xTickStart;\r\n\t\t\t\ttx2 = xTickEnd;\r\n\t\t\t\tx1 = chartArea.left;\r\n\t\t\t\tx2 = chartArea.right + axisWidth;\r\n\t\t\t\tty1 = ty2 = y1 = y2 = yLineValue;\r\n\t\t\t}\r\n\r\n\t\t\titemsToDraw.push({\r\n\t\t\t\ttx1: tx1,\r\n\t\t\t\tty1: ty1,\r\n\t\t\t\ttx2: tx2,\r\n\t\t\t\tty2: ty2,\r\n\t\t\t\tx1: x1,\r\n\t\t\t\ty1: y1,\r\n\t\t\t\tx2: x2,\r\n\t\t\t\ty2: y2,\r\n\t\t\t\tlabelX: labelX,\r\n\t\t\t\tlabelY: labelY,\r\n\t\t\t\tglWidth: lineWidth,\r\n\t\t\t\tglColor: lineColor,\r\n\t\t\t\tglBorderDash: borderDash,\r\n\t\t\t\tglBorderDashOffset: borderDashOffset,\r\n\t\t\t\trotation: -1 * labelRotationRadians,\r\n\t\t\t\tlabel: label,\r\n\t\t\t\tmajor: tick.major,\r\n\t\t\t\ttextBaseline: textBaseline,\r\n\t\t\t\ttextAlign: textAlign\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// Draw all of the tick labels, tick marks, and grid lines at the correct places\r\n\t\thelpers.each(itemsToDraw, function(itemToDraw) {\r\n\t\t\tif (gridLines.display) {\r\n\t\t\t\tcontext.save();\r\n\t\t\t\tcontext.lineWidth = itemToDraw.glWidth;\r\n\t\t\t\tcontext.strokeStyle = itemToDraw.glColor;\r\n\t\t\t\tif (context.setLineDash) {\r\n\t\t\t\t\tcontext.setLineDash(itemToDraw.glBorderDash);\r\n\t\t\t\t\tcontext.lineDashOffset = itemToDraw.glBorderDashOffset;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcontext.beginPath();\r\n\r\n\t\t\t\tif (gridLines.drawTicks) {\r\n\t\t\t\t\tcontext.moveTo(itemToDraw.tx1, itemToDraw.ty1);\r\n\t\t\t\t\tcontext.lineTo(itemToDraw.tx2, itemToDraw.ty2);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (gridLines.drawOnChartArea) {\r\n\t\t\t\t\tcontext.moveTo(itemToDraw.x1, itemToDraw.y1);\r\n\t\t\t\t\tcontext.lineTo(itemToDraw.x2, itemToDraw.y2);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcontext.stroke();\r\n\t\t\t\tcontext.restore();\r\n\t\t\t}\r\n\r\n\t\t\tif (optionTicks.display) {\r\n\t\t\t\t// Make sure we draw text in the correct color and font\r\n\t\t\t\tcontext.save();\r\n\t\t\t\tcontext.translate(itemToDraw.labelX, itemToDraw.labelY);\r\n\t\t\t\tcontext.rotate(itemToDraw.rotation);\r\n\t\t\t\tcontext.font = itemToDraw.major ? majorTickFont.font : tickFont.font;\r\n\t\t\t\tcontext.fillStyle = itemToDraw.major ? majorTickFontColor : tickFontColor;\r\n\t\t\t\tcontext.textBaseline = itemToDraw.textBaseline;\r\n\t\t\t\tcontext.textAlign = itemToDraw.textAlign;\r\n\r\n\t\t\t\tvar label = itemToDraw.label;\r\n\t\t\t\tif (helpers.isArray(label)) {\r\n\t\t\t\t\tvar lineCount = label.length;\r\n\t\t\t\t\tvar lineHeight = tickFont.size * 1.5;\r\n\t\t\t\t\tvar y = me.isHorizontal() ? 0 : -lineHeight * (lineCount - 1) / 2;\r\n\r\n\t\t\t\t\tfor (var i = 0; i < lineCount; ++i) {\r\n\t\t\t\t\t\t// We just make sure the multiline element is a string here..\r\n\t\t\t\t\t\tcontext.fillText('' + label[i], 0, y);\r\n\t\t\t\t\t\t// apply same lineSpacing as calculated @ L#320\r\n\t\t\t\t\t\ty += lineHeight;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcontext.fillText(label, 0, 0);\r\n\t\t\t\t}\r\n\t\t\t\tcontext.restore();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (scaleLabel.display) {\r\n\t\t\t// Draw the scale label\r\n\t\t\tvar scaleLabelX;\r\n\t\t\tvar scaleLabelY;\r\n\t\t\tvar rotation = 0;\r\n\t\t\tvar halfLineHeight = parseLineHeight(scaleLabel) / 2;\r\n\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\tscaleLabelX = me.left + ((me.right - me.left) / 2); // midpoint of the width\r\n\t\t\t\tscaleLabelY = options.position === 'bottom'\r\n\t\t\t\t\t? me.bottom - halfLineHeight - scaleLabelPadding.bottom\r\n\t\t\t\t\t: me.top + halfLineHeight + scaleLabelPadding.top;\r\n\t\t\t} else {\r\n\t\t\t\tvar isLeft = options.position === 'left';\r\n\t\t\t\tscaleLabelX = isLeft\r\n\t\t\t\t\t? me.left + halfLineHeight + scaleLabelPadding.top\r\n\t\t\t\t\t: me.right - halfLineHeight - scaleLabelPadding.top;\r\n\t\t\t\tscaleLabelY = me.top + ((me.bottom - me.top) / 2);\r\n\t\t\t\trotation = isLeft ? -0.5 * Math.PI : 0.5 * Math.PI;\r\n\t\t\t}\r\n\r\n\t\t\tcontext.save();\r\n\t\t\tcontext.translate(scaleLabelX, scaleLabelY);\r\n\t\t\tcontext.rotate(rotation);\r\n\t\t\tcontext.textAlign = 'center';\r\n\t\t\tcontext.textBaseline = 'middle';\r\n\t\t\tcontext.fillStyle = scaleLabelFontColor; // render in correct colour\r\n\t\t\tcontext.font = scaleLabelFont.font;\r\n\t\t\tcontext.fillText(scaleLabel.labelString, 0, 0);\r\n\t\t\tcontext.restore();\r\n\t\t}\r\n\r\n\t\tif (gridLines.drawBorder) {\r\n\t\t\t// Draw the line at the edge of the axis\r\n\t\t\tcontext.lineWidth = helpers.valueAtIndexOrDefault(gridLines.lineWidth, 0);\r\n\t\t\tcontext.strokeStyle = helpers.valueAtIndexOrDefault(gridLines.color, 0);\r\n\t\t\tvar x1 = me.left;\r\n\t\t\tvar x2 = me.right + axisWidth;\r\n\t\t\tvar y1 = me.top;\r\n\t\t\tvar y2 = me.bottom + axisWidth;\r\n\r\n\t\t\tvar aliasPixel = helpers.aliasPixel(context.lineWidth);\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\ty1 = y2 = options.position === 'top' ? me.bottom : me.top;\r\n\t\t\t\ty1 += aliasPixel;\r\n\t\t\t\ty2 += aliasPixel;\r\n\t\t\t} else {\r\n\t\t\t\tx1 = x2 = options.position === 'left' ? me.right : me.left;\r\n\t\t\t\tx1 += aliasPixel;\r\n\t\t\t\tx2 += aliasPixel;\r\n\t\t\t}\r\n\r\n\t\t\tcontext.beginPath();\r\n\t\t\tcontext.moveTo(x1, y1);\r\n\t\t\tcontext.lineTo(x2, y2);\r\n\t\t\tcontext.stroke();\r\n\t\t}\r\n\t}\r\n});\r\n\r\n},{\"26\":26,\"27\":27,\"35\":35,\"46\":46}],34:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar helpers = require(46);\r\nvar layouts = require(31);\r\n\r\nmodule.exports = {\r\n\t// Scale registration object. Extensions can register new scale types (such as log or DB scales) and then\r\n\t// use the new chart options to grab the correct scale\r\n\tconstructors: {},\r\n\t// Use a registration function so that we can move to an ES6 map when we no longer need to support\r\n\t// old browsers\r\n\r\n\t// Scale config defaults\r\n\tdefaults: {},\r\n\tregisterScaleType: function(type, scaleConstructor, scaleDefaults) {\r\n\t\tthis.constructors[type] = scaleConstructor;\r\n\t\tthis.defaults[type] = helpers.clone(scaleDefaults);\r\n\t},\r\n\tgetScaleConstructor: function(type) {\r\n\t\treturn this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined;\r\n\t},\r\n\tgetScaleDefaults: function(type) {\r\n\t\t// Return the scale defaults merged with the global settings so that we always use the latest ones\r\n\t\treturn this.defaults.hasOwnProperty(type) ? helpers.merge({}, [defaults.scale, this.defaults[type]]) : {};\r\n\t},\r\n\tupdateScaleDefaults: function(type, additions) {\r\n\t\tvar me = this;\r\n\t\tif (me.defaults.hasOwnProperty(type)) {\r\n\t\t\tme.defaults[type] = helpers.extend(me.defaults[type], additions);\r\n\t\t}\r\n\t},\r\n\taddScalesToLayout: function(chart) {\r\n\t\t// Adds each scale to the chart.boxes array to be sized accordingly\r\n\t\thelpers.each(chart.scales, function(scale) {\r\n\t\t\t// Set ILayoutItem parameters for backwards compatibility\r\n\t\t\tscale.fullWidth = scale.options.fullWidth;\r\n\t\t\tscale.position = scale.options.position;\r\n\t\t\tscale.weight = scale.options.weight;\r\n\t\t\tlayouts.addBox(chart, scale);\r\n\t\t});\r\n\t}\r\n};\r\n\r\n},{\"26\":26,\"31\":31,\"46\":46}],35:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(46);\r\n\r\n/**\r\n * Namespace to hold static tick generation functions\r\n * @namespace Chart.Ticks\r\n */\r\nmodule.exports = {\r\n\t/**\r\n\t * Namespace to hold formatters for different types of ticks\r\n\t * @namespace Chart.Ticks.formatters\r\n\t */\r\n\tformatters: {\r\n\t\t/**\r\n\t\t * Formatter for value labels\r\n\t\t * @method Chart.Ticks.formatters.values\r\n\t\t * @param value the value to display\r\n\t\t * @return {String|Array} the label to display\r\n\t\t */\r\n\t\tvalues: function(value) {\r\n\t\t\treturn helpers.isArray(value) ? value : '' + value;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Formatter for linear numeric ticks\r\n\t\t * @method Chart.Ticks.formatters.linear\r\n\t\t * @param tickValue {Number} the value to be formatted\r\n\t\t * @param index {Number} the position of the tickValue parameter in the ticks array\r\n\t\t * @param ticks {Array<Number>} the list of ticks being converted\r\n\t\t * @return {String} string representation of the tickValue parameter\r\n\t\t */\r\n\t\tlinear: function(tickValue, index, ticks) {\r\n\t\t\t// If we have lots of ticks, don't use the ones\r\n\t\t\tvar delta = ticks.length > 3 ? ticks[2] - ticks[1] : ticks[1] - ticks[0];\r\n\r\n\t\t\t// If we have a number like 2.5 as the delta, figure out how many decimal places we need\r\n\t\t\tif (Math.abs(delta) > 1) {\r\n\t\t\t\tif (tickValue !== Math.floor(tickValue)) {\r\n\t\t\t\t\t// not an integer\r\n\t\t\t\t\tdelta = tickValue - Math.floor(tickValue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar logDelta = helpers.log10(Math.abs(delta));\r\n\t\t\tvar tickString = '';\r\n\r\n\t\t\tif (tickValue !== 0) {\r\n\t\t\t\tvar maxTick = Math.max(Math.abs(ticks[0]), Math.abs(ticks[ticks.length - 1]));\r\n\t\t\t\tif (maxTick < 1e-4) { // all ticks are small numbers; use scientific notation\r\n\t\t\t\t\tvar logTick = helpers.log10(Math.abs(tickValue));\r\n\t\t\t\t\ttickString = tickValue.toExponential(Math.floor(logTick) - Math.floor(logDelta));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar numDecimal = -1 * Math.floor(logDelta);\r\n\t\t\t\t\tnumDecimal = Math.max(Math.min(numDecimal, 20), 0); // toFixed has a max of 20 decimal places\r\n\t\t\t\t\ttickString = tickValue.toFixed(numDecimal);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ttickString = '0'; // never show decimal places for 0\r\n\t\t\t}\r\n\r\n\t\t\treturn tickString;\r\n\t\t},\r\n\r\n\t\tlogarithmic: function(tickValue, index, ticks) {\r\n\t\t\tvar remain = tickValue / (Math.pow(10, Math.floor(helpers.log10(tickValue))));\r\n\r\n\t\t\tif (tickValue === 0) {\r\n\t\t\t\treturn '0';\r\n\t\t\t} else if (remain === 1 || remain === 2 || remain === 5 || index === 0 || index === ticks.length - 1) {\r\n\t\t\t\treturn tickValue.toExponential();\r\n\t\t\t}\r\n\t\t\treturn '';\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"46\":46}],36:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar Element = require(27);\r\nvar helpers = require(46);\r\n\r\ndefaults._set('global', {\r\n\ttooltips: {\r\n\t\tenabled: true,\r\n\t\tcustom: null,\r\n\t\tmode: 'nearest',\r\n\t\tposition: 'average',\r\n\t\tintersect: true,\r\n\t\tbackgroundColor: 'rgba(0,0,0,0.8)',\r\n\t\ttitleFontStyle: 'bold',\r\n\t\ttitleSpacing: 2,\r\n\t\ttitleMarginBottom: 6,\r\n\t\ttitleFontColor: '#fff',\r\n\t\ttitleAlign: 'left',\r\n\t\tbodySpacing: 2,\r\n\t\tbodyFontColor: '#fff',\r\n\t\tbodyAlign: 'left',\r\n\t\tfooterFontStyle: 'bold',\r\n\t\tfooterSpacing: 2,\r\n\t\tfooterMarginTop: 6,\r\n\t\tfooterFontColor: '#fff',\r\n\t\tfooterAlign: 'left',\r\n\t\tyPadding: 6,\r\n\t\txPadding: 6,\r\n\t\tcaretPadding: 2,\r\n\t\tcaretSize: 5,\r\n\t\tcornerRadius: 6,\r\n\t\tmultiKeyBackground: '#fff',\r\n\t\tdisplayColors: true,\r\n\t\tborderColor: 'rgba(0,0,0,0)',\r\n\t\tborderWidth: 0,\r\n\t\tcallbacks: {\r\n\t\t\t// Args are: (tooltipItems, data)\r\n\t\t\tbeforeTitle: helpers.noop,\r\n\t\t\ttitle: function(tooltipItems, data) {\r\n\t\t\t\t// Pick first xLabel for now\r\n\t\t\t\tvar title = '';\r\n\t\t\t\tvar labels = data.labels;\r\n\t\t\t\tvar labelCount = labels ? labels.length : 0;\r\n\r\n\t\t\t\tif (tooltipItems.length > 0) {\r\n\t\t\t\t\tvar item = tooltipItems[0];\r\n\r\n\t\t\t\t\tif (item.xLabel) {\r\n\t\t\t\t\t\ttitle = item.xLabel;\r\n\t\t\t\t\t} else if (labelCount > 0 && item.index < labelCount) {\r\n\t\t\t\t\t\ttitle = labels[item.index];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn title;\r\n\t\t\t},\r\n\t\t\tafterTitle: helpers.noop,\r\n\r\n\t\t\t// Args are: (tooltipItems, data)\r\n\t\t\tbeforeBody: helpers.noop,\r\n\r\n\t\t\t// Args are: (tooltipItem, data)\r\n\t\t\tbeforeLabel: helpers.noop,\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar label = data.datasets[tooltipItem.datasetIndex].label || '';\r\n\r\n\t\t\t\tif (label) {\r\n\t\t\t\t\tlabel += ': ';\r\n\t\t\t\t}\r\n\t\t\t\tlabel += tooltipItem.yLabel;\r\n\t\t\t\treturn label;\r\n\t\t\t},\r\n\t\t\tlabelColor: function(tooltipItem, chart) {\r\n\t\t\t\tvar meta = chart.getDatasetMeta(tooltipItem.datasetIndex);\r\n\t\t\t\tvar activeElement = meta.data[tooltipItem.index];\r\n\t\t\t\tvar view = activeElement._view;\r\n\t\t\t\treturn {\r\n\t\t\t\t\tborderColor: view.borderColor,\r\n\t\t\t\t\tbackgroundColor: view.backgroundColor\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\t\tlabelTextColor: function() {\r\n\t\t\t\treturn this._options.bodyFontColor;\r\n\t\t\t},\r\n\t\t\tafterLabel: helpers.noop,\r\n\r\n\t\t\t// Args are: (tooltipItems, data)\r\n\t\t\tafterBody: helpers.noop,\r\n\r\n\t\t\t// Args are: (tooltipItems, data)\r\n\t\t\tbeforeFooter: helpers.noop,\r\n\t\t\tfooter: helpers.noop,\r\n\t\t\tafterFooter: helpers.noop\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar positioners = {\r\n\t/**\r\n\t * Average mode places the tooltip at the average position of the elements shown\r\n\t * @function Chart.Tooltip.positioners.average\r\n\t * @param elements {ChartElement[]} the elements being displayed in the tooltip\r\n\t * @returns {Point} tooltip position\r\n\t */\r\n\taverage: function(elements) {\r\n\t\tif (!elements.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar i, len;\r\n\t\tvar x = 0;\r\n\t\tvar y = 0;\r\n\t\tvar count = 0;\r\n\r\n\t\tfor (i = 0, len = elements.length; i < len; ++i) {\r\n\t\t\tvar el = elements[i];\r\n\t\t\tif (el && el.hasValue()) {\r\n\t\t\t\tvar pos = el.tooltipPosition();\r\n\t\t\t\tx += pos.x;\r\n\t\t\t\ty += pos.y;\r\n\t\t\t\t++count;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tx: Math.round(x / count),\r\n\t\t\ty: Math.round(y / count)\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Gets the tooltip position nearest of the item nearest to the event position\r\n\t * @function Chart.Tooltip.positioners.nearest\r\n\t * @param elements {Chart.Element[]} the tooltip elements\r\n\t * @param eventPosition {Point} the position of the event in canvas coordinates\r\n\t * @returns {Point} the tooltip position\r\n\t */\r\n\tnearest: function(elements, eventPosition) {\r\n\t\tvar x = eventPosition.x;\r\n\t\tvar y = eventPosition.y;\r\n\t\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\t\tvar i, len, nearestElement;\r\n\r\n\t\tfor (i = 0, len = elements.length; i < len; ++i) {\r\n\t\t\tvar el = elements[i];\r\n\t\t\tif (el && el.hasValue()) {\r\n\t\t\t\tvar center = el.getCenterPoint();\r\n\t\t\t\tvar d = helpers.distanceBetweenPoints(eventPosition, center);\r\n\r\n\t\t\t\tif (d < minDistance) {\r\n\t\t\t\t\tminDistance = d;\r\n\t\t\t\t\tnearestElement = el;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (nearestElement) {\r\n\t\t\tvar tp = nearestElement.tooltipPosition();\r\n\t\t\tx = tp.x;\r\n\t\t\ty = tp.y;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tx: x,\r\n\t\t\ty: y\r\n\t\t};\r\n\t}\r\n};\r\n\r\n/**\r\n * Helper method to merge the opacity into a color\r\n */\r\nfunction mergeOpacity(colorString, opacity) {\r\n\tvar color = helpers.color(colorString);\r\n\treturn color.alpha(opacity * color.alpha()).rgbaString();\r\n}\r\n\r\n// Helper to push or concat based on if the 2nd parameter is an array or not\r\nfunction pushOrConcat(base, toPush) {\r\n\tif (toPush) {\r\n\t\tif (helpers.isArray(toPush)) {\r\n\t\t\t// base = base.concat(toPush);\r\n\t\t\tArray.prototype.push.apply(base, toPush);\r\n\t\t} else {\r\n\t\t\tbase.push(toPush);\r\n\t\t}\r\n\t}\r\n\r\n\treturn base;\r\n}\r\n\r\n/**\r\n * Returns array of strings split by newline\r\n * @param {String} value - The value to split by newline.\r\n * @returns {Array} value if newline present - Returned from String split() method\r\n * @function\r\n */\r\nfunction splitNewlines(str) {\r\n\tif ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\r\n\t\treturn str.split('\\n');\r\n\t}\r\n\treturn str;\r\n}\r\n\r\n\r\n// Private helper to create a tooltip item model\r\n// @param element : the chart element (point, arc, bar) to create the tooltip item for\r\n// @return : new tooltip item\r\nfunction createTooltipItem(element) {\r\n\tvar xScale = element._xScale;\r\n\tvar yScale = element._yScale || element._scale; // handle radar || polarArea charts\r\n\tvar index = element._index;\r\n\tvar datasetIndex = element._datasetIndex;\r\n\r\n\treturn {\r\n\t\txLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '',\r\n\t\tyLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '',\r\n\t\tindex: index,\r\n\t\tdatasetIndex: datasetIndex,\r\n\t\tx: element._model.x,\r\n\t\ty: element._model.y\r\n\t};\r\n}\r\n\r\n/**\r\n * Helper to get the reset model for the tooltip\r\n * @param tooltipOpts {Object} the tooltip options\r\n */\r\nfunction getBaseModel(tooltipOpts) {\r\n\tvar globalDefaults = defaults.global;\r\n\tvar valueOrDefault = helpers.valueOrDefault;\r\n\r\n\treturn {\r\n\t\t// Positioning\r\n\t\txPadding: tooltipOpts.xPadding,\r\n\t\tyPadding: tooltipOpts.yPadding,\r\n\t\txAlign: tooltipOpts.xAlign,\r\n\t\tyAlign: tooltipOpts.yAlign,\r\n\r\n\t\t// Body\r\n\t\tbodyFontColor: tooltipOpts.bodyFontColor,\r\n\t\t_bodyFontFamily: valueOrDefault(tooltipOpts.bodyFontFamily, globalDefaults.defaultFontFamily),\r\n\t\t_bodyFontStyle: valueOrDefault(tooltipOpts.bodyFontStyle, globalDefaults.defaultFontStyle),\r\n\t\t_bodyAlign: tooltipOpts.bodyAlign,\r\n\t\tbodyFontSize: valueOrDefault(tooltipOpts.bodyFontSize, globalDefaults.defaultFontSize),\r\n\t\tbodySpacing: tooltipOpts.bodySpacing,\r\n\r\n\t\t// Title\r\n\t\ttitleFontColor: tooltipOpts.titleFontColor,\r\n\t\t_titleFontFamily: valueOrDefault(tooltipOpts.titleFontFamily, globalDefaults.defaultFontFamily),\r\n\t\t_titleFontStyle: valueOrDefault(tooltipOpts.titleFontStyle, globalDefaults.defaultFontStyle),\r\n\t\ttitleFontSize: valueOrDefault(tooltipOpts.titleFontSize, globalDefaults.defaultFontSize),\r\n\t\t_titleAlign: tooltipOpts.titleAlign,\r\n\t\ttitleSpacing: tooltipOpts.titleSpacing,\r\n\t\ttitleMarginBottom: tooltipOpts.titleMarginBottom,\r\n\r\n\t\t// Footer\r\n\t\tfooterFontColor: tooltipOpts.footerFontColor,\r\n\t\t_footerFontFamily: valueOrDefault(tooltipOpts.footerFontFamily, globalDefaults.defaultFontFamily),\r\n\t\t_footerFontStyle: valueOrDefault(tooltipOpts.footerFontStyle, globalDefaults.defaultFontStyle),\r\n\t\tfooterFontSize: valueOrDefault(tooltipOpts.footerFontSize, globalDefaults.defaultFontSize),\r\n\t\t_footerAlign: tooltipOpts.footerAlign,\r\n\t\tfooterSpacing: tooltipOpts.footerSpacing,\r\n\t\tfooterMarginTop: tooltipOpts.footerMarginTop,\r\n\r\n\t\t// Appearance\r\n\t\tcaretSize: tooltipOpts.caretSize,\r\n\t\tcornerRadius: tooltipOpts.cornerRadius,\r\n\t\tbackgroundColor: tooltipOpts.backgroundColor,\r\n\t\topacity: 0,\r\n\t\tlegendColorBackground: tooltipOpts.multiKeyBackground,\r\n\t\tdisplayColors: tooltipOpts.displayColors,\r\n\t\tborderColor: tooltipOpts.borderColor,\r\n\t\tborderWidth: tooltipOpts.borderWidth\r\n\t};\r\n}\r\n\r\n/**\r\n * Get the size of the tooltip\r\n */\r\nfunction getTooltipSize(tooltip, model) {\r\n\tvar ctx = tooltip._chart.ctx;\r\n\r\n\tvar height = model.yPadding * 2; // Tooltip Padding\r\n\tvar width = 0;\r\n\r\n\t// Count of all lines in the body\r\n\tvar body = model.body;\r\n\tvar combinedBodyLength = body.reduce(function(count, bodyItem) {\r\n\t\treturn count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\r\n\t}, 0);\r\n\tcombinedBodyLength += model.beforeBody.length + model.afterBody.length;\r\n\r\n\tvar titleLineCount = model.title.length;\r\n\tvar footerLineCount = model.footer.length;\r\n\tvar titleFontSize = model.titleFontSize;\r\n\tvar bodyFontSize = model.bodyFontSize;\r\n\tvar footerFontSize = model.footerFontSize;\r\n\r\n\theight += titleLineCount * titleFontSize; // Title Lines\r\n\theight += titleLineCount ? (titleLineCount - 1) * model.titleSpacing : 0; // Title Line Spacing\r\n\theight += titleLineCount ? model.titleMarginBottom : 0; // Title's bottom Margin\r\n\theight += combinedBodyLength * bodyFontSize; // Body Lines\r\n\theight += combinedBodyLength ? (combinedBodyLength - 1) * model.bodySpacing : 0; // Body Line Spacing\r\n\theight += footerLineCount ? model.footerMarginTop : 0; // Footer Margin\r\n\theight += footerLineCount * (footerFontSize); // Footer Lines\r\n\theight += footerLineCount ? (footerLineCount - 1) * model.footerSpacing : 0; // Footer Line Spacing\r\n\r\n\t// Title width\r\n\tvar widthPadding = 0;\r\n\tvar maxLineWidth = function(line) {\r\n\t\twidth = Math.max(width, ctx.measureText(line).width + widthPadding);\r\n\t};\r\n\r\n\tctx.font = helpers.fontString(titleFontSize, model._titleFontStyle, model._titleFontFamily);\r\n\thelpers.each(model.title, maxLineWidth);\r\n\r\n\t// Body width\r\n\tctx.font = helpers.fontString(bodyFontSize, model._bodyFontStyle, model._bodyFontFamily);\r\n\thelpers.each(model.beforeBody.concat(model.afterBody), maxLineWidth);\r\n\r\n\t// Body lines may include some extra width due to the color box\r\n\twidthPadding = model.displayColors ? (bodyFontSize + 2) : 0;\r\n\thelpers.each(body, function(bodyItem) {\r\n\t\thelpers.each(bodyItem.before, maxLineWidth);\r\n\t\thelpers.each(bodyItem.lines, maxLineWidth);\r\n\t\thelpers.each(bodyItem.after, maxLineWidth);\r\n\t});\r\n\r\n\t// Reset back to 0\r\n\twidthPadding = 0;\r\n\r\n\t// Footer width\r\n\tctx.font = helpers.fontString(footerFontSize, model._footerFontStyle, model._footerFontFamily);\r\n\thelpers.each(model.footer, maxLineWidth);\r\n\r\n\t// Add padding\r\n\twidth += 2 * model.xPadding;\r\n\r\n\treturn {\r\n\t\twidth: width,\r\n\t\theight: height\r\n\t};\r\n}\r\n\r\n/**\r\n * Helper to get the alignment of a tooltip given the size\r\n */\r\nfunction determineAlignment(tooltip, size) {\r\n\tvar model = tooltip._model;\r\n\tvar chart = tooltip._chart;\r\n\tvar chartArea = tooltip._chart.chartArea;\r\n\tvar xAlign = 'center';\r\n\tvar yAlign = 'center';\r\n\r\n\tif (model.y < size.height) {\r\n\t\tyAlign = 'top';\r\n\t} else if (model.y > (chart.height - size.height)) {\r\n\t\tyAlign = 'bottom';\r\n\t}\r\n\r\n\tvar lf, rf; // functions to determine left, right alignment\r\n\tvar olf, orf; // functions to determine if left/right alignment causes tooltip to go outside chart\r\n\tvar yf; // function to get the y alignment if the tooltip goes outside of the left or right edges\r\n\tvar midX = (chartArea.left + chartArea.right) / 2;\r\n\tvar midY = (chartArea.top + chartArea.bottom) / 2;\r\n\r\n\tif (yAlign === 'center') {\r\n\t\tlf = function(x) {\r\n\t\t\treturn x <= midX;\r\n\t\t};\r\n\t\trf = function(x) {\r\n\t\t\treturn x > midX;\r\n\t\t};\r\n\t} else {\r\n\t\tlf = function(x) {\r\n\t\t\treturn x <= (size.width / 2);\r\n\t\t};\r\n\t\trf = function(x) {\r\n\t\t\treturn x >= (chart.width - (size.width / 2));\r\n\t\t};\r\n\t}\r\n\r\n\tolf = function(x) {\r\n\t\treturn x + size.width + model.caretSize + model.caretPadding > chart.width;\r\n\t};\r\n\torf = function(x) {\r\n\t\treturn x - size.width - model.caretSize - model.caretPadding < 0;\r\n\t};\r\n\tyf = function(y) {\r\n\t\treturn y <= midY ? 'top' : 'bottom';\r\n\t};\r\n\r\n\tif (lf(model.x)) {\r\n\t\txAlign = 'left';\r\n\r\n\t\t// Is tooltip too wide and goes over the right side of the chart.?\r\n\t\tif (olf(model.x)) {\r\n\t\t\txAlign = 'center';\r\n\t\t\tyAlign = yf(model.y);\r\n\t\t}\r\n\t} else if (rf(model.x)) {\r\n\t\txAlign = 'right';\r\n\r\n\t\t// Is tooltip too wide and goes outside left edge of canvas?\r\n\t\tif (orf(model.x)) {\r\n\t\t\txAlign = 'center';\r\n\t\t\tyAlign = yf(model.y);\r\n\t\t}\r\n\t}\r\n\r\n\tvar opts = tooltip._options;\r\n\treturn {\r\n\t\txAlign: opts.xAlign ? opts.xAlign : xAlign,\r\n\t\tyAlign: opts.yAlign ? opts.yAlign : yAlign\r\n\t};\r\n}\r\n\r\n/**\r\n * Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\r\n */\r\nfunction getBackgroundPoint(vm, size, alignment, chart) {\r\n\t// Background Position\r\n\tvar x = vm.x;\r\n\tvar y = vm.y;\r\n\r\n\tvar caretSize = vm.caretSize;\r\n\tvar caretPadding = vm.caretPadding;\r\n\tvar cornerRadius = vm.cornerRadius;\r\n\tvar xAlign = alignment.xAlign;\r\n\tvar yAlign = alignment.yAlign;\r\n\tvar paddingAndSize = caretSize + caretPadding;\r\n\tvar radiusAndPadding = cornerRadius + caretPadding;\r\n\r\n\tif (xAlign === 'right') {\r\n\t\tx -= size.width;\r\n\t} else if (xAlign === 'center') {\r\n\t\tx -= (size.width / 2);\r\n\t\tif (x + size.width > chart.width) {\r\n\t\t\tx = chart.width - size.width;\r\n\t\t}\r\n\t\tif (x < 0) {\r\n\t\t\tx = 0;\r\n\t\t}\r\n\t}\r\n\r\n\tif (yAlign === 'top') {\r\n\t\ty += paddingAndSize;\r\n\t} else if (yAlign === 'bottom') {\r\n\t\ty -= size.height + paddingAndSize;\r\n\t} else {\r\n\t\ty -= (size.height / 2);\r\n\t}\r\n\r\n\tif (yAlign === 'center') {\r\n\t\tif (xAlign === 'left') {\r\n\t\t\tx += paddingAndSize;\r\n\t\t} else if (xAlign === 'right') {\r\n\t\t\tx -= paddingAndSize;\r\n\t\t}\r\n\t} else if (xAlign === 'left') {\r\n\t\tx -= radiusAndPadding;\r\n\t} else if (xAlign === 'right') {\r\n\t\tx += radiusAndPadding;\r\n\t}\r\n\r\n\treturn {\r\n\t\tx: x,\r\n\t\ty: y\r\n\t};\r\n}\r\n\r\n/**\r\n * Helper to build before and after body lines\r\n */\r\nfunction getBeforeAfterBodyLines(callback) {\r\n\treturn pushOrConcat([], splitNewlines(callback));\r\n}\r\n\r\nvar exports = module.exports = Element.extend({\r\n\tinitialize: function() {\r\n\t\tthis._model = getBaseModel(this._options);\r\n\t\tthis._lastActive = [];\r\n\t},\r\n\r\n\t// Get the title\r\n\t// Args are: (tooltipItem, data)\r\n\tgetTitle: function() {\r\n\t\tvar me = this;\r\n\t\tvar opts = me._options;\r\n\t\tvar callbacks = opts.callbacks;\r\n\r\n\t\tvar beforeTitle = callbacks.beforeTitle.apply(me, arguments);\r\n\t\tvar title = callbacks.title.apply(me, arguments);\r\n\t\tvar afterTitle = callbacks.afterTitle.apply(me, arguments);\r\n\r\n\t\tvar lines = [];\r\n\t\tlines = pushOrConcat(lines, splitNewlines(beforeTitle));\r\n\t\tlines = pushOrConcat(lines, splitNewlines(title));\r\n\t\tlines = pushOrConcat(lines, splitNewlines(afterTitle));\r\n\r\n\t\treturn lines;\r\n\t},\r\n\r\n\t// Args are: (tooltipItem, data)\r\n\tgetBeforeBody: function() {\r\n\t\treturn getBeforeAfterBodyLines(this._options.callbacks.beforeBody.apply(this, arguments));\r\n\t},\r\n\r\n\t// Args are: (tooltipItem, data)\r\n\tgetBody: function(tooltipItems, data) {\r\n\t\tvar me = this;\r\n\t\tvar callbacks = me._options.callbacks;\r\n\t\tvar bodyItems = [];\r\n\r\n\t\thelpers.each(tooltipItems, function(tooltipItem) {\r\n\t\t\tvar bodyItem = {\r\n\t\t\t\tbefore: [],\r\n\t\t\t\tlines: [],\r\n\t\t\t\tafter: []\r\n\t\t\t};\r\n\t\t\tpushOrConcat(bodyItem.before, splitNewlines(callbacks.beforeLabel.call(me, tooltipItem, data)));\r\n\t\t\tpushOrConcat(bodyItem.lines, callbacks.label.call(me, tooltipItem, data));\r\n\t\t\tpushOrConcat(bodyItem.after, splitNewlines(callbacks.afterLabel.call(me, tooltipItem, data)));\r\n\r\n\t\t\tbodyItems.push(bodyItem);\r\n\t\t});\r\n\r\n\t\treturn bodyItems;\r\n\t},\r\n\r\n\t// Args are: (tooltipItem, data)\r\n\tgetAfterBody: function() {\r\n\t\treturn getBeforeAfterBodyLines(this._options.callbacks.afterBody.apply(this, arguments));\r\n\t},\r\n\r\n\t// Get the footer and beforeFooter and afterFooter lines\r\n\t// Args are: (tooltipItem, data)\r\n\tgetFooter: function() {\r\n\t\tvar me = this;\r\n\t\tvar callbacks = me._options.callbacks;\r\n\r\n\t\tvar beforeFooter = callbacks.beforeFooter.apply(me, arguments);\r\n\t\tvar footer = callbacks.footer.apply(me, arguments);\r\n\t\tvar afterFooter = callbacks.afterFooter.apply(me, arguments);\r\n\r\n\t\tvar lines = [];\r\n\t\tlines = pushOrConcat(lines, splitNewlines(beforeFooter));\r\n\t\tlines = pushOrConcat(lines, splitNewlines(footer));\r\n\t\tlines = pushOrConcat(lines, splitNewlines(afterFooter));\r\n\r\n\t\treturn lines;\r\n\t},\r\n\r\n\tupdate: function(changed) {\r\n\t\tvar me = this;\r\n\t\tvar opts = me._options;\r\n\r\n\t\t// Need to regenerate the model because its faster than using extend and it is necessary due to the optimization in Chart.Element.transition\r\n\t\t// that does _view = _model if ease === 1. This causes the 2nd tooltip update to set properties in both the view and model at the same time\r\n\t\t// which breaks any animations.\r\n\t\tvar existingModel = me._model;\r\n\t\tvar model = me._model = getBaseModel(opts);\r\n\t\tvar active = me._active;\r\n\r\n\t\tvar data = me._data;\r\n\r\n\t\t// In the case where active.length === 0 we need to keep these at existing values for good animations\r\n\t\tvar alignment = {\r\n\t\t\txAlign: existingModel.xAlign,\r\n\t\t\tyAlign: existingModel.yAlign\r\n\t\t};\r\n\t\tvar backgroundPoint = {\r\n\t\t\tx: existingModel.x,\r\n\t\t\ty: existingModel.y\r\n\t\t};\r\n\t\tvar tooltipSize = {\r\n\t\t\twidth: existingModel.width,\r\n\t\t\theight: existingModel.height\r\n\t\t};\r\n\t\tvar tooltipPosition = {\r\n\t\t\tx: existingModel.caretX,\r\n\t\t\ty: existingModel.caretY\r\n\t\t};\r\n\r\n\t\tvar i, len;\r\n\r\n\t\tif (active.length) {\r\n\t\t\tmodel.opacity = 1;\r\n\r\n\t\t\tvar labelColors = [];\r\n\t\t\tvar labelTextColors = [];\r\n\t\t\ttooltipPosition = positioners[opts.position].call(me, active, me._eventPosition);\r\n\r\n\t\t\tvar tooltipItems = [];\r\n\t\t\tfor (i = 0, len = active.length; i < len; ++i) {\r\n\t\t\t\ttooltipItems.push(createTooltipItem(active[i]));\r\n\t\t\t}\r\n\r\n\t\t\t// If the user provided a filter function, use it to modify the tooltip items\r\n\t\t\tif (opts.filter) {\r\n\t\t\t\ttooltipItems = tooltipItems.filter(function(a) {\r\n\t\t\t\t\treturn opts.filter(a, data);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// If the user provided a sorting function, use it to modify the tooltip items\r\n\t\t\tif (opts.itemSort) {\r\n\t\t\t\ttooltipItems = tooltipItems.sort(function(a, b) {\r\n\t\t\t\t\treturn opts.itemSort(a, b, data);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Determine colors for boxes\r\n\t\t\thelpers.each(tooltipItems, function(tooltipItem) {\r\n\t\t\t\tlabelColors.push(opts.callbacks.labelColor.call(me, tooltipItem, me._chart));\r\n\t\t\t\tlabelTextColors.push(opts.callbacks.labelTextColor.call(me, tooltipItem, me._chart));\r\n\t\t\t});\r\n\r\n\r\n\t\t\t// Build the Text Lines\r\n\t\t\tmodel.title = me.getTitle(tooltipItems, data);\r\n\t\t\tmodel.beforeBody = me.getBeforeBody(tooltipItems, data);\r\n\t\t\tmodel.body = me.getBody(tooltipItems, data);\r\n\t\t\tmodel.afterBody = me.getAfterBody(tooltipItems, data);\r\n\t\t\tmodel.footer = me.getFooter(tooltipItems, data);\r\n\r\n\t\t\t// Initial positioning and colors\r\n\t\t\tmodel.x = Math.round(tooltipPosition.x);\r\n\t\t\tmodel.y = Math.round(tooltipPosition.y);\r\n\t\t\tmodel.caretPadding = opts.caretPadding;\r\n\t\t\tmodel.labelColors = labelColors;\r\n\t\t\tmodel.labelTextColors = labelTextColors;\r\n\r\n\t\t\t// data points\r\n\t\t\tmodel.dataPoints = tooltipItems;\r\n\r\n\t\t\t// We need to determine alignment of the tooltip\r\n\t\t\ttooltipSize = getTooltipSize(this, model);\r\n\t\t\talignment = determineAlignment(this, tooltipSize);\r\n\t\t\t// Final Size and Position\r\n\t\t\tbackgroundPoint = getBackgroundPoint(model, tooltipSize, alignment, me._chart);\r\n\t\t} else {\r\n\t\t\tmodel.opacity = 0;\r\n\t\t}\r\n\r\n\t\tmodel.xAlign = alignment.xAlign;\r\n\t\tmodel.yAlign = alignment.yAlign;\r\n\t\tmodel.x = backgroundPoint.x;\r\n\t\tmodel.y = backgroundPoint.y;\r\n\t\tmodel.width = tooltipSize.width;\r\n\t\tmodel.height = tooltipSize.height;\r\n\r\n\t\t// Point where the caret on the tooltip points to\r\n\t\tmodel.caretX = tooltipPosition.x;\r\n\t\tmodel.caretY = tooltipPosition.y;\r\n\r\n\t\tme._model = model;\r\n\r\n\t\tif (changed && opts.custom) {\r\n\t\t\topts.custom.call(me, model);\r\n\t\t}\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\tdrawCaret: function(tooltipPoint, size) {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar caretPosition = this.getCaretPosition(tooltipPoint, size, vm);\r\n\r\n\t\tctx.lineTo(caretPosition.x1, caretPosition.y1);\r\n\t\tctx.lineTo(caretPosition.x2, caretPosition.y2);\r\n\t\tctx.lineTo(caretPosition.x3, caretPosition.y3);\r\n\t},\r\n\tgetCaretPosition: function(tooltipPoint, size, vm) {\r\n\t\tvar x1, x2, x3, y1, y2, y3;\r\n\t\tvar caretSize = vm.caretSize;\r\n\t\tvar cornerRadius = vm.cornerRadius;\r\n\t\tvar xAlign = vm.xAlign;\r\n\t\tvar yAlign = vm.yAlign;\r\n\t\tvar ptX = tooltipPoint.x;\r\n\t\tvar ptY = tooltipPoint.y;\r\n\t\tvar width = size.width;\r\n\t\tvar height = size.height;\r\n\r\n\t\tif (yAlign === 'center') {\r\n\t\t\ty2 = ptY + (height / 2);\r\n\r\n\t\t\tif (xAlign === 'left') {\r\n\t\t\t\tx1 = ptX;\r\n\t\t\t\tx2 = x1 - caretSize;\r\n\t\t\t\tx3 = x1;\r\n\r\n\t\t\t\ty1 = y2 + caretSize;\r\n\t\t\t\ty3 = y2 - caretSize;\r\n\t\t\t} else {\r\n\t\t\t\tx1 = ptX + width;\r\n\t\t\t\tx2 = x1 + caretSize;\r\n\t\t\t\tx3 = x1;\r\n\r\n\t\t\t\ty1 = y2 - caretSize;\r\n\t\t\t\ty3 = y2 + caretSize;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (xAlign === 'left') {\r\n\t\t\t\tx2 = ptX + cornerRadius + (caretSize);\r\n\t\t\t\tx1 = x2 - caretSize;\r\n\t\t\t\tx3 = x2 + caretSize;\r\n\t\t\t} else if (xAlign === 'right') {\r\n\t\t\t\tx2 = ptX + width - cornerRadius - caretSize;\r\n\t\t\t\tx1 = x2 - caretSize;\r\n\t\t\t\tx3 = x2 + caretSize;\r\n\t\t\t} else {\r\n\t\t\t\tx2 = vm.caretX;\r\n\t\t\t\tx1 = x2 - caretSize;\r\n\t\t\t\tx3 = x2 + caretSize;\r\n\t\t\t}\r\n\t\t\tif (yAlign === 'top') {\r\n\t\t\t\ty1 = ptY;\r\n\t\t\t\ty2 = y1 - caretSize;\r\n\t\t\t\ty3 = y1;\r\n\t\t\t} else {\r\n\t\t\t\ty1 = ptY + height;\r\n\t\t\t\ty2 = y1 + caretSize;\r\n\t\t\t\ty3 = y1;\r\n\t\t\t\t// invert drawing order\r\n\t\t\t\tvar tmp = x3;\r\n\t\t\t\tx3 = x1;\r\n\t\t\t\tx1 = tmp;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {x1: x1, x2: x2, x3: x3, y1: y1, y2: y2, y3: y3};\r\n\t},\r\n\r\n\tdrawTitle: function(pt, vm, ctx, opacity) {\r\n\t\tvar title = vm.title;\r\n\r\n\t\tif (title.length) {\r\n\t\t\tctx.textAlign = vm._titleAlign;\r\n\t\t\tctx.textBaseline = 'top';\r\n\r\n\t\t\tvar titleFontSize = vm.titleFontSize;\r\n\t\t\tvar titleSpacing = vm.titleSpacing;\r\n\r\n\t\t\tctx.fillStyle = mergeOpacity(vm.titleFontColor, opacity);\r\n\t\t\tctx.font = helpers.fontString(titleFontSize, vm._titleFontStyle, vm._titleFontFamily);\r\n\r\n\t\t\tvar i, len;\r\n\t\t\tfor (i = 0, len = title.length; i < len; ++i) {\r\n\t\t\t\tctx.fillText(title[i], pt.x, pt.y);\r\n\t\t\t\tpt.y += titleFontSize + titleSpacing; // Line Height and spacing\r\n\r\n\t\t\t\tif (i + 1 === title.length) {\r\n\t\t\t\t\tpt.y += vm.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tdrawBody: function(pt, vm, ctx, opacity) {\r\n\t\tvar bodyFontSize = vm.bodyFontSize;\r\n\t\tvar bodySpacing = vm.bodySpacing;\r\n\t\tvar body = vm.body;\r\n\r\n\t\tctx.textAlign = vm._bodyAlign;\r\n\t\tctx.textBaseline = 'top';\r\n\t\tctx.font = helpers.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily);\r\n\r\n\t\t// Before Body\r\n\t\tvar xLinePadding = 0;\r\n\t\tvar fillLineOfText = function(line) {\r\n\t\t\tctx.fillText(line, pt.x + xLinePadding, pt.y);\r\n\t\t\tpt.y += bodyFontSize + bodySpacing;\r\n\t\t};\r\n\r\n\t\t// Before body lines\r\n\t\tctx.fillStyle = mergeOpacity(vm.bodyFontColor, opacity);\r\n\t\thelpers.each(vm.beforeBody, fillLineOfText);\r\n\r\n\t\tvar drawColorBoxes = vm.displayColors;\r\n\t\txLinePadding = drawColorBoxes ? (bodyFontSize + 2) : 0;\r\n\r\n\t\t// Draw body lines now\r\n\t\thelpers.each(body, function(bodyItem, i) {\r\n\t\t\tvar textColor = mergeOpacity(vm.labelTextColors[i], opacity);\r\n\t\t\tctx.fillStyle = textColor;\r\n\t\t\thelpers.each(bodyItem.before, fillLineOfText);\r\n\r\n\t\t\thelpers.each(bodyItem.lines, function(line) {\r\n\t\t\t\t// Draw Legend-like boxes if needed\r\n\t\t\t\tif (drawColorBoxes) {\r\n\t\t\t\t\t// Fill a white rect so that colours merge nicely if the opacity is < 1\r\n\t\t\t\t\tctx.fillStyle = mergeOpacity(vm.legendColorBackground, opacity);\r\n\t\t\t\t\tctx.fillRect(pt.x, pt.y, bodyFontSize, bodyFontSize);\r\n\r\n\t\t\t\t\t// Border\r\n\t\t\t\t\tctx.lineWidth = 1;\r\n\t\t\t\t\tctx.strokeStyle = mergeOpacity(vm.labelColors[i].borderColor, opacity);\r\n\t\t\t\t\tctx.strokeRect(pt.x, pt.y, bodyFontSize, bodyFontSize);\r\n\r\n\t\t\t\t\t// Inner square\r\n\t\t\t\t\tctx.fillStyle = mergeOpacity(vm.labelColors[i].backgroundColor, opacity);\r\n\t\t\t\t\tctx.fillRect(pt.x + 1, pt.y + 1, bodyFontSize - 2, bodyFontSize - 2);\r\n\t\t\t\t\tctx.fillStyle = textColor;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfillLineOfText(line);\r\n\t\t\t});\r\n\r\n\t\t\thelpers.each(bodyItem.after, fillLineOfText);\r\n\t\t});\r\n\r\n\t\t// Reset back to 0 for after body\r\n\t\txLinePadding = 0;\r\n\r\n\t\t// After body lines\r\n\t\thelpers.each(vm.afterBody, fillLineOfText);\r\n\t\tpt.y -= bodySpacing; // Remove last body spacing\r\n\t},\r\n\r\n\tdrawFooter: function(pt, vm, ctx, opacity) {\r\n\t\tvar footer = vm.footer;\r\n\r\n\t\tif (footer.length) {\r\n\t\t\tpt.y += vm.footerMarginTop;\r\n\r\n\t\t\tctx.textAlign = vm._footerAlign;\r\n\t\t\tctx.textBaseline = 'top';\r\n\r\n\t\t\tctx.fillStyle = mergeOpacity(vm.footerFontColor, opacity);\r\n\t\t\tctx.font = helpers.fontString(vm.footerFontSize, vm._footerFontStyle, vm._footerFontFamily);\r\n\r\n\t\t\thelpers.each(footer, function(line) {\r\n\t\t\t\tctx.fillText(line, pt.x, pt.y);\r\n\t\t\t\tpt.y += vm.footerFontSize + vm.footerSpacing;\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tdrawBackground: function(pt, vm, ctx, tooltipSize, opacity) {\r\n\t\tctx.fillStyle = mergeOpacity(vm.backgroundColor, opacity);\r\n\t\tctx.strokeStyle = mergeOpacity(vm.borderColor, opacity);\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tvar xAlign = vm.xAlign;\r\n\t\tvar yAlign = vm.yAlign;\r\n\t\tvar x = pt.x;\r\n\t\tvar y = pt.y;\r\n\t\tvar width = tooltipSize.width;\r\n\t\tvar height = tooltipSize.height;\r\n\t\tvar radius = vm.cornerRadius;\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.moveTo(x + radius, y);\r\n\t\tif (yAlign === 'top') {\r\n\t\t\tthis.drawCaret(pt, tooltipSize);\r\n\t\t}\r\n\t\tctx.lineTo(x + width - radius, y);\r\n\t\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n\t\tif (yAlign === 'center' && xAlign === 'right') {\r\n\t\t\tthis.drawCaret(pt, tooltipSize);\r\n\t\t}\r\n\t\tctx.lineTo(x + width, y + height - radius);\r\n\t\tctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\r\n\t\tif (yAlign === 'bottom') {\r\n\t\t\tthis.drawCaret(pt, tooltipSize);\r\n\t\t}\r\n\t\tctx.lineTo(x + radius, y + height);\r\n\t\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n\t\tif (yAlign === 'center' && xAlign === 'left') {\r\n\t\t\tthis.drawCaret(pt, tooltipSize);\r\n\t\t}\r\n\t\tctx.lineTo(x, y + radius);\r\n\t\tctx.quadraticCurveTo(x, y, x + radius, y);\r\n\t\tctx.closePath();\r\n\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth > 0) {\r\n\t\t\tctx.stroke();\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm.opacity === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tooltipSize = {\r\n\t\t\twidth: vm.width,\r\n\t\t\theight: vm.height\r\n\t\t};\r\n\t\tvar pt = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\r\n\t\t// IE11/Edge does not like very small opacities, so snap to 0\r\n\t\tvar opacity = Math.abs(vm.opacity < 1e-3) ? 0 : vm.opacity;\r\n\r\n\t\t// Truthy/falsey value for empty tooltip\r\n\t\tvar hasTooltipContent = vm.title.length || vm.beforeBody.length || vm.body.length || vm.afterBody.length || vm.footer.length;\r\n\r\n\t\tif (this._options.enabled && hasTooltipContent) {\r\n\t\t\t// Draw Background\r\n\t\t\tthis.drawBackground(pt, vm, ctx, tooltipSize, opacity);\r\n\r\n\t\t\t// Draw Title, Body, and Footer\r\n\t\t\tpt.x += vm.xPadding;\r\n\t\t\tpt.y += vm.yPadding;\r\n\r\n\t\t\t// Titles\r\n\t\t\tthis.drawTitle(pt, vm, ctx, opacity);\r\n\r\n\t\t\t// Body\r\n\t\t\tthis.drawBody(pt, vm, ctx, opacity);\r\n\r\n\t\t\t// Footer\r\n\t\t\tthis.drawFooter(pt, vm, ctx, opacity);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Handle an event\r\n\t * @private\r\n\t * @param {IEvent} event - The event to handle\r\n\t * @returns {Boolean} true if the tooltip changed\r\n\t */\r\n\thandleEvent: function(e) {\r\n\t\tvar me = this;\r\n\t\tvar options = me._options;\r\n\t\tvar changed = false;\r\n\r\n\t\tme._lastActive = me._lastActive || [];\r\n\r\n\t\t// Find Active Elements for tooltips\r\n\t\tif (e.type === 'mouseout') {\r\n\t\t\tme._active = [];\r\n\t\t} else {\r\n\t\t\tme._active = me._chart.getElementsAtEventForMode(e, options.mode, options);\r\n\t\t}\r\n\r\n\t\t// Remember Last Actives\r\n\t\tchanged = !helpers.arrayEquals(me._active, me._lastActive);\r\n\r\n\t\t// Only handle target event on tooltip change\r\n\t\tif (changed) {\r\n\t\t\tme._lastActive = me._active;\r\n\r\n\t\t\tif (options.enabled || options.custom) {\r\n\t\t\t\tme._eventPosition = {\r\n\t\t\t\t\tx: e.x,\r\n\t\t\t\t\ty: e.y\r\n\t\t\t\t};\r\n\r\n\t\t\t\tme.update(true);\r\n\t\t\t\tme.pivot();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn changed;\r\n\t}\r\n});\r\n\r\n/**\r\n * @namespace Chart.Tooltip.positioners\r\n */\r\nexports.positioners = positioners;\r\n\r\n\r\n},{\"26\":26,\"27\":27,\"46\":46}],37:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar Element = require(27);\r\nvar helpers = require(46);\r\n\r\ndefaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = Element.extend({\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar\tangle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += 2.0 * Math.PI;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= 2.0 * Math.PI;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += 2.0 * Math.PI;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar sA = vm.startAngle;\r\n\t\tvar eA = vm.endAngle;\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA);\r\n\t\tctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);\r\n\r\n\t\tctx.closePath();\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\r\n\t\tctx.fill();\r\n\t\tctx.lineJoin = 'bevel';\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tctx.stroke();\r\n\t\t}\r\n\t}\r\n});\r\n\r\n},{\"26\":26,\"27\":27,\"46\":46}],38:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar Element = require(27);\r\nvar helpers = require(46);\r\n\r\nvar globalDefaults = defaults.global;\r\n\r\ndefaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: globalDefaults.defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: globalDefaults.defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = Element.extend({\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar index, current, previous, currentVM;\r\n\r\n\t\t// If we are looping, adding the first point again\r\n\t\tif (me._loop && points.length) {\r\n\t\t\tpoints.push(points[0]);\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = vm.borderDashOffset || globalOptionLineElements.borderDashOffset;\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = vm.borderWidth || globalOptionLineElements.borderWidth;\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\t\tlastDrawnIndex = -1;\r\n\r\n\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\tcurrent = points[index];\r\n\t\t\tprevious = helpers.previousItem(points, index);\r\n\t\t\tcurrentVM = current._view;\r\n\r\n\t\t\t// First point moves to it's starting position no matter what\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tif (!currentVM.skip) {\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tprevious = lastDrawnIndex === -1 ? previous : points[lastDrawnIndex];\r\n\r\n\t\t\t\tif (!currentVM.skip) {\r\n\t\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Line to next point\r\n\t\t\t\t\t\thelpers.canvas.lineTo(ctx, previous._view, current._view);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\r\n\r\n},{\"26\":26,\"27\":27,\"46\":46}],39:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar Element = require(27);\r\nvar helpers = require(46);\r\n\r\nvar defaultColor = defaults.global.defaultColor;\r\n\r\ndefaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nmodule.exports = Element.extend({\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar model = this._model;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar errMargin = 1.01; // 1.01 is margin for Accumulated error. (Especially Edge, IE.)\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || (model.x >= chartArea.left && chartArea.right * errMargin >= model.x && model.y >= chartArea.top && chartArea.bottom * errMargin >= model.y)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = helpers.valueOrDefault(vm.borderWidth, defaults.global.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\r\n\r\n},{\"26\":26,\"27\":27,\"46\":46}],40:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar Element = require(27);\r\n\r\ndefaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaults.global.defaultColor,\r\n\t\t\tborderColor: defaults.global.defaultColor,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(bar) {\r\n\treturn bar._view.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(bar) {\r\n\tvar vm = bar._view;\r\n\tvar x1, x2, y1, y2;\r\n\r\n\tif (isVertical(bar)) {\r\n\t\t// vertical\r\n\t\tvar halfWidth = vm.width / 2;\r\n\t\tx1 = vm.x - halfWidth;\r\n\t\tx2 = vm.x + halfWidth;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\t// horizontal bar\r\n\t\tvar halfHeight = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - halfHeight;\r\n\t\ty2 = vm.y + halfHeight;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nmodule.exports = Element.extend({\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar left, right, top, bottom, signX, signY, borderSkipped;\r\n\t\tvar borderWidth = vm.borderWidth;\r\n\r\n\t\tif (!vm.horizontal) {\r\n\t\t\t// bar\r\n\t\t\tleft = vm.x - vm.width / 2;\r\n\t\t\tright = vm.x + vm.width / 2;\r\n\t\t\ttop = vm.y;\r\n\t\t\tbottom = vm.base;\r\n\t\t\tsignX = 1;\r\n\t\t\tsignY = bottom > top ? 1 : -1;\r\n\t\t\tborderSkipped = vm.borderSkipped || 'bottom';\r\n\t\t} else {\r\n\t\t\t// horizontal bar\r\n\t\t\tleft = vm.base;\r\n\t\t\tright = vm.x;\r\n\t\t\ttop = vm.y - vm.height / 2;\r\n\t\t\tbottom = vm.y + vm.height / 2;\r\n\t\t\tsignX = right > left ? 1 : -1;\r\n\t\t\tsignY = 1;\r\n\t\t\tborderSkipped = vm.borderSkipped || 'left';\r\n\t\t}\r\n\r\n\t\t// Canvas doesn't allow us to stroke inside the width so we can\r\n\t\t// adjust the sizes to fit if we're setting a stroke on the line\r\n\t\tif (borderWidth) {\r\n\t\t\t// borderWidth shold be less than bar width and bar height.\r\n\t\t\tvar barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\r\n\t\t\tborderWidth = borderWidth > barSize ? barSize : borderWidth;\r\n\t\t\tvar halfStroke = borderWidth / 2;\r\n\t\t\t// Adjust borderWidth when bar top position is near vm.base(zero).\r\n\t\t\tvar borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\r\n\t\t\tvar borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\r\n\t\t\tvar borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\r\n\t\t\tvar borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\r\n\t\t\t// not become a vertical line?\r\n\t\t\tif (borderLeft !== borderRight) {\r\n\t\t\t\ttop = borderTop;\r\n\t\t\t\tbottom = borderBottom;\r\n\t\t\t}\r\n\t\t\t// not become a horizontal line?\r\n\t\t\tif (borderTop !== borderBottom) {\r\n\t\t\t\tleft = borderLeft;\r\n\t\t\t\tright = borderRight;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\t\tctx.lineWidth = borderWidth;\r\n\r\n\t\t// Corner points, from bottom-left to bottom-right clockwise\r\n\t\t// | 1 2 |\r\n\t\t// | 0 3 |\r\n\t\tvar corners = [\r\n\t\t\t[left, bottom],\r\n\t\t\t[left, top],\r\n\t\t\t[right, top],\r\n\t\t\t[right, bottom]\r\n\t\t];\r\n\r\n\t\t// Find first (starting) corner with fallback to 'bottom'\r\n\t\tvar borders = ['bottom', 'left', 'top', 'right'];\r\n\t\tvar startCorner = borders.indexOf(borderSkipped, 0);\r\n\t\tif (startCorner === -1) {\r\n\t\t\tstartCorner = 0;\r\n\t\t}\r\n\r\n\t\tfunction cornerAt(index) {\r\n\t\t\treturn corners[(startCorner + index) % 4];\r\n\t\t}\r\n\r\n\t\t// Draw rectangle from 'startCorner'\r\n\t\tvar corner = cornerAt(0);\r\n\t\tctx.moveTo(corner[0], corner[1]);\r\n\r\n\t\tfor (var i = 1; i < 4; i++) {\r\n\t\t\tcorner = cornerAt(i);\r\n\t\t\tctx.lineTo(corner[0], corner[1]);\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tif (borderWidth) {\r\n\t\t\tctx.stroke();\r\n\t\t}\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar inRange = false;\r\n\r\n\t\tif (this._view) {\r\n\t\t\tvar bounds = getBarBounds(this);\r\n\t\t\tinRange = mouseX >= bounds.left && mouseX <= bounds.right && mouseY >= bounds.top && mouseY <= bounds.bottom;\r\n\t\t}\r\n\r\n\t\treturn inRange;\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar inRange = false;\r\n\t\tvar bounds = getBarBounds(me);\r\n\r\n\t\tif (isVertical(me)) {\r\n\t\t\tinRange = mouseX >= bounds.left && mouseX <= bounds.right;\r\n\t\t} else {\r\n\t\t\tinRange = mouseY >= bounds.top && mouseY <= bounds.bottom;\r\n\t\t}\r\n\r\n\t\treturn inRange;\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\tvar bounds = getBarBounds(this);\r\n\t\treturn mouseX >= bounds.left && mouseX <= bounds.right;\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\tvar bounds = getBarBounds(this);\r\n\t\treturn mouseY >= bounds.top && mouseY <= bounds.bottom;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(this)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.width * Math.abs(vm.y - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\r\n\r\n},{\"26\":26,\"27\":27}],41:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = {};\r\nmodule.exports.Arc = require(37);\r\nmodule.exports.Line = require(38);\r\nmodule.exports.Point = require(39);\r\nmodule.exports.Rectangle = require(40);\r\n\r\n},{\"37\":37,\"38\":38,\"39\":39,\"40\":40}],42:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(43);\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports = module.exports = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {Number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {Number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {Number} width - The rectangle's width.\r\n\t * @param {Number} height - The rectangle's height.\r\n\t * @param {Number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\t// NOTE(SB) `epsilon` helps to prevent minor artifacts appearing\r\n\t\t\t// on Chrome when `r` is exactly half the height or the width.\r\n\t\t\tvar epsilon = 0.0000001;\r\n\t\t\tvar r = Math.min(radius, (height / 2) - epsilon, (width / 2) - epsilon);\r\n\r\n\t\t\tctx.moveTo(x + r, y);\r\n\t\t\tctx.lineTo(x + width - r, y);\r\n\t\t\tctx.arcTo(x + width, y, x + width, y + r, r);\r\n\t\t\tctx.lineTo(x + width, y + height - r);\r\n\t\t\tctx.arcTo(x + width, y + height, x + width - r, y + height, r);\r\n\t\t\tctx.lineTo(x + r, y + height);\r\n\t\t\tctx.arcTo(x, y + height, x, y + height - r, r);\r\n\t\t\tctx.lineTo(x, y + r);\r\n\t\t\tctx.arcTo(x, y, x + r, y, r);\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, edgeLength, xOffset, yOffset, height, size;\r\n\t\trotation = rotation || 0;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.drawImage(style, x - style.width / 2, y - style.height / 2, style.width, style.height);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.translate(x, y);\r\n\t\tctx.rotate(rotation * Math.PI / 180);\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(0, 0, radius, 0, Math.PI * 2);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tedgeLength = 3 * radius / Math.sqrt(3);\r\n\t\t\theight = edgeLength * Math.sqrt(3) / 2;\r\n\t\t\tctx.moveTo(-edgeLength / 2, height / 3);\r\n\t\t\tctx.lineTo(edgeLength / 2, height / 3);\r\n\t\t\tctx.lineTo(0, -2 * height / 3);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tsize = 1 / Math.SQRT2 * radius;\r\n\t\t\tctx.rect(-size, -size, 2 * size, 2 * size);\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\tvar offset = radius / Math.SQRT2;\r\n\t\t\tvar leftX = -offset;\r\n\t\t\tvar topY = -offset;\r\n\t\t\tvar sideSize = Math.SQRT2 * radius;\r\n\r\n\t\t\t// NOTE(SB) the rounded rect implementation changed to use `arcTo`\r\n\t\t\t// instead of `quadraticCurveTo` since it generates better results\r\n\t\t\t// when rect is almost a circle. 0.425 (instead of 0.5) produces\r\n\t\t\t// results visually closer to the previous impl.\r\n\t\t\tthis.roundedRect(ctx, leftX, topY, sideSize, sideSize, radius * 0.425);\r\n\t\t\tbreak;\r\n\t\tcase 'rectRot':\r\n\t\t\tsize = 1 / Math.SQRT2 * radius;\r\n\t\t\tctx.moveTo(-size, 0);\r\n\t\t\tctx.lineTo(0, size);\r\n\t\t\tctx.lineTo(size, 0);\r\n\t\t\tctx.lineTo(0, -size);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'cross':\r\n\t\t\tctx.moveTo(0, radius);\r\n\t\t\tctx.lineTo(0, -radius);\r\n\t\t\tctx.moveTo(-radius, 0);\r\n\t\t\tctx.lineTo(radius, 0);\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\txOffset = Math.cos(Math.PI / 4) * radius;\r\n\t\t\tyOffset = Math.sin(Math.PI / 4) * radius;\r\n\t\t\tctx.moveTo(-xOffset, -yOffset);\r\n\t\t\tctx.lineTo(xOffset, yOffset);\r\n\t\t\tctx.moveTo(-xOffset, yOffset);\r\n\t\t\tctx.lineTo(xOffset, -yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\tctx.moveTo(0, radius);\r\n\t\t\tctx.lineTo(0, -radius);\r\n\t\t\tctx.moveTo(-radius, 0);\r\n\t\t\tctx.lineTo(radius, 0);\r\n\t\t\txOffset = Math.cos(Math.PI / 4) * radius;\r\n\t\t\tyOffset = Math.sin(Math.PI / 4) * radius;\r\n\t\t\tctx.moveTo(-xOffset, -yOffset);\r\n\t\t\tctx.lineTo(xOffset, yOffset);\r\n\t\t\tctx.moveTo(-xOffset, yOffset);\r\n\t\t\tctx.lineTo(xOffset, -yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\tctx.moveTo(-radius, 0);\r\n\t\t\tctx.lineTo(radius, 0);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(0, 0);\r\n\t\t\tctx.lineTo(radius, 0);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tif (target.steppedLine) {\r\n\t\t\tif ((target.steppedLine === 'after' && !flip) || (target.steppedLine !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.clear = exports.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports.roundedRect.apply(exports, arguments);\r\n};\r\n\r\n},{\"43\":43}],43:[function(require,module,exports){\r\n'use strict';\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {Number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {Boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {Boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: Array.isArray ? Array.isArray : function(value) {\r\n\t\treturn Object.prototype.toString.call(value) === '[object Array]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {Boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {Number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {Function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {Object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {Object|Array} loopable - The object or array to be iterated.\r\n\t * @param {Function} fn - The function to call for each item.\r\n\t * @param {Object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {Boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see http://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {Boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = {};\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): this method is also used by configMerge and scaleMerge as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {Object} target - The target object in which all sources are merged into.\r\n\t * @param {Object|Array(Object)} source - Object(s) to merge into `target`.\r\n\t * @param {Object} [options] - Merging options:\r\n\t * @param {Function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {Object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {Object} target - The target object in which all sources are merged into.\r\n\t * @param {Object|Array(Object)} source - Object(s) to merge into `target`.\r\n\t * @returns {Object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {Object} target - The target object in which all objects are merged into.\r\n\t * @param {Object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {Object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {Object} The `target` object.\r\n\t */\r\n\textend: function(target) {\r\n\t\tvar setFn = function(value, key) {\r\n\t\t\ttarget[key] = value;\r\n\t\t};\r\n\t\tfor (var i = 1, ilen = arguments.length; i < ilen; ++i) {\r\n\t\t\thelpers.each(arguments[i], setFn);\r\n\t\t}\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t}\r\n};\r\n\r\nmodule.exports = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\r\n\r\n},{}],44:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(43);\r\n\r\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nmodule.exports = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.easingEffects = effects;\r\n\r\n},{\"43\":43}],45:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(43);\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nmodule.exports = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {Number|String} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {Number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {Number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {Number|Object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {Object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array[]} inputs - An array of values, falling back to the last value.\r\n\t * @param {Object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {Number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index) {\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"43\":43}],46:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = require(43);\r\nmodule.exports.easing = require(44);\r\nmodule.exports.canvas = require(42);\r\nmodule.exports.options = require(45);\r\n\r\n},{\"42\":42,\"43\":43,\"44\":44,\"45\":45}],47:[function(require,module,exports){\r\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nmodule.exports = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\r\n\r\n},{}],48:[function(require,module,exports){\r\n/**\r\n * Chart.Platform implementation for targeting a web browser\r\n */\r\n\r\n'use strict';\r\n\r\nvar helpers = require(46);\r\n\r\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {Number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addEventListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeEventListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar resizer = document.createElement('div');\r\n\tvar cls = CSS_PREFIX + 'size-monitor';\r\n\tvar maxSize = 1000000;\r\n\tvar style =\r\n\t\t'position:absolute;' +\r\n\t\t'left:0;' +\r\n\t\t'top:0;' +\r\n\t\t'right:0;' +\r\n\t\t'bottom:0;' +\r\n\t\t'overflow:hidden;' +\r\n\t\t'pointer-events:none;' +\r\n\t\t'visibility:hidden;' +\r\n\t\t'z-index:-1;';\r\n\r\n\tresizer.style.cssText = style;\r\n\tresizer.className = cls;\r\n\tresizer.innerHTML =\r\n\t\t'<div class=\"' + cls + '-expand\" style=\"' + style + '\">' +\r\n\t\t\t'<div style=\"' +\r\n\t\t\t\t'position:absolute;' +\r\n\t\t\t\t'width:' + maxSize + 'px;' +\r\n\t\t\t\t'height:' + maxSize + 'px;' +\r\n\t\t\t\t'left:0;' +\r\n\t\t\t\t'top:0\">' +\r\n\t\t\t'</div>' +\r\n\t\t'</div>' +\r\n\t\t'<div class=\"' + cls + '-shrink\" style=\"' + style + '\">' +\r\n\t\t\t'<div style=\"' +\r\n\t\t\t\t'position:absolute;' +\r\n\t\t\t\t'width:200%;' +\r\n\t\t\t\t'height:200%;' +\r\n\t\t\t\t'left:0; ' +\r\n\t\t\t\t'top:0\">' +\r\n\t\t\t'</div>' +\r\n\t\t'</div>';\r\n\r\n\tvar expand = resizer.childNodes[0];\r\n\tvar shrink = resizer.childNodes[1];\r\n\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddEventListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddEventListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddEventListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveEventListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\treturn listener(createEvent('resize', chart));\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\nfunction injectCSS(platform, css) {\r\n\t// http://stackoverflow.com/q/3922139\r\n\tvar style = platform._style || document.createElement('style');\r\n\tif (!platform._style) {\r\n\t\tplatform._style = style;\r\n\t\tcss = '/* Chart.js */\\n' + css;\r\n\t\tstyle.setAttribute('type', 'text/css');\r\n\t\tdocument.getElementsByTagName('head')[0].appendChild(style);\r\n\t}\r\n\r\n\tstyle.appendChild(document.createTextNode(css));\r\n}\r\n\r\nmodule.exports = {\r\n\t/**\r\n\t * This property holds whether this platform is enabled for the current environment.\r\n\t * Currently used by platform.js to select the proper implementation.\r\n\t * @private\r\n\t */\r\n\t_enabled: typeof window !== 'undefined' && typeof document !== 'undefined',\r\n\r\n\tinitialize: function() {\r\n\t\tvar keyframes = 'from{opacity:0.99}to{opacity:1}';\r\n\r\n\t\tinjectCSS(this,\r\n\t\t\t// DOM rendering detection\r\n\t\t\t// https://davidwalsh.name/detect-node-insertion\r\n\t\t\t'@-webkit-keyframes ' + CSS_RENDER_ANIMATION + '{' + keyframes + '}' +\r\n\t\t\t'@keyframes ' + CSS_RENDER_ANIMATION + '{' + keyframes + '}' +\r\n\t\t\t'.' + CSS_RENDER_MONITOR + '{' +\r\n\t\t\t\t'-webkit-animation:' + CSS_RENDER_ANIMATION + ' 0.001s;' +\r\n\t\t\t\t'animation:' + CSS_RENDER_ANIMATION + ' 0.001s;' +\r\n\t\t\t'}'\r\n\t\t);\r\n\t},\r\n\r\n\tacquireContext: function(item, config) {\r\n\t\tif (typeof item === 'string') {\r\n\t\t\titem = document.getElementById(item);\r\n\t\t} else if (item.length) {\r\n\t\t\t// Support for array based queries (such as jQuery)\r\n\t\t\titem = item[0];\r\n\t\t}\r\n\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\t// To prevent canvas fingerprinting, some add-ons undefine the getContext\r\n\t\t// method, for example: https://github.com/kkapsner/CanvasBlocker\r\n\t\t// https://github.com/chartjs/Chart.js/issues/2807\r\n\t\tvar context = item && item.getContext && item.getContext('2d');\r\n\r\n\t\t// `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the item is\r\n\t\t// inside an iframe or when running in a protected environment. We could guess the\r\n\t\t// types from their toString() value but let's keep things flexible and assume it's\r\n\t\t// a sufficient condition if the item has a context2D which has item as `canvas`.\r\n\t\t// https://github.com/chartjs/Chart.js/issues/3887\r\n\t\t// https://github.com/chartjs/Chart.js/issues/4102\r\n\t\t// https://github.com/chartjs/Chart.js/issues/4152\r\n\t\tif (context && context.canvas === item) {\r\n\t\t\tinitCanvas(item, config);\r\n\t\t\treturn context;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t},\r\n\r\n\treleaseContext: function(context) {\r\n\t\tvar canvas = context.canvas;\r\n\t\tif (!canvas[EXPANDO_KEY]) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar initial = canvas[EXPANDO_KEY].initial;\r\n\t\t['height', 'width'].forEach(function(prop) {\r\n\t\t\tvar value = initial[prop];\r\n\t\t\tif (helpers.isNullOrUndef(value)) {\r\n\t\t\t\tcanvas.removeAttribute(prop);\r\n\t\t\t} else {\r\n\t\t\t\tcanvas.setAttribute(prop, value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\thelpers.each(initial.style || {}, function(value, key) {\r\n\t\t\tcanvas.style[key] = value;\r\n\t\t});\r\n\r\n\t\t// The canvas render size might have been changed (and thus the state stack discarded),\r\n\t\t// we can't use save() and restore() to restore the initial state. So make sure that at\r\n\t\t// least the canvas context is reset to the default state by setting the canvas width.\r\n\t\t// https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\r\n\t\tcanvas.width = canvas.width;\r\n\r\n\t\tdelete canvas[EXPANDO_KEY];\r\n\t},\r\n\r\n\taddEventListener: function(chart, type, listener) {\r\n\t\tvar canvas = chart.canvas;\r\n\t\tif (type === 'resize') {\r\n\t\t\t// Note: the resize event is not supported on all browsers.\r\n\t\t\taddResizeListener(canvas, listener, chart);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar expando = listener[EXPANDO_KEY] || (listener[EXPANDO_KEY] = {});\r\n\t\tvar proxies = expando.proxies || (expando.proxies = {});\r\n\t\tvar proxy = proxies[chart.id + '_' + type] = function(event) {\r\n\t\t\tlistener(fromNativeEvent(event, chart));\r\n\t\t};\r\n\r\n\t\taddEventListener(canvas, type, proxy);\r\n\t},\r\n\r\n\tremoveEventListener: function(chart, type, listener) {\r\n\t\tvar canvas = chart.canvas;\r\n\t\tif (type === 'resize') {\r\n\t\t\t// Note: the resize event is not supported on all browsers.\r\n\t\t\tremoveResizeListener(canvas, listener);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar expando = listener[EXPANDO_KEY] || {};\r\n\t\tvar proxies = expando.proxies || {};\r\n\t\tvar proxy = proxies[chart.id + '_' + type];\r\n\t\tif (!proxy) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tremoveEventListener(canvas, type, proxy);\r\n\t}\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use EventTarget.addEventListener instead.\r\n * EventTarget.addEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\r\n * @function Chart.helpers.addEvent\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.addEvent = addEventListener;\r\n\r\n/**\r\n * Provided for backward compatibility, use EventTarget.removeEventListener instead.\r\n * EventTarget.removeEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener\r\n * @function Chart.helpers.removeEvent\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.removeEvent = removeEventListener;\r\n\r\n},{\"46\":46}],49:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(46);\r\nvar basic = require(47);\r\nvar dom = require(48);\r\n\r\n// @TODO Make possible to select another platform at build time.\r\nvar implementation = dom._enabled ? dom : basic;\r\n\r\n/**\r\n * @namespace Chart.platform\r\n * @see https://chartjs.gitbooks.io/proposals/content/Platform.html\r\n * @since 2.4.0\r\n */\r\nmodule.exports = helpers.extend({\r\n\t/**\r\n\t * @since 2.7.0\r\n\t */\r\n\tinitialize: function() {},\r\n\r\n\t/**\r\n\t * Called at chart construction time, returns a context2d instance implementing\r\n\t * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\r\n\t * @param {*} item - The native item from which to acquire context (platform specific)\r\n\t * @param {Object} options - The chart options\r\n\t * @returns {CanvasRenderingContext2D} context2d instance\r\n\t */\r\n\tacquireContext: function() {},\r\n\r\n\t/**\r\n\t * Called at chart destruction time, releases any resources associated to the context\r\n\t * previously returned by the acquireContext() method.\r\n\t * @param {CanvasRenderingContext2D} context - The context2d instance\r\n\t * @returns {Boolean} true if the method succeeded, else false\r\n\t */\r\n\treleaseContext: function() {},\r\n\r\n\t/**\r\n\t * Registers the specified listener on the given chart.\r\n\t * @param {Chart} chart - Chart from which to listen for event\r\n\t * @param {String} type - The ({@link IEvent}) type to listen for\r\n\t * @param {Function} listener - Receives a notification (an object that implements\r\n\t * the {@link IEvent} interface) when an event of the specified type occurs.\r\n\t */\r\n\taddEventListener: function() {},\r\n\r\n\t/**\r\n\t * Removes the specified listener previously registered with addEventListener.\r\n\t * @param {Chart} chart -Chart from which to remove the listener\r\n\t * @param {String} type - The ({@link IEvent}) type to remove\r\n\t * @param {Function} listener - The listener function to remove from the event target.\r\n\t */\r\n\tremoveEventListener: function() {}\r\n\r\n}, implementation);\r\n\r\n/**\r\n * @interface IPlatform\r\n * Allows abstracting platform dependencies away from the chart\r\n * @borrows Chart.platform.acquireContext as acquireContext\r\n * @borrows Chart.platform.releaseContext as releaseContext\r\n * @borrows Chart.platform.addEventListener as addEventListener\r\n * @borrows Chart.platform.removeEventListener as removeEventListener\r\n */\r\n\r\n/**\r\n * @interface IEvent\r\n * @prop {String} type - The event type name, possible values are:\r\n * 'contextmenu', 'mouseenter', 'mousedown', 'mousemove', 'mouseup', 'mouseout',\r\n * 'click', 'dblclick', 'keydown', 'keypress', 'keyup' and 'resize'\r\n * @prop {*} native - The original native event (null for emulated events, e.g. 'resize')\r\n * @prop {Number} x - The mouse x position, relative to the canvas (null for incompatible events)\r\n * @prop {Number} y - The mouse y position, relative to the canvas (null for incompatible events)\r\n */\r\n\r\n},{\"46\":46,\"47\":47,\"48\":48}],50:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = {};\r\nmodule.exports.filler = require(51);\r\nmodule.exports.legend = require(52);\r\nmodule.exports.title = require(53);\r\n\r\n},{\"51\":51,\"52\":52,\"53\":53}],51:[function(require,module,exports){\r\n/**\r\n * Plugin based on discussion from the following Chart.js issues:\r\n * @see https://github.com/chartjs/Chart.js/issues/2380#issuecomment-279961569\r\n * @see https://github.com/chartjs/Chart.js/issues/2440#issuecomment-256461897\r\n */\r\n\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar elements = require(41);\r\nvar helpers = require(46);\r\n\r\ndefaults._set('global', {\r\n\tplugins: {\r\n\t\tfiller: {\r\n\t\t\tpropagate: true\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar mappers = {\r\n\tdataset: function(source) {\r\n\t\tvar index = source.fill;\r\n\t\tvar chart = source.chart;\r\n\t\tvar meta = chart.getDatasetMeta(index);\r\n\t\tvar visible = meta && chart.isDatasetVisible(index);\r\n\t\tvar points = (visible && meta.dataset._children) || [];\r\n\t\tvar length = points.length || 0;\r\n\r\n\t\treturn !length ? null : function(point, i) {\r\n\t\t\treturn (i < length && points[i]._view) || null;\r\n\t\t};\r\n\t},\r\n\r\n\tboundary: function(source) {\r\n\t\tvar boundary = source.boundary;\r\n\t\tvar x = boundary ? boundary.x : null;\r\n\t\tvar y = boundary ? boundary.y : null;\r\n\r\n\t\treturn function(point) {\r\n\t\t\treturn {\r\n\t\t\t\tx: x === null ? point.x : x,\r\n\t\t\t\ty: y === null ? point.y : y,\r\n\t\t\t};\r\n\t\t};\r\n\t}\r\n};\r\n\r\n// @todo if (fill[0] === '#')\r\nfunction decodeFill(el, index, count) {\r\n\tvar model = el._model || {};\r\n\tvar fill = model.fill;\r\n\tvar target;\r\n\r\n\tif (fill === undefined) {\r\n\t\tfill = !!model.backgroundColor;\r\n\t}\r\n\r\n\tif (fill === false || fill === null) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tif (fill === true) {\r\n\t\treturn 'origin';\r\n\t}\r\n\r\n\ttarget = parseFloat(fill, 10);\r\n\tif (isFinite(target) && Math.floor(target) === target) {\r\n\t\tif (fill[0] === '-' || fill[0] === '+') {\r\n\t\t\ttarget = index + target;\r\n\t\t}\r\n\r\n\t\tif (target === index || target < 0 || target >= count) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t}\r\n\r\n\tswitch (fill) {\r\n\t// compatibility\r\n\tcase 'bottom':\r\n\t\treturn 'start';\r\n\tcase 'top':\r\n\t\treturn 'end';\r\n\tcase 'zero':\r\n\t\treturn 'origin';\r\n\t// supported boundaries\r\n\tcase 'origin':\r\n\tcase 'start':\r\n\tcase 'end':\r\n\t\treturn fill;\r\n\t// invalid fill values\r\n\tdefault:\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nfunction computeBoundary(source) {\r\n\tvar model = source.el._model || {};\r\n\tvar scale = source.el._scale || {};\r\n\tvar fill = source.fill;\r\n\tvar target = null;\r\n\tvar horizontal;\r\n\r\n\tif (isFinite(fill)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// Backward compatibility: until v3, we still need to support boundary values set on\r\n\t// the model (scaleTop, scaleBottom and scaleZero) because some external plugins and\r\n\t// controllers might still use it (e.g. the Smith chart).\r\n\r\n\tif (fill === 'start') {\r\n\t\ttarget = model.scaleBottom === undefined ? scale.bottom : model.scaleBottom;\r\n\t} else if (fill === 'end') {\r\n\t\ttarget = model.scaleTop === undefined ? scale.top : model.scaleTop;\r\n\t} else if (model.scaleZero !== undefined) {\r\n\t\ttarget = model.scaleZero;\r\n\t} else if (scale.getBasePosition) {\r\n\t\ttarget = scale.getBasePosition();\r\n\t} else if (scale.getBasePixel) {\r\n\t\ttarget = scale.getBasePixel();\r\n\t}\r\n\r\n\tif (target !== undefined && target !== null) {\r\n\t\tif (target.x !== undefined && target.y !== undefined) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\tif (typeof target === 'number' && isFinite(target)) {\r\n\t\t\thorizontal = scale.isHorizontal();\r\n\t\t\treturn {\r\n\t\t\t\tx: horizontal ? target : null,\r\n\t\t\t\ty: horizontal ? null : target\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nfunction resolveTarget(sources, index, propagate) {\r\n\tvar source = sources[index];\r\n\tvar fill = source.fill;\r\n\tvar visited = [index];\r\n\tvar target;\r\n\r\n\tif (!propagate) {\r\n\t\treturn fill;\r\n\t}\r\n\r\n\twhile (fill !== false && visited.indexOf(fill) === -1) {\r\n\t\tif (!isFinite(fill)) {\r\n\t\t\treturn fill;\r\n\t\t}\r\n\r\n\t\ttarget = sources[fill];\r\n\t\tif (!target) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (target.visible) {\r\n\t\t\treturn fill;\r\n\t\t}\r\n\r\n\t\tvisited.push(fill);\r\n\t\tfill = target.fill;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n\r\nfunction createMapper(source) {\r\n\tvar fill = source.fill;\r\n\tvar type = 'dataset';\r\n\r\n\tif (fill === false) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tif (!isFinite(fill)) {\r\n\t\ttype = 'boundary';\r\n\t}\r\n\r\n\treturn mappers[type](source);\r\n}\r\n\r\nfunction isDrawable(point) {\r\n\treturn point && !point.skip;\r\n}\r\n\r\nfunction drawArea(ctx, curve0, curve1, len0, len1) {\r\n\tvar i;\r\n\r\n\tif (!len0 || !len1) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// building first area curve (normal)\r\n\tctx.moveTo(curve0[0].x, curve0[0].y);\r\n\tfor (i = 1; i < len0; ++i) {\r\n\t\thelpers.canvas.lineTo(ctx, curve0[i - 1], curve0[i]);\r\n\t}\r\n\r\n\t// joining the two area curves\r\n\tctx.lineTo(curve1[len1 - 1].x, curve1[len1 - 1].y);\r\n\r\n\t// building opposite area curve (reverse)\r\n\tfor (i = len1 - 1; i > 0; --i) {\r\n\t\thelpers.canvas.lineTo(ctx, curve1[i], curve1[i - 1], true);\r\n\t}\r\n}\r\n\r\nfunction doFill(ctx, points, mapper, view, color, loop) {\r\n\tvar count = points.length;\r\n\tvar span = view.spanGaps;\r\n\tvar curve0 = [];\r\n\tvar curve1 = [];\r\n\tvar len0 = 0;\r\n\tvar len1 = 0;\r\n\tvar i, ilen, index, p0, p1, d0, d1;\r\n\r\n\tctx.beginPath();\r\n\r\n\tfor (i = 0, ilen = (count + !!loop); i < ilen; ++i) {\r\n\t\tindex = i % count;\r\n\t\tp0 = points[index]._view;\r\n\t\tp1 = mapper(p0, index, view);\r\n\t\td0 = isDrawable(p0);\r\n\t\td1 = isDrawable(p1);\r\n\r\n\t\tif (d0 && d1) {\r\n\t\t\tlen0 = curve0.push(p0);\r\n\t\t\tlen1 = curve1.push(p1);\r\n\t\t} else if (len0 && len1) {\r\n\t\t\tif (!span) {\r\n\t\t\t\tdrawArea(ctx, curve0, curve1, len0, len1);\r\n\t\t\t\tlen0 = len1 = 0;\r\n\t\t\t\tcurve0 = [];\r\n\t\t\t\tcurve1 = [];\r\n\t\t\t} else {\r\n\t\t\t\tif (d0) {\r\n\t\t\t\t\tcurve0.push(p0);\r\n\t\t\t\t}\r\n\t\t\t\tif (d1) {\r\n\t\t\t\t\tcurve1.push(p1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tdrawArea(ctx, curve0, curve1, len0, len1);\r\n\r\n\tctx.closePath();\r\n\tctx.fillStyle = color;\r\n\tctx.fill();\r\n}\r\n\r\nmodule.exports = {\r\n\tid: 'filler',\r\n\r\n\tafterDatasetsUpdate: function(chart, options) {\r\n\t\tvar count = (chart.data.datasets || []).length;\r\n\t\tvar propagate = options.propagate;\r\n\t\tvar sources = [];\r\n\t\tvar meta, i, el, source;\r\n\r\n\t\tfor (i = 0; i < count; ++i) {\r\n\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\tel = meta.dataset;\r\n\t\t\tsource = null;\r\n\r\n\t\t\tif (el && el._model && el instanceof elements.Line) {\r\n\t\t\t\tsource = {\r\n\t\t\t\t\tvisible: chart.isDatasetVisible(i),\r\n\t\t\t\t\tfill: decodeFill(el, i, count),\r\n\t\t\t\t\tchart: chart,\r\n\t\t\t\t\tel: el\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tmeta.$filler = source;\r\n\t\t\tsources.push(source);\r\n\t\t}\r\n\r\n\t\tfor (i = 0; i < count; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!source) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tsource.fill = resolveTarget(sources, i, propagate);\r\n\t\t\tsource.boundary = computeBoundary(source);\r\n\t\t\tsource.mapper = createMapper(source);\r\n\t\t}\r\n\t},\r\n\r\n\tbeforeDatasetDraw: function(chart, args) {\r\n\t\tvar meta = args.meta.$filler;\r\n\t\tif (!meta) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar ctx = chart.ctx;\r\n\t\tvar el = meta.el;\r\n\t\tvar view = el._view;\r\n\t\tvar points = el._children || [];\r\n\t\tvar mapper = meta.mapper;\r\n\t\tvar color = view.backgroundColor || defaults.global.defaultColor;\r\n\r\n\t\tif (mapper && color && points.length) {\r\n\t\t\thelpers.canvas.clipArea(ctx, chart.chartArea);\r\n\t\t\tdoFill(ctx, points, mapper, view, color, el._loop);\r\n\t\t\thelpers.canvas.unclipArea(ctx);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"26\":26,\"41\":41,\"46\":46}],52:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar Element = require(27);\r\nvar helpers = require(46);\r\nvar layouts = require(31);\r\n\r\nvar noop = helpers.noop;\r\n\r\ndefaults._set('global', {\r\n\tlegend: {\r\n\t\tdisplay: true,\r\n\t\tposition: 'top',\r\n\t\tfullWidth: true,\r\n\t\treverse: false,\r\n\t\tweight: 1000,\r\n\r\n\t\t// a callback that will handle\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.datasetIndex;\r\n\t\t\tvar ci = this.chart;\r\n\t\t\tvar meta = ci.getDatasetMeta(index);\r\n\r\n\t\t\t// See controller.isDatasetVisible comment\r\n\t\t\tmeta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;\r\n\r\n\t\t\t// We hid a dataset ... rerender the chart\r\n\t\t\tci.update();\r\n\t\t},\r\n\r\n\t\tonHover: null,\r\n\r\n\t\tlabels: {\r\n\t\t\tboxWidth: 40,\r\n\t\t\tpadding: 10,\r\n\t\t\t// Generates labels shown in the legend\r\n\t\t\t// Valid properties to return:\r\n\t\t\t// text : text to display\r\n\t\t\t// fillStyle : fill of coloured box\r\n\t\t\t// strokeStyle: stroke of coloured box\r\n\t\t\t// hidden : if this legend item refers to a hidden item\r\n\t\t\t// lineCap : cap style for line\r\n\t\t\t// lineDash\r\n\t\t\t// lineDashOffset :\r\n\t\t\t// lineJoin :\r\n\t\t\t// lineWidth :\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\treturn helpers.isArray(data.datasets) ? data.datasets.map(function(dataset, i) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\ttext: dataset.label,\r\n\t\t\t\t\t\tfillStyle: (!helpers.isArray(dataset.backgroundColor) ? dataset.backgroundColor : dataset.backgroundColor[0]),\r\n\t\t\t\t\t\thidden: !chart.isDatasetVisible(i),\r\n\t\t\t\t\t\tlineCap: dataset.borderCapStyle,\r\n\t\t\t\t\t\tlineDash: dataset.borderDash,\r\n\t\t\t\t\t\tlineDashOffset: dataset.borderDashOffset,\r\n\t\t\t\t\t\tlineJoin: dataset.borderJoinStyle,\r\n\t\t\t\t\t\tlineWidth: dataset.borderWidth,\r\n\t\t\t\t\t\tstrokeStyle: dataset.borderColor,\r\n\t\t\t\t\t\tpointStyle: dataset.pointStyle,\r\n\r\n\t\t\t\t\t\t// Below is extra data used for toggling the datasets\r\n\t\t\t\t\t\tdatasetIndex: i\r\n\t\t\t\t\t};\r\n\t\t\t\t}, this) : [];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tlegendCallback: function(chart) {\r\n\t\tvar text = [];\r\n\t\ttext.push('<ul class=\"' + chart.id + '-legend\">');\r\n\t\tfor (var i = 0; i < chart.data.datasets.length; i++) {\r\n\t\t\ttext.push('<li><span style=\"background-color:' + chart.data.datasets[i].backgroundColor + '\"></span>');\r\n\t\t\tif (chart.data.datasets[i].label) {\r\n\t\t\t\ttext.push(chart.data.datasets[i].label);\r\n\t\t\t}\r\n\t\t\ttext.push('</li>');\r\n\t\t}\r\n\t\ttext.push('</ul>');\r\n\t\treturn text.join('');\r\n\t}\r\n});\r\n\r\n/**\r\n * Helper function to get the box width based on the usePointStyle option\r\n * @param labelopts {Object} the label options on the legend\r\n * @param fontSize {Number} the label font size\r\n * @return {Number} width of the color box area\r\n */\r\nfunction getBoxWidth(labelOpts, fontSize) {\r\n\treturn labelOpts.usePointStyle ?\r\n\t\tfontSize * Math.SQRT2 :\r\n\t\tlabelOpts.boxWidth;\r\n}\r\n\r\n/**\r\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\r\n */\r\nvar Legend = Element.extend({\r\n\r\n\tinitialize: function(config) {\r\n\t\thelpers.extend(this, config);\r\n\r\n\t\t// Contains hit boxes for each dataset (in dataset order)\r\n\t\tthis.legendHitBoxes = [];\r\n\r\n\t\t// Are we in doughnut mode which has a different data type\r\n\t\tthis.doughnutMode = false;\r\n\t},\r\n\r\n\t// These methods are ordered by lifecycle. Utilities then follow.\r\n\t// Any function defined here is inherited by all legend types.\r\n\t// Any function can be extended by the legend type\r\n\r\n\tbeforeUpdate: noop,\r\n\tupdate: function(maxWidth, maxHeight, margins) {\r\n\t\tvar me = this;\r\n\r\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\r\n\t\tme.beforeUpdate();\r\n\r\n\t\t// Absorb the master measurements\r\n\t\tme.maxWidth = maxWidth;\r\n\t\tme.maxHeight = maxHeight;\r\n\t\tme.margins = margins;\r\n\r\n\t\t// Dimensions\r\n\t\tme.beforeSetDimensions();\r\n\t\tme.setDimensions();\r\n\t\tme.afterSetDimensions();\r\n\t\t// Labels\r\n\t\tme.beforeBuildLabels();\r\n\t\tme.buildLabels();\r\n\t\tme.afterBuildLabels();\r\n\r\n\t\t// Fit\r\n\t\tme.beforeFit();\r\n\t\tme.fit();\r\n\t\tme.afterFit();\r\n\t\t//\r\n\t\tme.afterUpdate();\r\n\r\n\t\treturn me.minSize;\r\n\t},\r\n\tafterUpdate: noop,\r\n\r\n\t//\r\n\r\n\tbeforeSetDimensions: noop,\r\n\tsetDimensions: function() {\r\n\t\tvar me = this;\r\n\t\t// Set the unconstrained dimension before label rotation\r\n\t\tif (me.isHorizontal()) {\r\n\t\t\t// Reset position before calculating rotation\r\n\t\t\tme.width = me.maxWidth;\r\n\t\t\tme.left = 0;\r\n\t\t\tme.right = me.width;\r\n\t\t} else {\r\n\t\t\tme.height = me.maxHeight;\r\n\r\n\t\t\t// Reset position before calculating rotation\r\n\t\t\tme.top = 0;\r\n\t\t\tme.bottom = me.height;\r\n\t\t}\r\n\r\n\t\t// Reset padding\r\n\t\tme.paddingLeft = 0;\r\n\t\tme.paddingTop = 0;\r\n\t\tme.paddingRight = 0;\r\n\t\tme.paddingBottom = 0;\r\n\r\n\t\t// Reset minSize\r\n\t\tme.minSize = {\r\n\t\t\twidth: 0,\r\n\t\t\theight: 0\r\n\t\t};\r\n\t},\r\n\tafterSetDimensions: noop,\r\n\r\n\t//\r\n\r\n\tbeforeBuildLabels: noop,\r\n\tbuildLabels: function() {\r\n\t\tvar me = this;\r\n\t\tvar labelOpts = me.options.labels || {};\r\n\t\tvar legendItems = helpers.callback(labelOpts.generateLabels, [me.chart], me) || [];\r\n\r\n\t\tif (labelOpts.filter) {\r\n\t\t\tlegendItems = legendItems.filter(function(item) {\r\n\t\t\t\treturn labelOpts.filter(item, me.chart.data);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (me.options.reverse) {\r\n\t\t\tlegendItems.reverse();\r\n\t\t}\r\n\r\n\t\tme.legendItems = legendItems;\r\n\t},\r\n\tafterBuildLabels: noop,\r\n\r\n\t//\r\n\r\n\tbeforeFit: noop,\r\n\tfit: function() {\r\n\t\tvar me = this;\r\n\t\tvar opts = me.options;\r\n\t\tvar labelOpts = opts.labels;\r\n\t\tvar display = opts.display;\r\n\r\n\t\tvar ctx = me.ctx;\r\n\r\n\t\tvar globalDefault = defaults.global;\r\n\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\t\tvar fontSize = valueOrDefault(labelOpts.fontSize, globalDefault.defaultFontSize);\r\n\t\tvar fontStyle = valueOrDefault(labelOpts.fontStyle, globalDefault.defaultFontStyle);\r\n\t\tvar fontFamily = valueOrDefault(labelOpts.fontFamily, globalDefault.defaultFontFamily);\r\n\t\tvar labelFont = helpers.fontString(fontSize, fontStyle, fontFamily);\r\n\r\n\t\t// Reset hit boxes\r\n\t\tvar hitboxes = me.legendHitBoxes = [];\r\n\r\n\t\tvar minSize = me.minSize;\r\n\t\tvar isHorizontal = me.isHorizontal();\r\n\r\n\t\tif (isHorizontal) {\r\n\t\t\tminSize.width = me.maxWidth; // fill all the width\r\n\t\t\tminSize.height = display ? 10 : 0;\r\n\t\t} else {\r\n\t\t\tminSize.width = display ? 10 : 0;\r\n\t\t\tminSize.height = me.maxHeight; // fill all the height\r\n\t\t}\r\n\r\n\t\t// Increase sizes here\r\n\t\tif (display) {\r\n\t\t\tctx.font = labelFont;\r\n\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\t// Labels\r\n\r\n\t\t\t\t// Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\r\n\t\t\t\tvar lineWidths = me.lineWidths = [0];\r\n\t\t\t\tvar totalHeight = me.legendItems.length ? fontSize + (labelOpts.padding) : 0;\r\n\r\n\t\t\t\tctx.textAlign = 'left';\r\n\t\t\t\tctx.textBaseline = 'top';\r\n\r\n\t\t\t\thelpers.each(me.legendItems, function(legendItem, i) {\r\n\t\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\r\n\t\t\t\t\tvar width = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\r\n\r\n\t\t\t\t\tif (lineWidths[lineWidths.length - 1] + width + labelOpts.padding >= me.width) {\r\n\t\t\t\t\t\ttotalHeight += fontSize + (labelOpts.padding);\r\n\t\t\t\t\t\tlineWidths[lineWidths.length] = me.left;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\r\n\t\t\t\t\thitboxes[i] = {\r\n\t\t\t\t\t\tleft: 0,\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\twidth: width,\r\n\t\t\t\t\t\theight: fontSize\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tlineWidths[lineWidths.length - 1] += width + labelOpts.padding;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tminSize.height += totalHeight;\r\n\r\n\t\t\t} else {\r\n\t\t\t\tvar vPadding = labelOpts.padding;\r\n\t\t\t\tvar columnWidths = me.columnWidths = [];\r\n\t\t\t\tvar totalWidth = labelOpts.padding;\r\n\t\t\t\tvar currentColWidth = 0;\r\n\t\t\t\tvar currentColHeight = 0;\r\n\t\t\t\tvar itemHeight = fontSize + vPadding;\r\n\r\n\t\t\t\thelpers.each(me.legendItems, function(legendItem, i) {\r\n\t\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\r\n\t\t\t\t\tvar itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\r\n\r\n\t\t\t\t\t// If too tall, go to new column\r\n\t\t\t\t\tif (currentColHeight + itemHeight > minSize.height) {\r\n\t\t\t\t\t\ttotalWidth += currentColWidth + labelOpts.padding;\r\n\t\t\t\t\t\tcolumnWidths.push(currentColWidth); // previous column width\r\n\r\n\t\t\t\t\t\tcurrentColWidth = 0;\r\n\t\t\t\t\t\tcurrentColHeight = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Get max width\r\n\t\t\t\t\tcurrentColWidth = Math.max(currentColWidth, itemWidth);\r\n\t\t\t\t\tcurrentColHeight += itemHeight;\r\n\r\n\t\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\r\n\t\t\t\t\thitboxes[i] = {\r\n\t\t\t\t\t\tleft: 0,\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\twidth: itemWidth,\r\n\t\t\t\t\t\theight: fontSize\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\r\n\t\t\t\ttotalWidth += currentColWidth;\r\n\t\t\t\tcolumnWidths.push(currentColWidth);\r\n\t\t\t\tminSize.width += totalWidth;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tme.width = minSize.width;\r\n\t\tme.height = minSize.height;\r\n\t},\r\n\tafterFit: noop,\r\n\r\n\t// Shared Methods\r\n\tisHorizontal: function() {\r\n\t\treturn this.options.position === 'top' || this.options.position === 'bottom';\r\n\t},\r\n\r\n\t// Actually draw the legend on the canvas\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar opts = me.options;\r\n\t\tvar labelOpts = opts.labels;\r\n\t\tvar globalDefault = defaults.global;\r\n\t\tvar lineDefault = globalDefault.elements.line;\r\n\t\tvar legendWidth = me.width;\r\n\t\tvar lineWidths = me.lineWidths;\r\n\r\n\t\tif (opts.display) {\r\n\t\t\tvar ctx = me.ctx;\r\n\t\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\t\t\tvar fontColor = valueOrDefault(labelOpts.fontColor, globalDefault.defaultFontColor);\r\n\t\t\tvar fontSize = valueOrDefault(labelOpts.fontSize, globalDefault.defaultFontSize);\r\n\t\t\tvar fontStyle = valueOrDefault(labelOpts.fontStyle, globalDefault.defaultFontStyle);\r\n\t\t\tvar fontFamily = valueOrDefault(labelOpts.fontFamily, globalDefault.defaultFontFamily);\r\n\t\t\tvar labelFont = helpers.fontString(fontSize, fontStyle, fontFamily);\r\n\t\t\tvar cursor;\r\n\r\n\t\t\t// Canvas setup\r\n\t\t\tctx.textAlign = 'left';\r\n\t\t\tctx.textBaseline = 'middle';\r\n\t\t\tctx.lineWidth = 0.5;\r\n\t\t\tctx.strokeStyle = fontColor; // for strikethrough effect\r\n\t\t\tctx.fillStyle = fontColor; // render in correct colour\r\n\t\t\tctx.font = labelFont;\r\n\r\n\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\r\n\t\t\tvar hitboxes = me.legendHitBoxes;\r\n\r\n\t\t\t// current position\r\n\t\t\tvar drawLegendBox = function(x, y, legendItem) {\r\n\t\t\t\tif (isNaN(boxWidth) || boxWidth <= 0) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Set the ctx for the box\r\n\t\t\t\tctx.save();\r\n\r\n\t\t\t\tctx.fillStyle = valueOrDefault(legendItem.fillStyle, globalDefault.defaultColor);\r\n\t\t\t\tctx.lineCap = valueOrDefault(legendItem.lineCap, lineDefault.borderCapStyle);\r\n\t\t\t\tctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, lineDefault.borderDashOffset);\r\n\t\t\t\tctx.lineJoin = valueOrDefault(legendItem.lineJoin, lineDefault.borderJoinStyle);\r\n\t\t\t\tctx.lineWidth = valueOrDefault(legendItem.lineWidth, lineDefault.borderWidth);\r\n\t\t\t\tctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, globalDefault.defaultColor);\r\n\t\t\t\tvar isLineWidthZero = (valueOrDefault(legendItem.lineWidth, lineDefault.borderWidth) === 0);\r\n\r\n\t\t\t\tif (ctx.setLineDash) {\r\n\t\t\t\t\t// IE 9 and 10 do not support line dash\r\n\t\t\t\t\tctx.setLineDash(valueOrDefault(legendItem.lineDash, lineDefault.borderDash));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (opts.labels && opts.labels.usePointStyle) {\r\n\t\t\t\t\t// Recalculate x and y for drawPoint() because its expecting\r\n\t\t\t\t\t// x and y to be center of figure (instead of top left)\r\n\t\t\t\t\tvar radius = fontSize * Math.SQRT2 / 2;\r\n\t\t\t\t\tvar offSet = radius / Math.SQRT2;\r\n\t\t\t\t\tvar centerX = x + offSet;\r\n\t\t\t\t\tvar centerY = y + offSet;\r\n\r\n\t\t\t\t\t// Draw pointStyle as legend symbol\r\n\t\t\t\t\thelpers.canvas.drawPoint(ctx, legendItem.pointStyle, radius, centerX, centerY);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Draw box as legend symbol\r\n\t\t\t\t\tif (!isLineWidthZero) {\r\n\t\t\t\t\t\tctx.strokeRect(x, y, boxWidth, fontSize);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tctx.fillRect(x, y, boxWidth, fontSize);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tctx.restore();\r\n\t\t\t};\r\n\t\t\tvar fillText = function(x, y, legendItem, textWidth) {\r\n\t\t\t\tvar halfFontSize = fontSize / 2;\r\n\t\t\t\tvar xLeft = boxWidth + halfFontSize + x;\r\n\t\t\t\tvar yMiddle = y + halfFontSize;\r\n\r\n\t\t\t\tctx.fillText(legendItem.text, xLeft, yMiddle);\r\n\r\n\t\t\t\tif (legendItem.hidden) {\r\n\t\t\t\t\t// Strikethrough the text if hidden\r\n\t\t\t\t\tctx.beginPath();\r\n\t\t\t\t\tctx.lineWidth = 2;\r\n\t\t\t\t\tctx.moveTo(xLeft, yMiddle);\r\n\t\t\t\t\tctx.lineTo(xLeft + textWidth, yMiddle);\r\n\t\t\t\t\tctx.stroke();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t// Horizontal\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\tcursor = {\r\n\t\t\t\t\tx: me.left + ((legendWidth - lineWidths[0]) / 2),\r\n\t\t\t\t\ty: me.top + labelOpts.padding,\r\n\t\t\t\t\tline: 0\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tcursor = {\r\n\t\t\t\t\tx: me.left + labelOpts.padding,\r\n\t\t\t\t\ty: me.top + labelOpts.padding,\r\n\t\t\t\t\tline: 0\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tvar itemHeight = fontSize + labelOpts.padding;\r\n\t\t\thelpers.each(me.legendItems, function(legendItem, i) {\r\n\t\t\t\tvar textWidth = ctx.measureText(legendItem.text).width;\r\n\t\t\t\tvar width = boxWidth + (fontSize / 2) + textWidth;\r\n\t\t\t\tvar x = cursor.x;\r\n\t\t\t\tvar y = cursor.y;\r\n\r\n\t\t\t\tif (isHorizontal) {\r\n\t\t\t\t\tif (x + width >= legendWidth) {\r\n\t\t\t\t\t\ty = cursor.y += itemHeight;\r\n\t\t\t\t\t\tcursor.line++;\r\n\t\t\t\t\t\tx = cursor.x = me.left + ((legendWidth - lineWidths[cursor.line]) / 2);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (y + itemHeight > me.bottom) {\r\n\t\t\t\t\tx = cursor.x = x + me.columnWidths[cursor.line] + labelOpts.padding;\r\n\t\t\t\t\ty = cursor.y = me.top + labelOpts.padding;\r\n\t\t\t\t\tcursor.line++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdrawLegendBox(x, y, legendItem);\r\n\r\n\t\t\t\thitboxes[i].left = x;\r\n\t\t\t\thitboxes[i].top = y;\r\n\r\n\t\t\t\t// Fill the actual label\r\n\t\t\t\tfillText(x, y, legendItem, textWidth);\r\n\r\n\t\t\t\tif (isHorizontal) {\r\n\t\t\t\t\tcursor.x += width + (labelOpts.padding);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcursor.y += itemHeight;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Handle an event\r\n\t * @private\r\n\t * @param {IEvent} event - The event to handle\r\n\t * @return {Boolean} true if a change occured\r\n\t */\r\n\thandleEvent: function(e) {\r\n\t\tvar me = this;\r\n\t\tvar opts = me.options;\r\n\t\tvar type = e.type === 'mouseup' ? 'click' : e.type;\r\n\t\tvar changed = false;\r\n\r\n\t\tif (type === 'mousemove') {\r\n\t\t\tif (!opts.onHover) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t} else if (type === 'click') {\r\n\t\t\tif (!opts.onClick) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Chart event already has relative position in it\r\n\t\tvar x = e.x;\r\n\t\tvar y = e.y;\r\n\r\n\t\tif (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) {\r\n\t\t\t// See if we are touching one of the dataset boxes\r\n\t\t\tvar lh = me.legendHitBoxes;\r\n\t\t\tfor (var i = 0; i < lh.length; ++i) {\r\n\t\t\t\tvar hitBox = lh[i];\r\n\r\n\t\t\t\tif (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\r\n\t\t\t\t\t// Touching an element\r\n\t\t\t\t\tif (type === 'click') {\r\n\t\t\t\t\t\t// use e.native for backwards compatibility\r\n\t\t\t\t\t\topts.onClick.call(me, e.native, me.legendItems[i]);\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t} else if (type === 'mousemove') {\r\n\t\t\t\t\t\t// use e.native for backwards compatibility\r\n\t\t\t\t\t\topts.onHover.call(me, e.native, me.legendItems[i]);\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn changed;\r\n\t}\r\n});\r\n\r\nfunction createNewLegendAndAttach(chart, legendOpts) {\r\n\tvar legend = new Legend({\r\n\t\tctx: chart.ctx,\r\n\t\toptions: legendOpts,\r\n\t\tchart: chart\r\n\t});\r\n\r\n\tlayouts.configure(chart, legend, legendOpts);\r\n\tlayouts.addBox(chart, legend);\r\n\tchart.legend = legend;\r\n}\r\n\r\nmodule.exports = {\r\n\tid: 'legend',\r\n\r\n\t/**\r\n\t * Backward compatibility: since 2.1.5, the legend is registered as a plugin, making\r\n\t * Chart.Legend obsolete. To avoid a breaking change, we export the Legend as part of\r\n\t * the plugin, which one will be re-exposed in the chart.js file.\r\n\t * https://github.com/chartjs/Chart.js/pull/2640\r\n\t * @private\r\n\t */\r\n\t_element: Legend,\r\n\r\n\tbeforeInit: function(chart) {\r\n\t\tvar legendOpts = chart.options.legend;\r\n\r\n\t\tif (legendOpts) {\r\n\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\r\n\t\t}\r\n\t},\r\n\r\n\tbeforeUpdate: function(chart) {\r\n\t\tvar legendOpts = chart.options.legend;\r\n\t\tvar legend = chart.legend;\r\n\r\n\t\tif (legendOpts) {\r\n\t\t\thelpers.mergeIf(legendOpts, defaults.global.legend);\r\n\r\n\t\t\tif (legend) {\r\n\t\t\t\tlayouts.configure(chart, legend, legendOpts);\r\n\t\t\t\tlegend.options = legendOpts;\r\n\t\t\t} else {\r\n\t\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\r\n\t\t\t}\r\n\t\t} else if (legend) {\r\n\t\t\tlayouts.removeBox(chart, legend);\r\n\t\t\tdelete chart.legend;\r\n\t\t}\r\n\t},\r\n\r\n\tafterEvent: function(chart, e) {\r\n\t\tvar legend = chart.legend;\r\n\t\tif (legend) {\r\n\t\t\tlegend.handleEvent(e);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"26\":26,\"27\":27,\"31\":31,\"46\":46}],53:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar Element = require(27);\r\nvar helpers = require(46);\r\nvar layouts = require(31);\r\n\r\nvar noop = helpers.noop;\r\n\r\ndefaults._set('global', {\r\n\ttitle: {\r\n\t\tdisplay: false,\r\n\t\tfontStyle: 'bold',\r\n\t\tfullWidth: true,\r\n\t\tlineHeight: 1.2,\r\n\t\tpadding: 10,\r\n\t\tposition: 'top',\r\n\t\ttext: '',\r\n\t\tweight: 2000 // by default greater than legend (1000) to be above\r\n\t}\r\n});\r\n\r\n/**\r\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\r\n */\r\nvar Title = Element.extend({\r\n\tinitialize: function(config) {\r\n\t\tvar me = this;\r\n\t\thelpers.extend(me, config);\r\n\r\n\t\t// Contains hit boxes for each dataset (in dataset order)\r\n\t\tme.legendHitBoxes = [];\r\n\t},\r\n\r\n\t// These methods are ordered by lifecycle. Utilities then follow.\r\n\r\n\tbeforeUpdate: noop,\r\n\tupdate: function(maxWidth, maxHeight, margins) {\r\n\t\tvar me = this;\r\n\r\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\r\n\t\tme.beforeUpdate();\r\n\r\n\t\t// Absorb the master measurements\r\n\t\tme.maxWidth = maxWidth;\r\n\t\tme.maxHeight = maxHeight;\r\n\t\tme.margins = margins;\r\n\r\n\t\t// Dimensions\r\n\t\tme.beforeSetDimensions();\r\n\t\tme.setDimensions();\r\n\t\tme.afterSetDimensions();\r\n\t\t// Labels\r\n\t\tme.beforeBuildLabels();\r\n\t\tme.buildLabels();\r\n\t\tme.afterBuildLabels();\r\n\r\n\t\t// Fit\r\n\t\tme.beforeFit();\r\n\t\tme.fit();\r\n\t\tme.afterFit();\r\n\t\t//\r\n\t\tme.afterUpdate();\r\n\r\n\t\treturn me.minSize;\r\n\r\n\t},\r\n\tafterUpdate: noop,\r\n\r\n\t//\r\n\r\n\tbeforeSetDimensions: noop,\r\n\tsetDimensions: function() {\r\n\t\tvar me = this;\r\n\t\t// Set the unconstrained dimension before label rotation\r\n\t\tif (me.isHorizontal()) {\r\n\t\t\t// Reset position before calculating rotation\r\n\t\t\tme.width = me.maxWidth;\r\n\t\t\tme.left = 0;\r\n\t\t\tme.right = me.width;\r\n\t\t} else {\r\n\t\t\tme.height = me.maxHeight;\r\n\r\n\t\t\t// Reset position before calculating rotation\r\n\t\t\tme.top = 0;\r\n\t\t\tme.bottom = me.height;\r\n\t\t}\r\n\r\n\t\t// Reset padding\r\n\t\tme.paddingLeft = 0;\r\n\t\tme.paddingTop = 0;\r\n\t\tme.paddingRight = 0;\r\n\t\tme.paddingBottom = 0;\r\n\r\n\t\t// Reset minSize\r\n\t\tme.minSize = {\r\n\t\t\twidth: 0,\r\n\t\t\theight: 0\r\n\t\t};\r\n\t},\r\n\tafterSetDimensions: noop,\r\n\r\n\t//\r\n\r\n\tbeforeBuildLabels: noop,\r\n\tbuildLabels: noop,\r\n\tafterBuildLabels: noop,\r\n\r\n\t//\r\n\r\n\tbeforeFit: noop,\r\n\tfit: function() {\r\n\t\tvar me = this;\r\n\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\t\tvar opts = me.options;\r\n\t\tvar display = opts.display;\r\n\t\tvar fontSize = valueOrDefault(opts.fontSize, defaults.global.defaultFontSize);\r\n\t\tvar minSize = me.minSize;\r\n\t\tvar lineCount = helpers.isArray(opts.text) ? opts.text.length : 1;\r\n\t\tvar lineHeight = helpers.options.toLineHeight(opts.lineHeight, fontSize);\r\n\t\tvar textSize = display ? (lineCount * lineHeight) + (opts.padding * 2) : 0;\r\n\r\n\t\tif (me.isHorizontal()) {\r\n\t\t\tminSize.width = me.maxWidth; // fill all the width\r\n\t\t\tminSize.height = textSize;\r\n\t\t} else {\r\n\t\t\tminSize.width = textSize;\r\n\t\t\tminSize.height = me.maxHeight; // fill all the height\r\n\t\t}\r\n\r\n\t\tme.width = minSize.width;\r\n\t\tme.height = minSize.height;\r\n\r\n\t},\r\n\tafterFit: noop,\r\n\r\n\t// Shared Methods\r\n\tisHorizontal: function() {\r\n\t\tvar pos = this.options.position;\r\n\t\treturn pos === 'top' || pos === 'bottom';\r\n\t},\r\n\r\n\t// Actually draw the title block on the canvas\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar ctx = me.ctx;\r\n\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\t\tvar opts = me.options;\r\n\t\tvar globalDefaults = defaults.global;\r\n\r\n\t\tif (opts.display) {\r\n\t\t\tvar fontSize = valueOrDefault(opts.fontSize, globalDefaults.defaultFontSize);\r\n\t\t\tvar fontStyle = valueOrDefault(opts.fontStyle, globalDefaults.defaultFontStyle);\r\n\t\t\tvar fontFamily = valueOrDefault(opts.fontFamily, globalDefaults.defaultFontFamily);\r\n\t\t\tvar titleFont = helpers.fontString(fontSize, fontStyle, fontFamily);\r\n\t\t\tvar lineHeight = helpers.options.toLineHeight(opts.lineHeight, fontSize);\r\n\t\t\tvar offset = lineHeight / 2 + opts.padding;\r\n\t\t\tvar rotation = 0;\r\n\t\t\tvar top = me.top;\r\n\t\t\tvar left = me.left;\r\n\t\t\tvar bottom = me.bottom;\r\n\t\t\tvar right = me.right;\r\n\t\t\tvar maxWidth, titleX, titleY;\r\n\r\n\t\t\tctx.fillStyle = valueOrDefault(opts.fontColor, globalDefaults.defaultFontColor); // render in correct colour\r\n\t\t\tctx.font = titleFont;\r\n\r\n\t\t\t// Horizontal\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\ttitleX = left + ((right - left) / 2); // midpoint of the width\r\n\t\t\t\ttitleY = top + offset;\r\n\t\t\t\tmaxWidth = right - left;\r\n\t\t\t} else {\r\n\t\t\t\ttitleX = opts.position === 'left' ? left + offset : right - offset;\r\n\t\t\t\ttitleY = top + ((bottom - top) / 2);\r\n\t\t\t\tmaxWidth = bottom - top;\r\n\t\t\t\trotation = Math.PI * (opts.position === 'left' ? -0.5 : 0.5);\r\n\t\t\t}\r\n\r\n\t\t\tctx.save();\r\n\t\t\tctx.translate(titleX, titleY);\r\n\t\t\tctx.rotate(rotation);\r\n\t\t\tctx.textAlign = 'center';\r\n\t\t\tctx.textBaseline = 'middle';\r\n\r\n\t\t\tvar text = opts.text;\r\n\t\t\tif (helpers.isArray(text)) {\r\n\t\t\t\tvar y = 0;\r\n\t\t\t\tfor (var i = 0; i < text.length; ++i) {\r\n\t\t\t\t\tctx.fillText(text[i], 0, y, maxWidth);\r\n\t\t\t\t\ty += lineHeight;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tctx.fillText(text, 0, 0, maxWidth);\r\n\t\t\t}\r\n\r\n\t\t\tctx.restore();\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction createNewTitleBlockAndAttach(chart, titleOpts) {\r\n\tvar title = new Title({\r\n\t\tctx: chart.ctx,\r\n\t\toptions: titleOpts,\r\n\t\tchart: chart\r\n\t});\r\n\r\n\tlayouts.configure(chart, title, titleOpts);\r\n\tlayouts.addBox(chart, title);\r\n\tchart.titleBlock = title;\r\n}\r\n\r\nmodule.exports = {\r\n\tid: 'title',\r\n\r\n\t/**\r\n\t * Backward compatibility: since 2.1.5, the title is registered as a plugin, making\r\n\t * Chart.Title obsolete. To avoid a breaking change, we export the Title as part of\r\n\t * the plugin, which one will be re-exposed in the chart.js file.\r\n\t * https://github.com/chartjs/Chart.js/pull/2640\r\n\t * @private\r\n\t */\r\n\t_element: Title,\r\n\r\n\tbeforeInit: function(chart) {\r\n\t\tvar titleOpts = chart.options.title;\r\n\r\n\t\tif (titleOpts) {\r\n\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\r\n\t\t}\r\n\t},\r\n\r\n\tbeforeUpdate: function(chart) {\r\n\t\tvar titleOpts = chart.options.title;\r\n\t\tvar titleBlock = chart.titleBlock;\r\n\r\n\t\tif (titleOpts) {\r\n\t\t\thelpers.mergeIf(titleOpts, defaults.global.title);\r\n\r\n\t\t\tif (titleBlock) {\r\n\t\t\t\tlayouts.configure(chart, titleBlock, titleOpts);\r\n\t\t\t\ttitleBlock.options = titleOpts;\r\n\t\t\t} else {\r\n\t\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\r\n\t\t\t}\r\n\t\t} else if (titleBlock) {\r\n\t\t\tlayouts.removeBox(chart, titleBlock);\r\n\t\t\tdelete chart.titleBlock;\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"26\":26,\"27\":27,\"31\":31,\"46\":46}],54:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar Scale = require(33);\r\nvar scaleService = require(34);\r\n\r\nmodule.exports = function() {\r\n\r\n\t// Default config for a category scale\r\n\tvar defaultConfig = {\r\n\t\tposition: 'bottom'\r\n\t};\r\n\r\n\tvar DatasetScale = Scale.extend({\r\n\t\t/**\r\n\t\t* Internal function to get the correct labels. If data.xLabels or data.yLabels are defined, use those\r\n\t\t* else fall back to data.labels\r\n\t\t* @private\r\n\t\t*/\r\n\t\tgetLabels: function() {\r\n\t\t\tvar data = this.chart.data;\r\n\t\t\treturn this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels;\r\n\t\t},\r\n\r\n\t\tdetermineDataLimits: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar labels = me.getLabels();\r\n\t\t\tme.minIndex = 0;\r\n\t\t\tme.maxIndex = labels.length - 1;\r\n\t\t\tvar findIndex;\r\n\r\n\t\t\tif (me.options.ticks.min !== undefined) {\r\n\t\t\t\t// user specified min value\r\n\t\t\t\tfindIndex = labels.indexOf(me.options.ticks.min);\r\n\t\t\t\tme.minIndex = findIndex !== -1 ? findIndex : me.minIndex;\r\n\t\t\t}\r\n\r\n\t\t\tif (me.options.ticks.max !== undefined) {\r\n\t\t\t\t// user specified max value\r\n\t\t\t\tfindIndex = labels.indexOf(me.options.ticks.max);\r\n\t\t\t\tme.maxIndex = findIndex !== -1 ? findIndex : me.maxIndex;\r\n\t\t\t}\r\n\r\n\t\t\tme.min = labels[me.minIndex];\r\n\t\t\tme.max = labels[me.maxIndex];\r\n\t\t},\r\n\r\n\t\tbuildTicks: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar labels = me.getLabels();\r\n\t\t\t// If we are viewing some subset of labels, slice the original array\r\n\t\t\tme.ticks = (me.minIndex === 0 && me.maxIndex === labels.length - 1) ? labels : labels.slice(me.minIndex, me.maxIndex + 1);\r\n\t\t},\r\n\r\n\t\tgetLabelForIndex: function(index, datasetIndex) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar data = me.chart.data;\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\r\n\t\t\tif (data.yLabels && !isHorizontal) {\r\n\t\t\t\treturn me.getRightValue(data.datasets[datasetIndex].data[index]);\r\n\t\t\t}\r\n\t\t\treturn me.ticks[index - me.minIndex];\r\n\t\t},\r\n\r\n\t\t// Used to get data value locations. Value can either be an index or a numerical value\r\n\t\tgetPixelForValue: function(value, index) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar offset = me.options.offset;\r\n\t\t\t// 1 is added because we need the length but we have the indexes\r\n\t\t\tvar offsetAmt = Math.max((me.maxIndex + 1 - me.minIndex - (offset ? 0 : 1)), 1);\r\n\r\n\t\t\t// If value is a data object, then index is the index in the data array,\r\n\t\t\t// not the index of the scale. We need to change that.\r\n\t\t\tvar valueCategory;\r\n\t\t\tif (value !== undefined && value !== null) {\r\n\t\t\t\tvalueCategory = me.isHorizontal() ? value.x : value.y;\r\n\t\t\t}\r\n\t\t\tif (valueCategory !== undefined || (value !== undefined && isNaN(index))) {\r\n\t\t\t\tvar labels = me.getLabels();\r\n\t\t\t\tvalue = valueCategory || value;\r\n\t\t\t\tvar idx = labels.indexOf(value);\r\n\t\t\t\tindex = idx !== -1 ? idx : index;\r\n\t\t\t}\r\n\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\tvar valueWidth = me.width / offsetAmt;\r\n\t\t\t\tvar widthOffset = (valueWidth * (index - me.minIndex));\r\n\r\n\t\t\t\tif (offset) {\r\n\t\t\t\t\twidthOffset += (valueWidth / 2);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn me.left + Math.round(widthOffset);\r\n\t\t\t}\r\n\t\t\tvar valueHeight = me.height / offsetAmt;\r\n\t\t\tvar heightOffset = (valueHeight * (index - me.minIndex));\r\n\r\n\t\t\tif (offset) {\r\n\t\t\t\theightOffset += (valueHeight / 2);\r\n\t\t\t}\r\n\r\n\t\t\treturn me.top + Math.round(heightOffset);\r\n\t\t},\r\n\t\tgetPixelForTick: function(index) {\r\n\t\t\treturn this.getPixelForValue(this.ticks[index], index + this.minIndex, null);\r\n\t\t},\r\n\t\tgetValueForPixel: function(pixel) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar offset = me.options.offset;\r\n\t\t\tvar value;\r\n\t\t\tvar offsetAmt = Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\r\n\t\t\tvar horz = me.isHorizontal();\r\n\t\t\tvar valueDimension = (horz ? me.width : me.height) / offsetAmt;\r\n\r\n\t\t\tpixel -= horz ? me.left : me.top;\r\n\r\n\t\t\tif (offset) {\r\n\t\t\t\tpixel -= (valueDimension / 2);\r\n\t\t\t}\r\n\r\n\t\t\tif (pixel <= 0) {\r\n\t\t\t\tvalue = 0;\r\n\t\t\t} else {\r\n\t\t\t\tvalue = Math.round(pixel / valueDimension);\r\n\t\t\t}\r\n\r\n\t\t\treturn value + me.minIndex;\r\n\t\t},\r\n\t\tgetBasePixel: function() {\r\n\t\t\treturn this.bottom;\r\n\t\t}\r\n\t});\r\n\r\n\tscaleService.registerScaleType('category', DatasetScale, defaultConfig);\r\n};\r\n\r\n},{\"33\":33,\"34\":34}],55:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar helpers = require(46);\r\nvar scaleService = require(34);\r\nvar Ticks = require(35);\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tvar defaultConfig = {\r\n\t\tposition: 'left',\r\n\t\tticks: {\r\n\t\t\tcallback: Ticks.formatters.linear\r\n\t\t}\r\n\t};\r\n\r\n\tvar LinearScale = Chart.LinearScaleBase.extend({\r\n\r\n\t\tdetermineDataLimits: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar data = chart.data;\r\n\t\t\tvar datasets = data.datasets;\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\t\t\tvar DEFAULT_MIN = 0;\r\n\t\t\tvar DEFAULT_MAX = 1;\r\n\r\n\t\t\tfunction IDMatches(meta) {\r\n\t\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\r\n\t\t\t}\r\n\r\n\t\t\t// First Calculate the range\r\n\t\t\tme.min = null;\r\n\t\t\tme.max = null;\r\n\r\n\t\t\tvar hasStacks = opts.stacked;\r\n\t\t\tif (hasStacks === undefined) {\r\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tif (hasStacks) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\r\n\t\t\t\t\t\tmeta.stack !== undefined) {\r\n\t\t\t\t\t\thasStacks = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (opts.stacked || hasStacks) {\r\n\t\t\t\tvar valuesPerStack = {};\r\n\r\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tvar key = [\r\n\t\t\t\t\t\tmeta.type,\r\n\t\t\t\t\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\r\n\t\t\t\t\t\t((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\r\n\t\t\t\t\t\tmeta.stack\r\n\t\t\t\t\t].join('.');\r\n\r\n\t\t\t\t\tif (valuesPerStack[key] === undefined) {\r\n\t\t\t\t\t\tvaluesPerStack[key] = {\r\n\t\t\t\t\t\t\tpositiveValues: [],\r\n\t\t\t\t\t\t\tnegativeValues: []\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Store these per type\r\n\t\t\t\t\tvar positiveValues = valuesPerStack[key].positiveValues;\r\n\t\t\t\t\tvar negativeValues = valuesPerStack[key].negativeValues;\r\n\r\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\r\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\r\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\r\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tpositiveValues[index] = positiveValues[index] || 0;\r\n\t\t\t\t\t\t\tnegativeValues[index] = negativeValues[index] || 0;\r\n\r\n\t\t\t\t\t\t\tif (opts.relativePoints) {\r\n\t\t\t\t\t\t\t\tpositiveValues[index] = 100;\r\n\t\t\t\t\t\t\t} else if (value < 0) {\r\n\t\t\t\t\t\t\t\tnegativeValues[index] += value;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tpositiveValues[index] += value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\thelpers.each(valuesPerStack, function(valuesForType) {\r\n\t\t\t\t\tvar values = valuesForType.positiveValues.concat(valuesForType.negativeValues);\r\n\t\t\t\t\tvar minVal = helpers.min(values);\r\n\t\t\t\t\tvar maxVal = helpers.max(values);\r\n\t\t\t\t\tme.min = me.min === null ? minVal : Math.min(me.min, minVal);\r\n\t\t\t\t\tme.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\r\n\t\t\t\t});\r\n\r\n\t\t\t} else {\r\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\r\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\r\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\r\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (me.min === null) {\r\n\t\t\t\t\t\t\t\tme.min = value;\r\n\t\t\t\t\t\t\t} else if (value < me.min) {\r\n\t\t\t\t\t\t\t\tme.min = value;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (me.max === null) {\r\n\t\t\t\t\t\t\t\tme.max = value;\r\n\t\t\t\t\t\t\t} else if (value > me.max) {\r\n\t\t\t\t\t\t\t\tme.max = value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tme.min = isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN;\r\n\t\t\tme.max = isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX;\r\n\r\n\t\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\r\n\t\t\tthis.handleTickRangeOptions();\r\n\t\t},\r\n\t\tgetTickLimit: function() {\r\n\t\t\tvar maxTicks;\r\n\t\t\tvar me = this;\r\n\t\t\tvar tickOpts = me.options.ticks;\r\n\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\tmaxTicks = Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(me.width / 50));\r\n\t\t\t} else {\r\n\t\t\t\t// The factor of 2 used to scale the font size has been experimentally determined.\r\n\t\t\t\tvar tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, defaults.global.defaultFontSize);\r\n\t\t\t\tmaxTicks = Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(me.height / (2 * tickFontSize)));\r\n\t\t\t}\r\n\r\n\t\t\treturn maxTicks;\r\n\t\t},\r\n\t\t// Called after the ticks are built. We need\r\n\t\thandleDirectionalChanges: function() {\r\n\t\t\tif (!this.isHorizontal()) {\r\n\t\t\t\t// We are in a vertical orientation. The top value is the highest. So reverse the array\r\n\t\t\t\tthis.ticks.reverse();\r\n\t\t\t}\r\n\t\t},\r\n\t\tgetLabelForIndex: function(index, datasetIndex) {\r\n\t\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\r\n\t\t},\r\n\t\t// Utils\r\n\t\tgetPixelForValue: function(value) {\r\n\t\t\t// This must be called after fit has been run so that\r\n\t\t\t// this.left, this.top, this.right, and this.bottom have been defined\r\n\t\t\tvar me = this;\r\n\t\t\tvar start = me.start;\r\n\r\n\t\t\tvar rightValue = +me.getRightValue(value);\r\n\t\t\tvar pixel;\r\n\t\t\tvar range = me.end - start;\r\n\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\tpixel = me.left + (me.width / range * (rightValue - start));\r\n\t\t\t} else {\r\n\t\t\t\tpixel = me.bottom - (me.height / range * (rightValue - start));\r\n\t\t\t}\r\n\t\t\treturn pixel;\r\n\t\t},\r\n\t\tgetValueForPixel: function(pixel) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\t\t\tvar innerDimension = isHorizontal ? me.width : me.height;\r\n\t\t\tvar offset = (isHorizontal ? pixel - me.left : me.bottom - pixel) / innerDimension;\r\n\t\t\treturn me.start + ((me.end - me.start) * offset);\r\n\t\t},\r\n\t\tgetPixelForTick: function(index) {\r\n\t\t\treturn this.getPixelForValue(this.ticksAsNumbers[index]);\r\n\t\t}\r\n\t});\r\n\r\n\tscaleService.registerScaleType('linear', LinearScale, defaultConfig);\r\n};\r\n\r\n},{\"26\":26,\"34\":34,\"35\":35,\"46\":46}],56:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(46);\r\nvar Scale = require(33);\r\n\r\n/**\r\n * Generate a set of linear ticks\r\n * @param generationOptions the options used to generate the ticks\r\n * @param dataRange the range of the data\r\n * @returns {Array<Number>} array of tick values\r\n */\r\nfunction generateTicks(generationOptions, dataRange) {\r\n\tvar ticks = [];\r\n\t// To get a \"nice\" value for the tick spacing, we will use the appropriately named\r\n\t// \"nice number\" algorithm. See http://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\r\n\t// for details.\r\n\r\n\tvar factor;\r\n\tvar precision;\r\n\tvar spacing;\r\n\r\n\tif (generationOptions.stepSize && generationOptions.stepSize > 0) {\r\n\t\tspacing = generationOptions.stepSize;\r\n\t} else {\r\n\t\tvar niceRange = helpers.niceNum(dataRange.max - dataRange.min, false);\r\n\t\tspacing = helpers.niceNum(niceRange / (generationOptions.maxTicks - 1), true);\r\n\r\n\t\tprecision = generationOptions.precision;\r\n\t\tif (precision !== undefined) {\r\n\t\t\t// If the user specified a precision, round to that number of decimal places\r\n\t\t\tfactor = Math.pow(10, precision);\r\n\t\t\tspacing = Math.ceil(spacing * factor) / factor;\r\n\t\t}\r\n\t}\r\n\tvar niceMin = Math.floor(dataRange.min / spacing) * spacing;\r\n\tvar niceMax = Math.ceil(dataRange.max / spacing) * spacing;\r\n\r\n\t// If min, max and stepSize is set and they make an evenly spaced scale use it.\r\n\tif (!helpers.isNullOrUndef(generationOptions.min) && !helpers.isNullOrUndef(generationOptions.max) && generationOptions.stepSize) {\r\n\t\t// If very close to our whole number, use it.\r\n\t\tif (helpers.almostWhole((generationOptions.max - generationOptions.min) / generationOptions.stepSize, spacing / 1000)) {\r\n\t\t\tniceMin = generationOptions.min;\r\n\t\t\tniceMax = generationOptions.max;\r\n\t\t}\r\n\t}\r\n\r\n\tvar numSpaces = (niceMax - niceMin) / spacing;\r\n\t// If very close to our rounded value, use it.\r\n\tif (helpers.almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\r\n\t\tnumSpaces = Math.round(numSpaces);\r\n\t} else {\r\n\t\tnumSpaces = Math.ceil(numSpaces);\r\n\t}\r\n\r\n\tprecision = 1;\r\n\tif (spacing < 1) {\r\n\t\tprecision = Math.pow(10, 1 - Math.floor(helpers.log10(spacing)));\r\n\t\tniceMin = Math.round(niceMin * precision) / precision;\r\n\t\tniceMax = Math.round(niceMax * precision) / precision;\r\n\t}\r\n\tticks.push(generationOptions.min !== undefined ? generationOptions.min : niceMin);\r\n\tfor (var j = 1; j < numSpaces; ++j) {\r\n\t\tticks.push(Math.round((niceMin + j * spacing) * precision) / precision);\r\n\t}\r\n\tticks.push(generationOptions.max !== undefined ? generationOptions.max : niceMax);\r\n\r\n\treturn ticks;\r\n}\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tvar noop = helpers.noop;\r\n\r\n\tChart.LinearScaleBase = Scale.extend({\r\n\t\tgetRightValue: function(value) {\r\n\t\t\tif (typeof value === 'string') {\r\n\t\t\t\treturn +value;\r\n\t\t\t}\r\n\t\t\treturn Scale.prototype.getRightValue.call(this, value);\r\n\t\t},\r\n\r\n\t\thandleTickRangeOptions: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\r\n\t\t\t// If we are forcing it to begin at 0, but 0 will already be rendered on the chart,\r\n\t\t\t// do nothing since that would make the chart weird. If the user really wants a weird chart\r\n\t\t\t// axis, they can manually override it\r\n\t\t\tif (tickOpts.beginAtZero) {\r\n\t\t\t\tvar minSign = helpers.sign(me.min);\r\n\t\t\t\tvar maxSign = helpers.sign(me.max);\r\n\r\n\t\t\t\tif (minSign < 0 && maxSign < 0) {\r\n\t\t\t\t\t// move the top up to 0\r\n\t\t\t\t\tme.max = 0;\r\n\t\t\t\t} else if (minSign > 0 && maxSign > 0) {\r\n\t\t\t\t\t// move the bottom down to 0\r\n\t\t\t\t\tme.min = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined;\r\n\t\t\tvar setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined;\r\n\r\n\t\t\tif (tickOpts.min !== undefined) {\r\n\t\t\t\tme.min = tickOpts.min;\r\n\t\t\t} else if (tickOpts.suggestedMin !== undefined) {\r\n\t\t\t\tif (me.min === null) {\r\n\t\t\t\t\tme.min = tickOpts.suggestedMin;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tme.min = Math.min(me.min, tickOpts.suggestedMin);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (tickOpts.max !== undefined) {\r\n\t\t\t\tme.max = tickOpts.max;\r\n\t\t\t} else if (tickOpts.suggestedMax !== undefined) {\r\n\t\t\t\tif (me.max === null) {\r\n\t\t\t\t\tme.max = tickOpts.suggestedMax;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tme.max = Math.max(me.max, tickOpts.suggestedMax);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (setMin !== setMax) {\r\n\t\t\t\t// We set the min or the max but not both.\r\n\t\t\t\t// So ensure that our range is good\r\n\t\t\t\t// Inverted or 0 length range can happen when\r\n\t\t\t\t// ticks.min is set, and no datasets are visible\r\n\t\t\t\tif (me.min >= me.max) {\r\n\t\t\t\t\tif (setMin) {\r\n\t\t\t\t\t\tme.max = me.min + 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tme.min = me.max - 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (me.min === me.max) {\r\n\t\t\t\tme.max++;\r\n\r\n\t\t\t\tif (!tickOpts.beginAtZero) {\r\n\t\t\t\t\tme.min--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tgetTickLimit: noop,\r\n\t\thandleDirectionalChanges: noop,\r\n\r\n\t\tbuildTicks: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\r\n\t\t\t// Figure out what the max number of ticks we can support it is based on the size of\r\n\t\t\t// the axis area. For now, we say that the minimum tick spacing in pixels must be 50\r\n\t\t\t// We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\r\n\t\t\t// the graph. Make sure we always have at least 2 ticks\r\n\t\t\tvar maxTicks = me.getTickLimit();\r\n\t\t\tmaxTicks = Math.max(2, maxTicks);\r\n\r\n\t\t\tvar numericGeneratorOptions = {\r\n\t\t\t\tmaxTicks: maxTicks,\r\n\t\t\t\tmin: tickOpts.min,\r\n\t\t\t\tmax: tickOpts.max,\r\n\t\t\t\tprecision: tickOpts.precision,\r\n\t\t\t\tstepSize: helpers.valueOrDefault(tickOpts.fixedStepSize, tickOpts.stepSize)\r\n\t\t\t};\r\n\t\t\tvar ticks = me.ticks = generateTicks(numericGeneratorOptions, me);\r\n\r\n\t\t\tme.handleDirectionalChanges();\r\n\r\n\t\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\r\n\t\t\t// range of the scale\r\n\t\t\tme.max = helpers.max(ticks);\r\n\t\t\tme.min = helpers.min(ticks);\r\n\r\n\t\t\tif (tickOpts.reverse) {\r\n\t\t\t\tticks.reverse();\r\n\r\n\t\t\t\tme.start = me.max;\r\n\t\t\t\tme.end = me.min;\r\n\t\t\t} else {\r\n\t\t\t\tme.start = me.min;\r\n\t\t\t\tme.end = me.max;\r\n\t\t\t}\r\n\t\t},\r\n\t\tconvertTicksToLabels: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tme.ticksAsNumbers = me.ticks.slice();\r\n\t\t\tme.zeroLineIndex = me.ticks.indexOf(0);\r\n\r\n\t\t\tScale.prototype.convertTicksToLabels.call(me);\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"33\":33,\"46\":46}],57:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(46);\r\nvar Scale = require(33);\r\nvar scaleService = require(34);\r\nvar Ticks = require(35);\r\n\r\n/**\r\n * Generate a set of logarithmic ticks\r\n * @param generationOptions the options used to generate the ticks\r\n * @param dataRange the range of the data\r\n * @returns {Array<Number>} array of tick values\r\n */\r\nfunction generateTicks(generationOptions, dataRange) {\r\n\tvar ticks = [];\r\n\tvar valueOrDefault = helpers.valueOrDefault;\r\n\r\n\t// Figure out what the max number of ticks we can support it is based on the size of\r\n\t// the axis area. For now, we say that the minimum tick spacing in pixels must be 50\r\n\t// We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\r\n\t// the graph\r\n\tvar tickVal = valueOrDefault(generationOptions.min, Math.pow(10, Math.floor(helpers.log10(dataRange.min))));\r\n\r\n\tvar endExp = Math.floor(helpers.log10(dataRange.max));\r\n\tvar endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\r\n\tvar exp, significand;\r\n\r\n\tif (tickVal === 0) {\r\n\t\texp = Math.floor(helpers.log10(dataRange.minNotZero));\r\n\t\tsignificand = Math.floor(dataRange.minNotZero / Math.pow(10, exp));\r\n\r\n\t\tticks.push(tickVal);\r\n\t\ttickVal = significand * Math.pow(10, exp);\r\n\t} else {\r\n\t\texp = Math.floor(helpers.log10(tickVal));\r\n\t\tsignificand = Math.floor(tickVal / Math.pow(10, exp));\r\n\t}\r\n\tvar precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\r\n\r\n\tdo {\r\n\t\tticks.push(tickVal);\r\n\r\n\t\t++significand;\r\n\t\tif (significand === 10) {\r\n\t\t\tsignificand = 1;\r\n\t\t\t++exp;\r\n\t\t\tprecision = exp >= 0 ? 1 : precision;\r\n\t\t}\r\n\r\n\t\ttickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\r\n\t} while (exp < endExp || (exp === endExp && significand < endSignificand));\r\n\r\n\tvar lastTick = valueOrDefault(generationOptions.max, tickVal);\r\n\tticks.push(lastTick);\r\n\r\n\treturn ticks;\r\n}\r\n\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tvar defaultConfig = {\r\n\t\tposition: 'left',\r\n\r\n\t\t// label settings\r\n\t\tticks: {\r\n\t\t\tcallback: Ticks.formatters.logarithmic\r\n\t\t}\r\n\t};\r\n\r\n\tvar LogarithmicScale = Scale.extend({\r\n\t\tdetermineDataLimits: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar data = chart.data;\r\n\t\t\tvar datasets = data.datasets;\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\t\t\tfunction IDMatches(meta) {\r\n\t\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\r\n\t\t\t}\r\n\r\n\t\t\t// Calculate Range\r\n\t\t\tme.min = null;\r\n\t\t\tme.max = null;\r\n\t\t\tme.minNotZero = null;\r\n\r\n\t\t\tvar hasStacks = opts.stacked;\r\n\t\t\tif (hasStacks === undefined) {\r\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tif (hasStacks) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\r\n\t\t\t\t\t\tmeta.stack !== undefined) {\r\n\t\t\t\t\t\thasStacks = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (opts.stacked || hasStacks) {\r\n\t\t\t\tvar valuesPerStack = {};\r\n\r\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tvar key = [\r\n\t\t\t\t\t\tmeta.type,\r\n\t\t\t\t\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\r\n\t\t\t\t\t\t((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\r\n\t\t\t\t\t\tmeta.stack\r\n\t\t\t\t\t].join('.');\r\n\r\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\r\n\t\t\t\t\t\tif (valuesPerStack[key] === undefined) {\r\n\t\t\t\t\t\t\tvaluesPerStack[key] = [];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\r\n\t\t\t\t\t\t\tvar values = valuesPerStack[key];\r\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\r\n\t\t\t\t\t\t\t// invalid, hidden and negative values are ignored\r\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden || value < 0) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvalues[index] = values[index] || 0;\r\n\t\t\t\t\t\t\tvalues[index] += value;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\thelpers.each(valuesPerStack, function(valuesForType) {\r\n\t\t\t\t\tif (valuesForType.length > 0) {\r\n\t\t\t\t\t\tvar minVal = helpers.min(valuesForType);\r\n\t\t\t\t\t\tvar maxVal = helpers.max(valuesForType);\r\n\t\t\t\t\t\tme.min = me.min === null ? minVal : Math.min(me.min, minVal);\r\n\t\t\t\t\t\tme.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t} else {\r\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\r\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\r\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\r\n\t\t\t\t\t\t\t// invalid, hidden and negative values are ignored\r\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden || value < 0) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (me.min === null) {\r\n\t\t\t\t\t\t\t\tme.min = value;\r\n\t\t\t\t\t\t\t} else if (value < me.min) {\r\n\t\t\t\t\t\t\t\tme.min = value;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (me.max === null) {\r\n\t\t\t\t\t\t\t\tme.max = value;\r\n\t\t\t\t\t\t\t} else if (value > me.max) {\r\n\t\t\t\t\t\t\t\tme.max = value;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (value !== 0 && (me.minNotZero === null || value < me.minNotZero)) {\r\n\t\t\t\t\t\t\t\tme.minNotZero = value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Common base implementation to handle ticks.min, ticks.max\r\n\t\t\tthis.handleTickRangeOptions();\r\n\t\t},\r\n\t\thandleTickRangeOptions: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\t\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\t\t\tvar DEFAULT_MIN = 1;\r\n\t\t\tvar DEFAULT_MAX = 10;\r\n\r\n\t\t\tme.min = valueOrDefault(tickOpts.min, me.min);\r\n\t\t\tme.max = valueOrDefault(tickOpts.max, me.max);\r\n\r\n\t\t\tif (me.min === me.max) {\r\n\t\t\t\tif (me.min !== 0 && me.min !== null) {\r\n\t\t\t\t\tme.min = Math.pow(10, Math.floor(helpers.log10(me.min)) - 1);\r\n\t\t\t\t\tme.max = Math.pow(10, Math.floor(helpers.log10(me.max)) + 1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tme.min = DEFAULT_MIN;\r\n\t\t\t\t\tme.max = DEFAULT_MAX;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (me.min === null) {\r\n\t\t\t\tme.min = Math.pow(10, Math.floor(helpers.log10(me.max)) - 1);\r\n\t\t\t}\r\n\t\t\tif (me.max === null) {\r\n\t\t\t\tme.max = me.min !== 0\r\n\t\t\t\t\t? Math.pow(10, Math.floor(helpers.log10(me.min)) + 1)\r\n\t\t\t\t\t: DEFAULT_MAX;\r\n\t\t\t}\r\n\t\t\tif (me.minNotZero === null) {\r\n\t\t\t\tif (me.min > 0) {\r\n\t\t\t\t\tme.minNotZero = me.min;\r\n\t\t\t\t} else if (me.max < 1) {\r\n\t\t\t\t\tme.minNotZero = Math.pow(10, Math.floor(helpers.log10(me.max)));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tme.minNotZero = DEFAULT_MIN;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tbuildTicks: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\t\t\tvar reverse = !me.isHorizontal();\r\n\r\n\t\t\tvar generationOptions = {\r\n\t\t\t\tmin: tickOpts.min,\r\n\t\t\t\tmax: tickOpts.max\r\n\t\t\t};\r\n\t\t\tvar ticks = me.ticks = generateTicks(generationOptions, me);\r\n\r\n\t\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\r\n\t\t\t// range of the scale\r\n\t\t\tme.max = helpers.max(ticks);\r\n\t\t\tme.min = helpers.min(ticks);\r\n\r\n\t\t\tif (tickOpts.reverse) {\r\n\t\t\t\treverse = !reverse;\r\n\t\t\t\tme.start = me.max;\r\n\t\t\t\tme.end = me.min;\r\n\t\t\t} else {\r\n\t\t\t\tme.start = me.min;\r\n\t\t\t\tme.end = me.max;\r\n\t\t\t}\r\n\t\t\tif (reverse) {\r\n\t\t\t\tticks.reverse();\r\n\t\t\t}\r\n\t\t},\r\n\t\tconvertTicksToLabels: function() {\r\n\t\t\tthis.tickValues = this.ticks.slice();\r\n\r\n\t\t\tScale.prototype.convertTicksToLabels.call(this);\r\n\t\t},\r\n\t\t// Get the correct tooltip label\r\n\t\tgetLabelForIndex: function(index, datasetIndex) {\r\n\t\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\r\n\t\t},\r\n\t\tgetPixelForTick: function(index) {\r\n\t\t\treturn this.getPixelForValue(this.tickValues[index]);\r\n\t\t},\r\n\t\t/**\r\n\t\t * Returns the value of the first tick.\r\n\t\t * @param {Number} value - The minimum not zero value.\r\n\t\t * @return {Number} The first tick value.\r\n\t\t * @private\r\n\t\t */\r\n\t\t_getFirstTickValue: function(value) {\r\n\t\t\tvar exp = Math.floor(helpers.log10(value));\r\n\t\t\tvar significand = Math.floor(value / Math.pow(10, exp));\r\n\r\n\t\t\treturn significand * Math.pow(10, exp);\r\n\t\t},\r\n\t\tgetPixelForValue: function(value) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar reverse = me.options.ticks.reverse;\r\n\t\t\tvar log10 = helpers.log10;\r\n\t\t\tvar firstTickValue = me._getFirstTickValue(me.minNotZero);\r\n\t\t\tvar offset = 0;\r\n\t\t\tvar innerDimension, pixel, start, end, sign;\r\n\r\n\t\t\tvalue = +me.getRightValue(value);\r\n\t\t\tif (reverse) {\r\n\t\t\t\tstart = me.end;\r\n\t\t\t\tend = me.start;\r\n\t\t\t\tsign = -1;\r\n\t\t\t} else {\r\n\t\t\t\tstart = me.start;\r\n\t\t\t\tend = me.end;\r\n\t\t\t\tsign = 1;\r\n\t\t\t}\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\tinnerDimension = me.width;\r\n\t\t\t\tpixel = reverse ? me.right : me.left;\r\n\t\t\t} else {\r\n\t\t\t\tinnerDimension = me.height;\r\n\t\t\t\tsign *= -1; // invert, since the upper-left corner of the canvas is at pixel (0, 0)\r\n\t\t\t\tpixel = reverse ? me.top : me.bottom;\r\n\t\t\t}\r\n\t\t\tif (value !== start) {\r\n\t\t\t\tif (start === 0) { // include zero tick\r\n\t\t\t\t\toffset = helpers.getValueOrDefault(\r\n\t\t\t\t\t\tme.options.ticks.fontSize,\r\n\t\t\t\t\t\tChart.defaults.global.defaultFontSize\r\n\t\t\t\t\t);\r\n\t\t\t\t\tinnerDimension -= offset;\r\n\t\t\t\t\tstart = firstTickValue;\r\n\t\t\t\t}\r\n\t\t\t\tif (value !== 0) {\r\n\t\t\t\t\toffset += innerDimension / (log10(end) - log10(start)) * (log10(value) - log10(start));\r\n\t\t\t\t}\r\n\t\t\t\tpixel += sign * offset;\r\n\t\t\t}\r\n\t\t\treturn pixel;\r\n\t\t},\r\n\t\tgetValueForPixel: function(pixel) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar reverse = me.options.ticks.reverse;\r\n\t\t\tvar log10 = helpers.log10;\r\n\t\t\tvar firstTickValue = me._getFirstTickValue(me.minNotZero);\r\n\t\t\tvar innerDimension, start, end, value;\r\n\r\n\t\t\tif (reverse) {\r\n\t\t\t\tstart = me.end;\r\n\t\t\t\tend = me.start;\r\n\t\t\t} else {\r\n\t\t\t\tstart = me.start;\r\n\t\t\t\tend = me.end;\r\n\t\t\t}\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\tinnerDimension = me.width;\r\n\t\t\t\tvalue = reverse ? me.right - pixel : pixel - me.left;\r\n\t\t\t} else {\r\n\t\t\t\tinnerDimension = me.height;\r\n\t\t\t\tvalue = reverse ? pixel - me.top : me.bottom - pixel;\r\n\t\t\t}\r\n\t\t\tif (value !== start) {\r\n\t\t\t\tif (start === 0) { // include zero tick\r\n\t\t\t\t\tvar offset = helpers.getValueOrDefault(\r\n\t\t\t\t\t\tme.options.ticks.fontSize,\r\n\t\t\t\t\t\tChart.defaults.global.defaultFontSize\r\n\t\t\t\t\t);\r\n\t\t\t\t\tvalue -= offset;\r\n\t\t\t\t\tinnerDimension -= offset;\r\n\t\t\t\t\tstart = firstTickValue;\r\n\t\t\t\t}\r\n\t\t\t\tvalue *= log10(end) - log10(start);\r\n\t\t\t\tvalue /= innerDimension;\r\n\t\t\t\tvalue = Math.pow(10, log10(start) + value);\r\n\t\t\t}\r\n\t\t\treturn value;\r\n\t\t}\r\n\t});\r\n\r\n\tscaleService.registerScaleType('logarithmic', LogarithmicScale, defaultConfig);\r\n};\r\n\r\n},{\"33\":33,\"34\":34,\"35\":35,\"46\":46}],58:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(26);\r\nvar helpers = require(46);\r\nvar scaleService = require(34);\r\nvar Ticks = require(35);\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tvar globalDefaults = defaults.global;\r\n\r\n\tvar defaultConfig = {\r\n\t\tdisplay: true,\r\n\r\n\t\t// Boolean - Whether to animate scaling the chart from the centre\r\n\t\tanimate: true,\r\n\t\tposition: 'chartArea',\r\n\r\n\t\tangleLines: {\r\n\t\t\tdisplay: true,\r\n\t\t\tcolor: 'rgba(0, 0, 0, 0.1)',\r\n\t\t\tlineWidth: 1\r\n\t\t},\r\n\r\n\t\tgridLines: {\r\n\t\t\tcircular: false\r\n\t\t},\r\n\r\n\t\t// label settings\r\n\t\tticks: {\r\n\t\t\t// Boolean - Show a backdrop to the scale label\r\n\t\t\tshowLabelBackdrop: true,\r\n\r\n\t\t\t// String - The colour of the label backdrop\r\n\t\t\tbackdropColor: 'rgba(255,255,255,0.75)',\r\n\r\n\t\t\t// Number - The backdrop padding above & below the label in pixels\r\n\t\t\tbackdropPaddingY: 2,\r\n\r\n\t\t\t// Number - The backdrop padding to the side of the label in pixels\r\n\t\t\tbackdropPaddingX: 2,\r\n\r\n\t\t\tcallback: Ticks.formatters.linear\r\n\t\t},\r\n\r\n\t\tpointLabels: {\r\n\t\t\t// Boolean - if true, show point labels\r\n\t\t\tdisplay: true,\r\n\r\n\t\t\t// Number - Point label font size in pixels\r\n\t\t\tfontSize: 10,\r\n\r\n\t\t\t// Function - Used to convert point labels\r\n\t\t\tcallback: function(label) {\r\n\t\t\t\treturn label;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tfunction getValueCount(scale) {\r\n\t\tvar opts = scale.options;\r\n\t\treturn opts.angleLines.display || opts.pointLabels.display ? scale.chart.data.labels.length : 0;\r\n\t}\r\n\r\n\tfunction getPointLabelFontOptions(scale) {\r\n\t\tvar pointLabelOptions = scale.options.pointLabels;\r\n\t\tvar fontSize = helpers.valueOrDefault(pointLabelOptions.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar fontStyle = helpers.valueOrDefault(pointLabelOptions.fontStyle, globalDefaults.defaultFontStyle);\r\n\t\tvar fontFamily = helpers.valueOrDefault(pointLabelOptions.fontFamily, globalDefaults.defaultFontFamily);\r\n\t\tvar font = helpers.fontString(fontSize, fontStyle, fontFamily);\r\n\r\n\t\treturn {\r\n\t\t\tsize: fontSize,\r\n\t\t\tstyle: fontStyle,\r\n\t\t\tfamily: fontFamily,\r\n\t\t\tfont: font\r\n\t\t};\r\n\t}\r\n\r\n\tfunction measureLabelSize(ctx, fontSize, label) {\r\n\t\tif (helpers.isArray(label)) {\r\n\t\t\treturn {\r\n\t\t\t\tw: helpers.longestText(ctx, ctx.font, label),\r\n\t\t\t\th: (label.length * fontSize) + ((label.length - 1) * 1.5 * fontSize)\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tw: ctx.measureText(label).width,\r\n\t\t\th: fontSize\r\n\t\t};\r\n\t}\r\n\r\n\tfunction determineLimits(angle, pos, size, min, max) {\r\n\t\tif (angle === min || angle === max) {\r\n\t\t\treturn {\r\n\t\t\t\tstart: pos - (size / 2),\r\n\t\t\t\tend: pos + (size / 2)\r\n\t\t\t};\r\n\t\t} else if (angle < min || angle > max) {\r\n\t\t\treturn {\r\n\t\t\t\tstart: pos - size - 5,\r\n\t\t\t\tend: pos\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tstart: pos,\r\n\t\t\tend: pos + size + 5\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Helper function to fit a radial linear scale with point labels\r\n\t */\r\n\tfunction fitWithPointLabels(scale) {\r\n\t\t/*\r\n\t\t * Right, this is really confusing and there is a lot of maths going on here\r\n\t\t * The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\r\n\t\t *\r\n\t\t * Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\r\n\t\t *\r\n\t\t * Solution:\r\n\t\t *\r\n\t\t * We assume the radius of the polygon is half the size of the canvas at first\r\n\t\t * at each index we check if the text overlaps.\r\n\t\t *\r\n\t\t * Where it does, we store that angle and that index.\r\n\t\t *\r\n\t\t * After finding the largest index and angle we calculate how much we need to remove\r\n\t\t * from the shape radius to move the point inwards by that x.\r\n\t\t *\r\n\t\t * We average the left and right distances to get the maximum shape radius that can fit in the box\r\n\t\t * along with labels.\r\n\t\t *\r\n\t\t * Once we have that, we can find the centre point for the chart, by taking the x text protrusion\r\n\t\t * on each side, removing that from the size, halving it and adding the left x protrusion width.\r\n\t\t *\r\n\t\t * This will mean we have a shape fitted to the canvas, as large as it can be with the labels\r\n\t\t * and position it in the most space efficient manner\r\n\t\t *\r\n\t\t * https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\r\n\t\t */\r\n\r\n\t\tvar plFont = getPointLabelFontOptions(scale);\r\n\r\n\t\t// Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\r\n\t\t// Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\r\n\t\tvar largestPossibleRadius = Math.min(scale.height / 2, scale.width / 2);\r\n\t\tvar furthestLimits = {\r\n\t\t\tr: scale.width,\r\n\t\t\tl: 0,\r\n\t\t\tt: scale.height,\r\n\t\t\tb: 0\r\n\t\t};\r\n\t\tvar furthestAngles = {};\r\n\t\tvar i, textSize, pointPosition;\r\n\r\n\t\tscale.ctx.font = plFont.font;\r\n\t\tscale._pointLabelSizes = [];\r\n\r\n\t\tvar valueCount = getValueCount(scale);\r\n\t\tfor (i = 0; i < valueCount; i++) {\r\n\t\t\tpointPosition = scale.getPointPosition(i, largestPossibleRadius);\r\n\t\t\ttextSize = measureLabelSize(scale.ctx, plFont.size, scale.pointLabels[i] || '');\r\n\t\t\tscale._pointLabelSizes[i] = textSize;\r\n\r\n\t\t\t// Add quarter circle to make degree 0 mean top of circle\r\n\t\t\tvar angleRadians = scale.getIndexAngle(i);\r\n\t\t\tvar angle = helpers.toDegrees(angleRadians) % 360;\r\n\t\t\tvar hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\r\n\t\t\tvar vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\r\n\r\n\t\t\tif (hLimits.start < furthestLimits.l) {\r\n\t\t\t\tfurthestLimits.l = hLimits.start;\r\n\t\t\t\tfurthestAngles.l = angleRadians;\r\n\t\t\t}\r\n\r\n\t\t\tif (hLimits.end > furthestLimits.r) {\r\n\t\t\t\tfurthestLimits.r = hLimits.end;\r\n\t\t\t\tfurthestAngles.r = angleRadians;\r\n\t\t\t}\r\n\r\n\t\t\tif (vLimits.start < furthestLimits.t) {\r\n\t\t\t\tfurthestLimits.t = vLimits.start;\r\n\t\t\t\tfurthestAngles.t = angleRadians;\r\n\t\t\t}\r\n\r\n\t\t\tif (vLimits.end > furthestLimits.b) {\r\n\t\t\t\tfurthestLimits.b = vLimits.end;\r\n\t\t\t\tfurthestAngles.b = angleRadians;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tscale.setReductions(largestPossibleRadius, furthestLimits, furthestAngles);\r\n\t}\r\n\r\n\t/**\r\n\t * Helper function to fit a radial linear scale with no point labels\r\n\t */\r\n\tfunction fit(scale) {\r\n\t\tvar largestPossibleRadius = Math.min(scale.height / 2, scale.width / 2);\r\n\t\tscale.drawingArea = Math.round(largestPossibleRadius);\r\n\t\tscale.setCenterPoint(0, 0, 0, 0);\r\n\t}\r\n\r\n\tfunction getTextAlignForAngle(angle) {\r\n\t\tif (angle === 0 || angle === 180) {\r\n\t\t\treturn 'center';\r\n\t\t} else if (angle < 180) {\r\n\t\t\treturn 'left';\r\n\t\t}\r\n\r\n\t\treturn 'right';\r\n\t}\r\n\r\n\tfunction fillText(ctx, text, position, fontSize) {\r\n\t\tif (helpers.isArray(text)) {\r\n\t\t\tvar y = position.y;\r\n\t\t\tvar spacing = 1.5 * fontSize;\r\n\r\n\t\t\tfor (var i = 0; i < text.length; ++i) {\r\n\t\t\t\tctx.fillText(text[i], position.x, y);\r\n\t\t\t\ty += spacing;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tctx.fillText(text, position.x, position.y);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction adjustPointPositionForLabelHeight(angle, textSize, position) {\r\n\t\tif (angle === 90 || angle === 270) {\r\n\t\t\tposition.y -= (textSize.h / 2);\r\n\t\t} else if (angle > 270 || angle < 90) {\r\n\t\t\tposition.y -= textSize.h;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction drawPointLabels(scale) {\r\n\t\tvar ctx = scale.ctx;\r\n\t\tvar opts = scale.options;\r\n\t\tvar angleLineOpts = opts.angleLines;\r\n\t\tvar pointLabelOpts = opts.pointLabels;\r\n\r\n\t\tctx.lineWidth = angleLineOpts.lineWidth;\r\n\t\tctx.strokeStyle = angleLineOpts.color;\r\n\r\n\t\tvar outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\r\n\r\n\t\t// Point Label Font\r\n\t\tvar plFont = getPointLabelFontOptions(scale);\r\n\r\n\t\tctx.textBaseline = 'top';\r\n\r\n\t\tfor (var i = getValueCount(scale) - 1; i >= 0; i--) {\r\n\t\t\tif (angleLineOpts.display) {\r\n\t\t\t\tvar outerPosition = scale.getPointPosition(i, outerDistance);\r\n\t\t\t\tctx.beginPath();\r\n\t\t\t\tctx.moveTo(scale.xCenter, scale.yCenter);\r\n\t\t\t\tctx.lineTo(outerPosition.x, outerPosition.y);\r\n\t\t\t\tctx.stroke();\r\n\t\t\t\tctx.closePath();\r\n\t\t\t}\r\n\r\n\t\t\tif (pointLabelOpts.display) {\r\n\t\t\t\t// Extra 3px out for some label spacing\r\n\t\t\t\tvar pointLabelPosition = scale.getPointPosition(i, outerDistance + 5);\r\n\r\n\t\t\t\t// Keep this in loop since we may support array properties here\r\n\t\t\t\tvar pointLabelFontColor = helpers.valueAtIndexOrDefault(pointLabelOpts.fontColor, i, globalDefaults.defaultFontColor);\r\n\t\t\t\tctx.font = plFont.font;\r\n\t\t\t\tctx.fillStyle = pointLabelFontColor;\r\n\r\n\t\t\t\tvar angleRadians = scale.getIndexAngle(i);\r\n\t\t\t\tvar angle = helpers.toDegrees(angleRadians);\r\n\t\t\t\tctx.textAlign = getTextAlignForAngle(angle);\r\n\t\t\t\tadjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition);\r\n\t\t\t\tfillText(ctx, scale.pointLabels[i] || '', pointLabelPosition, plFont.size);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction drawRadiusLine(scale, gridLineOpts, radius, index) {\r\n\t\tvar ctx = scale.ctx;\r\n\t\tctx.strokeStyle = helpers.valueAtIndexOrDefault(gridLineOpts.color, index - 1);\r\n\t\tctx.lineWidth = helpers.valueAtIndexOrDefault(gridLineOpts.lineWidth, index - 1);\r\n\r\n\t\tif (scale.options.gridLines.circular) {\r\n\t\t\t// Draw circular arcs between the points\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(scale.xCenter, scale.yCenter, radius, 0, Math.PI * 2);\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.stroke();\r\n\t\t} else {\r\n\t\t\t// Draw straight lines connecting each index\r\n\t\t\tvar valueCount = getValueCount(scale);\r\n\r\n\t\t\tif (valueCount === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tctx.beginPath();\r\n\t\t\tvar pointPosition = scale.getPointPosition(0, radius);\r\n\t\t\tctx.moveTo(pointPosition.x, pointPosition.y);\r\n\r\n\t\t\tfor (var i = 1; i < valueCount; i++) {\r\n\t\t\t\tpointPosition = scale.getPointPosition(i, radius);\r\n\t\t\t\tctx.lineTo(pointPosition.x, pointPosition.y);\r\n\t\t\t}\r\n\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.stroke();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction numberOrZero(param) {\r\n\t\treturn helpers.isNumber(param) ? param : 0;\r\n\t}\r\n\r\n\tvar LinearRadialScale = Chart.LinearScaleBase.extend({\r\n\t\tsetDimensions: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\t\t\t// Set the unconstrained dimension before label rotation\r\n\t\t\tme.width = me.maxWidth;\r\n\t\t\tme.height = me.maxHeight;\r\n\t\t\tme.xCenter = Math.round(me.width / 2);\r\n\t\t\tme.yCenter = Math.round(me.height / 2);\r\n\r\n\t\t\tvar minSize = helpers.min([me.height, me.width]);\r\n\t\t\tvar tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\r\n\t\t\tme.drawingArea = opts.display ? (minSize / 2) - (tickFontSize / 2 + tickOpts.backdropPaddingY) : (minSize / 2);\r\n\t\t},\r\n\t\tdetermineDataLimits: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar min = Number.POSITIVE_INFINITY;\r\n\t\t\tvar max = Number.NEGATIVE_INFINITY;\r\n\r\n\t\t\thelpers.each(chart.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex)) {\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\r\n\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\r\n\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\r\n\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tmin = Math.min(value, min);\r\n\t\t\t\t\t\tmax = Math.max(value, max);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tme.min = (min === Number.POSITIVE_INFINITY ? 0 : min);\r\n\t\t\tme.max = (max === Number.NEGATIVE_INFINITY ? 0 : max);\r\n\r\n\t\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\r\n\t\t\tme.handleTickRangeOptions();\r\n\t\t},\r\n\t\tgetTickLimit: function() {\r\n\t\t\tvar tickOpts = this.options.ticks;\r\n\t\t\tvar tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\r\n\t\t\treturn Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(this.drawingArea / (1.5 * tickFontSize)));\r\n\t\t},\r\n\t\tconvertTicksToLabels: function() {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tChart.LinearScaleBase.prototype.convertTicksToLabels.call(me);\r\n\r\n\t\t\t// Point labels\r\n\t\t\tme.pointLabels = me.chart.data.labels.map(me.options.pointLabels.callback, me);\r\n\t\t},\r\n\t\tgetLabelForIndex: function(index, datasetIndex) {\r\n\t\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\r\n\t\t},\r\n\t\tfit: function() {\r\n\t\t\tif (this.options.pointLabels.display) {\r\n\t\t\t\tfitWithPointLabels(this);\r\n\t\t\t} else {\r\n\t\t\t\tfit(this);\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * Set radius reductions and determine new radius and center point\r\n\t\t * @private\r\n\t\t */\r\n\t\tsetReductions: function(largestPossibleRadius, furthestLimits, furthestAngles) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\r\n\t\t\tvar radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\r\n\t\t\tvar radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\r\n\t\t\tvar radiusReductionBottom = -Math.max(furthestLimits.b - me.height, 0) / Math.cos(furthestAngles.b);\r\n\r\n\t\t\tradiusReductionLeft = numberOrZero(radiusReductionLeft);\r\n\t\t\tradiusReductionRight = numberOrZero(radiusReductionRight);\r\n\t\t\tradiusReductionTop = numberOrZero(radiusReductionTop);\r\n\t\t\tradiusReductionBottom = numberOrZero(radiusReductionBottom);\r\n\r\n\t\t\tme.drawingArea = Math.min(\r\n\t\t\t\tMath.round(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\r\n\t\t\t\tMath.round(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2));\r\n\t\t\tme.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\r\n\t\t},\r\n\t\tsetCenterPoint: function(leftMovement, rightMovement, topMovement, bottomMovement) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar maxRight = me.width - rightMovement - me.drawingArea;\r\n\t\t\tvar maxLeft = leftMovement + me.drawingArea;\r\n\t\t\tvar maxTop = topMovement + me.drawingArea;\r\n\t\t\tvar maxBottom = me.height - bottomMovement - me.drawingArea;\r\n\r\n\t\t\tme.xCenter = Math.round(((maxLeft + maxRight) / 2) + me.left);\r\n\t\t\tme.yCenter = Math.round(((maxTop + maxBottom) / 2) + me.top);\r\n\t\t},\r\n\r\n\t\tgetIndexAngle: function(index) {\r\n\t\t\tvar angleMultiplier = (Math.PI * 2) / getValueCount(this);\r\n\t\t\tvar startAngle = this.chart.options && this.chart.options.startAngle ?\r\n\t\t\t\tthis.chart.options.startAngle :\r\n\t\t\t\t0;\r\n\r\n\t\t\tvar startAngleRadians = startAngle * Math.PI * 2 / 360;\r\n\r\n\t\t\t// Start from the top instead of right, so remove a quarter of the circle\r\n\t\t\treturn index * angleMultiplier + startAngleRadians;\r\n\t\t},\r\n\t\tgetDistanceFromCenterForValue: function(value) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tif (value === null) {\r\n\t\t\t\treturn 0; // null always in center\r\n\t\t\t}\r\n\r\n\t\t\t// Take into account half font size + the yPadding of the top value\r\n\t\t\tvar scalingFactor = me.drawingArea / (me.max - me.min);\r\n\t\t\tif (me.options.ticks.reverse) {\r\n\t\t\t\treturn (me.max - value) * scalingFactor;\r\n\t\t\t}\r\n\t\t\treturn (value - me.min) * scalingFactor;\r\n\t\t},\r\n\t\tgetPointPosition: function(index, distanceFromCenter) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar thisAngle = me.getIndexAngle(index) - (Math.PI / 2);\r\n\t\t\treturn {\r\n\t\t\t\tx: Math.round(Math.cos(thisAngle) * distanceFromCenter) + me.xCenter,\r\n\t\t\t\ty: Math.round(Math.sin(thisAngle) * distanceFromCenter) + me.yCenter\r\n\t\t\t};\r\n\t\t},\r\n\t\tgetPointPositionForValue: function(index, value) {\r\n\t\t\treturn this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\r\n\t\t},\r\n\r\n\t\tgetBasePosition: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar min = me.min;\r\n\t\t\tvar max = me.max;\r\n\r\n\t\t\treturn me.getPointPositionForValue(0,\r\n\t\t\t\tme.beginAtZero ? 0 :\r\n\t\t\t\tmin < 0 && max < 0 ? max :\r\n\t\t\t\tmin > 0 && max > 0 ? min :\r\n\t\t\t\t0);\r\n\t\t},\r\n\r\n\t\tdraw: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar gridLineOpts = opts.gridLines;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\t\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\r\n\t\t\tif (opts.display) {\r\n\t\t\t\tvar ctx = me.ctx;\r\n\t\t\t\tvar startAngle = this.getIndexAngle(0);\r\n\r\n\t\t\t\t// Tick Font\r\n\t\t\t\tvar tickFontSize = valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\r\n\t\t\t\tvar tickFontStyle = valueOrDefault(tickOpts.fontStyle, globalDefaults.defaultFontStyle);\r\n\t\t\t\tvar tickFontFamily = valueOrDefault(tickOpts.fontFamily, globalDefaults.defaultFontFamily);\r\n\t\t\t\tvar tickLabelFont = helpers.fontString(tickFontSize, tickFontStyle, tickFontFamily);\r\n\r\n\t\t\t\thelpers.each(me.ticks, function(label, index) {\r\n\t\t\t\t\t// Don't draw a centre value (if it is minimum)\r\n\t\t\t\t\tif (index > 0 || tickOpts.reverse) {\r\n\t\t\t\t\t\tvar yCenterOffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\r\n\r\n\t\t\t\t\t\t// Draw circular lines around the scale\r\n\t\t\t\t\t\tif (gridLineOpts.display && index !== 0) {\r\n\t\t\t\t\t\t\tdrawRadiusLine(me, gridLineOpts, yCenterOffset, index);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (tickOpts.display) {\r\n\t\t\t\t\t\t\tvar tickFontColor = valueOrDefault(tickOpts.fontColor, globalDefaults.defaultFontColor);\r\n\t\t\t\t\t\t\tctx.font = tickLabelFont;\r\n\r\n\t\t\t\t\t\t\tctx.save();\r\n\t\t\t\t\t\t\tctx.translate(me.xCenter, me.yCenter);\r\n\t\t\t\t\t\t\tctx.rotate(startAngle);\r\n\r\n\t\t\t\t\t\t\tif (tickOpts.showLabelBackdrop) {\r\n\t\t\t\t\t\t\t\tvar labelWidth = ctx.measureText(label).width;\r\n\t\t\t\t\t\t\t\tctx.fillStyle = tickOpts.backdropColor;\r\n\t\t\t\t\t\t\t\tctx.fillRect(\r\n\t\t\t\t\t\t\t\t\t-labelWidth / 2 - tickOpts.backdropPaddingX,\r\n\t\t\t\t\t\t\t\t\t-yCenterOffset - tickFontSize / 2 - tickOpts.backdropPaddingY,\r\n\t\t\t\t\t\t\t\t\tlabelWidth + tickOpts.backdropPaddingX * 2,\r\n\t\t\t\t\t\t\t\t\ttickFontSize + tickOpts.backdropPaddingY * 2\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tctx.textAlign = 'center';\r\n\t\t\t\t\t\t\tctx.textBaseline = 'middle';\r\n\t\t\t\t\t\t\tctx.fillStyle = tickFontColor;\r\n\t\t\t\t\t\t\tctx.fillText(label, 0, -yCenterOffset);\r\n\t\t\t\t\t\t\tctx.restore();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (opts.angleLines.display || opts.pointLabels.display) {\r\n\t\t\t\t\tdrawPointLabels(me);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tscaleService.registerScaleType('radialLinear', LinearRadialScale, defaultConfig);\r\n};\r\n\r\n},{\"26\":26,\"34\":34,\"35\":35,\"46\":46}],59:[function(require,module,exports){\r\n/* global window: false */\r\n'use strict';\r\n\r\nvar moment = require(1);\r\nmoment = typeof moment === 'function' ? moment : window.moment;\r\n\r\nvar defaults = require(26);\r\nvar helpers = require(46);\r\nvar Scale = require(33);\r\nvar scaleService = require(34);\r\n\r\n// Integer constants are from the ES6 spec.\r\nvar MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;\r\nvar MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\n\r\nvar INTERVALS = {\r\n\tmillisecond: {\r\n\t\tcommon: true,\r\n\t\tsize: 1,\r\n\t\tsteps: [1, 2, 5, 10, 20, 50, 100, 250, 500]\r\n\t},\r\n\tsecond: {\r\n\t\tcommon: true,\r\n\t\tsize: 1000,\r\n\t\tsteps: [1, 2, 5, 10, 15, 30]\r\n\t},\r\n\tminute: {\r\n\t\tcommon: true,\r\n\t\tsize: 60000,\r\n\t\tsteps: [1, 2, 5, 10, 15, 30]\r\n\t},\r\n\thour: {\r\n\t\tcommon: true,\r\n\t\tsize: 3600000,\r\n\t\tsteps: [1, 2, 3, 6, 12]\r\n\t},\r\n\tday: {\r\n\t\tcommon: true,\r\n\t\tsize: 86400000,\r\n\t\tsteps: [1, 2, 5]\r\n\t},\r\n\tweek: {\r\n\t\tcommon: false,\r\n\t\tsize: 604800000,\r\n\t\tsteps: [1, 2, 3, 4]\r\n\t},\r\n\tmonth: {\r\n\t\tcommon: true,\r\n\t\tsize: 2.628e9,\r\n\t\tsteps: [1, 2, 3]\r\n\t},\r\n\tquarter: {\r\n\t\tcommon: false,\r\n\t\tsize: 7.884e9,\r\n\t\tsteps: [1, 2, 3, 4]\r\n\t},\r\n\tyear: {\r\n\t\tcommon: true,\r\n\t\tsize: 3.154e10\r\n\t}\r\n};\r\n\r\nvar UNITS = Object.keys(INTERVALS);\r\n\r\nfunction sorter(a, b) {\r\n\treturn a - b;\r\n}\r\n\r\nfunction arrayUnique(items) {\r\n\tvar hash = {};\r\n\tvar out = [];\r\n\tvar i, ilen, item;\r\n\r\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\r\n\t\titem = items[i];\r\n\t\tif (!hash[item]) {\r\n\t\t\thash[item] = true;\r\n\t\t\tout.push(item);\r\n\t\t}\r\n\t}\r\n\r\n\treturn out;\r\n}\r\n\r\n/**\r\n * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\r\n * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\r\n * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\r\n * extremity (left + width or top + height). Note that it would be more optimized to directly\r\n * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\r\n * to create the lookup table. The table ALWAYS contains at least two items: min and max.\r\n *\r\n * @param {Number[]} timestamps - timestamps sorted from lowest to highest.\r\n * @param {String} distribution - If 'linear', timestamps will be spread linearly along the min\r\n * and max range, so basically, the table will contains only two items: {min, 0} and {max, 1}.\r\n * If 'series', timestamps will be positioned at the same distance from each other. In this\r\n * case, only timestamps that break the time linearity are registered, meaning that in the\r\n * best case, all timestamps are linear, the table contains only min and max.\r\n */\r\nfunction buildLookupTable(timestamps, min, max, distribution) {\r\n\tif (distribution === 'linear' || !timestamps.length) {\r\n\t\treturn [\r\n\t\t\t{time: min, pos: 0},\r\n\t\t\t{time: max, pos: 1}\r\n\t\t];\r\n\t}\r\n\r\n\tvar table = [];\r\n\tvar items = [min];\r\n\tvar i, ilen, prev, curr, next;\r\n\r\n\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\r\n\t\tcurr = timestamps[i];\r\n\t\tif (curr > min && curr < max) {\r\n\t\t\titems.push(curr);\r\n\t\t}\r\n\t}\r\n\r\n\titems.push(max);\r\n\r\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\r\n\t\tnext = items[i + 1];\r\n\t\tprev = items[i - 1];\r\n\t\tcurr = items[i];\r\n\r\n\t\t// only add points that breaks the scale linearity\r\n\t\tif (prev === undefined || next === undefined || Math.round((next + prev) / 2) !== curr) {\r\n\t\t\ttable.push({time: curr, pos: i / (ilen - 1)});\r\n\t\t}\r\n\t}\r\n\r\n\treturn table;\r\n}\r\n\r\n// @see adapted from http://www.anujgakhar.com/2014/03/01/binary-search-in-javascript/\r\nfunction lookup(table, key, value) {\r\n\tvar lo = 0;\r\n\tvar hi = table.length - 1;\r\n\tvar mid, i0, i1;\r\n\r\n\twhile (lo >= 0 && lo <= hi) {\r\n\t\tmid = (lo + hi) >> 1;\r\n\t\ti0 = table[mid - 1] || null;\r\n\t\ti1 = table[mid];\r\n\r\n\t\tif (!i0) {\r\n\t\t\t// given value is outside table (before first item)\r\n\t\t\treturn {lo: null, hi: i1};\r\n\t\t} else if (i1[key] < value) {\r\n\t\t\tlo = mid + 1;\r\n\t\t} else if (i0[key] > value) {\r\n\t\t\thi = mid - 1;\r\n\t\t} else {\r\n\t\t\treturn {lo: i0, hi: i1};\r\n\t\t}\r\n\t}\r\n\r\n\t// given value is outside table (after last item)\r\n\treturn {lo: i1, hi: null};\r\n}\r\n\r\n/**\r\n * Linearly interpolates the given source `value` using the table items `skey` values and\r\n * returns the associated `tkey` value. For example, interpolate(table, 'time', 42, 'pos')\r\n * returns the position for a timestamp equal to 42. If value is out of bounds, values at\r\n * index [0, 1] or [n - 1, n] are used for the interpolation.\r\n */\r\nfunction interpolate(table, skey, sval, tkey) {\r\n\tvar range = lookup(table, skey, sval);\r\n\r\n\t// Note: the lookup table ALWAYS contains at least 2 items (min and max)\r\n\tvar prev = !range.lo ? table[0] : !range.hi ? table[table.length - 2] : range.lo;\r\n\tvar next = !range.lo ? table[1] : !range.hi ? table[table.length - 1] : range.hi;\r\n\r\n\tvar span = next[skey] - prev[skey];\r\n\tvar ratio = span ? (sval - prev[skey]) / span : 0;\r\n\tvar offset = (next[tkey] - prev[tkey]) * ratio;\r\n\r\n\treturn prev[tkey] + offset;\r\n}\r\n\r\n/**\r\n * Convert the given value to a moment object using the given time options.\r\n * @see http://momentjs.com/docs/#/parsing/\r\n */\r\nfunction momentify(value, options) {\r\n\tvar parser = options.parser;\r\n\tvar format = options.parser || options.format;\r\n\r\n\tif (typeof parser === 'function') {\r\n\t\treturn parser(value);\r\n\t}\r\n\r\n\tif (typeof value === 'string' && typeof format === 'string') {\r\n\t\treturn moment(value, format);\r\n\t}\r\n\r\n\tif (!(value instanceof moment)) {\r\n\t\tvalue = moment(value);\r\n\t}\r\n\r\n\tif (value.isValid()) {\r\n\t\treturn value;\r\n\t}\r\n\r\n\t// Labels are in an incompatible moment format and no `parser` has been provided.\r\n\t// The user might still use the deprecated `format` option to convert his inputs.\r\n\tif (typeof format === 'function') {\r\n\t\treturn format(value);\r\n\t}\r\n\r\n\treturn value;\r\n}\r\n\r\nfunction parse(input, scale) {\r\n\tif (helpers.isNullOrUndef(input)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tvar options = scale.options.time;\r\n\tvar value = momentify(scale.getRightValue(input), options);\r\n\tif (!value.isValid()) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tif (options.round) {\r\n\t\tvalue.startOf(options.round);\r\n\t}\r\n\r\n\treturn value.valueOf();\r\n}\r\n\r\n/**\r\n * Returns the number of unit to skip to be able to display up to `capacity` number of ticks\r\n * in `unit` for the given `min` / `max` range and respecting the interval steps constraints.\r\n */\r\nfunction determineStepSize(min, max, unit, capacity) {\r\n\tvar range = max - min;\r\n\tvar interval = INTERVALS[unit];\r\n\tvar milliseconds = interval.size;\r\n\tvar steps = interval.steps;\r\n\tvar i, ilen, factor;\r\n\r\n\tif (!steps) {\r\n\t\treturn Math.ceil(range / (capacity * milliseconds));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = steps.length; i < ilen; ++i) {\r\n\t\tfactor = steps[i];\r\n\t\tif (Math.ceil(range / (milliseconds * factor)) <= capacity) {\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn factor;\r\n}\r\n\r\n/**\r\n * Figures out what unit results in an appropriate number of auto-generated ticks\r\n */\r\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\r\n\tvar ilen = UNITS.length;\r\n\tvar i, interval, factor;\r\n\r\n\tfor (i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\r\n\t\tinterval = INTERVALS[UNITS[i]];\r\n\t\tfactor = interval.steps ? interval.steps[interval.steps.length - 1] : MAX_INTEGER;\r\n\r\n\t\tif (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\r\n\t\t\treturn UNITS[i];\r\n\t\t}\r\n\t}\r\n\r\n\treturn UNITS[ilen - 1];\r\n}\r\n\r\n/**\r\n * Figures out what unit to format a set of ticks with\r\n */\r\nfunction determineUnitForFormatting(ticks, minUnit, min, max) {\r\n\tvar duration = moment.duration(moment(max).diff(moment(min)));\r\n\tvar ilen = UNITS.length;\r\n\tvar i, unit;\r\n\r\n\tfor (i = ilen - 1; i >= UNITS.indexOf(minUnit); i--) {\r\n\t\tunit = UNITS[i];\r\n\t\tif (INTERVALS[unit].common && duration.as(unit) >= ticks.length) {\r\n\t\t\treturn unit;\r\n\t\t}\r\n\t}\r\n\r\n\treturn UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\r\n}\r\n\r\nfunction determineMajorUnit(unit) {\r\n\tfor (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\r\n\t\tif (INTERVALS[UNITS[i]].common) {\r\n\t\t\treturn UNITS[i];\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Generates a maximum of `capacity` timestamps between min and max, rounded to the\r\n * `minor` unit, aligned on the `major` unit and using the given scale time `options`.\r\n * Important: this method can return ticks outside the min and max range, it's the\r\n * responsibility of the calling code to clamp values if needed.\r\n */\r\nfunction generate(min, max, capacity, options) {\r\n\tvar timeOpts = options.time;\r\n\tvar minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, capacity);\r\n\tvar major = determineMajorUnit(minor);\r\n\tvar stepSize = helpers.valueOrDefault(timeOpts.stepSize, timeOpts.unitStepSize);\r\n\tvar weekday = minor === 'week' ? timeOpts.isoWeekday : false;\r\n\tvar majorTicksEnabled = options.ticks.major.enabled;\r\n\tvar interval = INTERVALS[minor];\r\n\tvar first = moment(min);\r\n\tvar last = moment(max);\r\n\tvar ticks = [];\r\n\tvar time;\r\n\r\n\tif (!stepSize) {\r\n\t\tstepSize = determineStepSize(min, max, minor, capacity);\r\n\t}\r\n\r\n\t// For 'week' unit, handle the first day of week option\r\n\tif (weekday) {\r\n\t\tfirst = first.isoWeekday(weekday);\r\n\t\tlast = last.isoWeekday(weekday);\r\n\t}\r\n\r\n\t// Align first/last ticks on unit\r\n\tfirst = first.startOf(weekday ? 'day' : minor);\r\n\tlast = last.startOf(weekday ? 'day' : minor);\r\n\r\n\t// Make sure that the last tick include max\r\n\tif (last < max) {\r\n\t\tlast.add(1, minor);\r\n\t}\r\n\r\n\ttime = moment(first);\r\n\r\n\tif (majorTicksEnabled && major && !weekday && !timeOpts.round) {\r\n\t\t// Align the first tick on the previous `minor` unit aligned on the `major` unit:\r\n\t\t// we first aligned time on the previous `major` unit then add the number of full\r\n\t\t// stepSize there is between first and the previous major time.\r\n\t\ttime.startOf(major);\r\n\t\ttime.add(~~((first - time) / (interval.size * stepSize)) * stepSize, minor);\r\n\t}\r\n\r\n\tfor (; time < last; time.add(stepSize, minor)) {\r\n\t\tticks.push(+time);\r\n\t}\r\n\r\n\tticks.push(+time);\r\n\r\n\treturn ticks;\r\n}\r\n\r\n/**\r\n * Returns the right and left offsets from edges in the form of {left, right}.\r\n * Offsets are added when the `offset` option is true.\r\n */\r\nfunction computeOffsets(table, ticks, min, max, options) {\r\n\tvar left = 0;\r\n\tvar right = 0;\r\n\tvar upper, lower;\r\n\r\n\tif (options.offset && ticks.length) {\r\n\t\tif (!options.time.min) {\r\n\t\t\tupper = ticks.length > 1 ? ticks[1] : max;\r\n\t\t\tlower = ticks[0];\r\n\t\t\tleft = (\r\n\t\t\t\tinterpolate(table, 'time', upper, 'pos') -\r\n\t\t\t\tinterpolate(table, 'time', lower, 'pos')\r\n\t\t\t) / 2;\r\n\t\t}\r\n\t\tif (!options.time.max) {\r\n\t\t\tupper = ticks[ticks.length - 1];\r\n\t\t\tlower = ticks.length > 1 ? ticks[ticks.length - 2] : min;\r\n\t\t\tright = (\r\n\t\t\t\tinterpolate(table, 'time', upper, 'pos') -\r\n\t\t\t\tinterpolate(table, 'time', lower, 'pos')\r\n\t\t\t) / 2;\r\n\t\t}\r\n\t}\r\n\r\n\treturn {left: left, right: right};\r\n}\r\n\r\nfunction ticksFromTimestamps(values, majorUnit) {\r\n\tvar ticks = [];\r\n\tvar i, ilen, value, major;\r\n\r\n\tfor (i = 0, ilen = values.length; i < ilen; ++i) {\r\n\t\tvalue = values[i];\r\n\t\tmajor = majorUnit ? value === +moment(value).startOf(majorUnit) : false;\r\n\r\n\t\tticks.push({\r\n\t\t\tvalue: value,\r\n\t\t\tmajor: major\r\n\t\t});\r\n\t}\r\n\r\n\treturn ticks;\r\n}\r\n\r\nfunction determineLabelFormat(data, timeOpts) {\r\n\tvar i, momentDate, hasTime;\r\n\tvar ilen = data.length;\r\n\r\n\t// find the label with the most parts (milliseconds, minutes, etc.)\r\n\t// format all labels with the same level of detail as the most specific label\r\n\tfor (i = 0; i < ilen; i++) {\r\n\t\tmomentDate = momentify(data[i], timeOpts);\r\n\t\tif (momentDate.millisecond() !== 0) {\r\n\t\t\treturn 'MMM D, YYYY h:mm:ss.SSS a';\r\n\t\t}\r\n\t\tif (momentDate.second() !== 0 || momentDate.minute() !== 0 || momentDate.hour() !== 0) {\r\n\t\t\thasTime = true;\r\n\t\t}\r\n\t}\r\n\tif (hasTime) {\r\n\t\treturn 'MMM D, YYYY h:mm:ss a';\r\n\t}\r\n\treturn 'MMM D, YYYY';\r\n}\r\n\r\nmodule.exports = function() {\r\n\r\n\tvar defaultConfig = {\r\n\t\tposition: 'bottom',\r\n\r\n\t\t/**\r\n\t\t * Data distribution along the scale:\r\n\t\t * - 'linear': data are spread according to their time (distances can vary),\r\n\t\t * - 'series': data are spread at the same distance from each other.\r\n\t\t * @see https://github.com/chartjs/Chart.js/pull/4507\r\n\t\t * @since 2.7.0\r\n\t\t */\r\n\t\tdistribution: 'linear',\r\n\r\n\t\t/**\r\n\t\t * Scale boundary strategy (bypassed by min/max time options)\r\n\t\t * - `data`: make sure data are fully visible, ticks outside are removed\r\n\t\t * - `ticks`: make sure ticks are fully visible, data outside are truncated\r\n\t\t * @see https://github.com/chartjs/Chart.js/pull/4556\r\n\t\t * @since 2.7.0\r\n\t\t */\r\n\t\tbounds: 'data',\r\n\r\n\t\ttime: {\r\n\t\t\tparser: false, // false == a pattern string from http://momentjs.com/docs/#/parsing/string-format/ or a custom callback that converts its argument to a moment\r\n\t\t\tformat: false, // DEPRECATED false == date objects, moment object, callback or a pattern string from http://momentjs.com/docs/#/parsing/string-format/\r\n\t\t\tunit: false, // false == automatic or override with week, month, year, etc.\r\n\t\t\tround: false, // none, or override with week, month, year, etc.\r\n\t\t\tdisplayFormat: false, // DEPRECATED\r\n\t\t\tisoWeekday: false, // override week start day - see http://momentjs.com/docs/#/get-set/iso-weekday/\r\n\t\t\tminUnit: 'millisecond',\r\n\r\n\t\t\t// defaults to unit's corresponding unitFormat below or override using pattern string from http://momentjs.com/docs/#/displaying/format/\r\n\t\t\tdisplayFormats: {\r\n\t\t\t\tmillisecond: 'h:mm:ss.SSS a', // 11:20:01.123 AM,\r\n\t\t\t\tsecond: 'h:mm:ss a', // 11:20:01 AM\r\n\t\t\t\tminute: 'h:mm a', // 11:20 AM\r\n\t\t\t\thour: 'hA', // 5PM\r\n\t\t\t\tday: 'MMM D', // Sep 4\r\n\t\t\t\tweek: 'll', // Week 46, or maybe \"[W]WW - YYYY\" ?\r\n\t\t\t\tmonth: 'MMM YYYY', // Sept 2015\r\n\t\t\t\tquarter: '[Q]Q - YYYY', // Q3\r\n\t\t\t\tyear: 'YYYY' // 2015\r\n\t\t\t},\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tautoSkip: false,\r\n\r\n\t\t\t/**\r\n\t\t\t * Ticks generation input values:\r\n\t\t\t * - 'auto': generates \"optimal\" ticks based on scale size and time options.\r\n\t\t\t * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\r\n\t\t\t * - 'labels': generates ticks from user given `data.labels` values ONLY.\r\n\t\t\t * @see https://github.com/chartjs/Chart.js/pull/4507\r\n\t\t\t * @since 2.7.0\r\n\t\t\t */\r\n\t\t\tsource: 'auto',\r\n\r\n\t\t\tmajor: {\r\n\t\t\t\tenabled: false\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tvar TimeScale = Scale.extend({\r\n\t\tinitialize: function() {\r\n\t\t\tif (!moment) {\r\n\t\t\t\tthrow new Error('Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com');\r\n\t\t\t}\r\n\r\n\t\t\tthis.mergeTicksOptions();\r\n\r\n\t\t\tScale.prototype.initialize.call(this);\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = me.options;\r\n\r\n\t\t\t// DEPRECATIONS: output a message only one time per update\r\n\t\t\tif (options.time && options.time.format) {\r\n\t\t\t\tconsole.warn('options.time.format is deprecated and replaced by options.time.parser.');\r\n\t\t\t}\r\n\r\n\t\t\treturn Scale.prototype.update.apply(me, arguments);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Allows data to be referenced via 't' attribute\r\n\t\t */\r\n\t\tgetRightValue: function(rawValue) {\r\n\t\t\tif (rawValue && rawValue.t !== undefined) {\r\n\t\t\t\trawValue = rawValue.t;\r\n\t\t\t}\r\n\t\t\treturn Scale.prototype.getRightValue.call(this, rawValue);\r\n\t\t},\r\n\r\n\t\tdetermineDataLimits: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar timeOpts = me.options.time;\r\n\t\t\tvar unit = timeOpts.unit || 'day';\r\n\t\t\tvar min = MAX_INTEGER;\r\n\t\t\tvar max = MIN_INTEGER;\r\n\t\t\tvar timestamps = [];\r\n\t\t\tvar datasets = [];\r\n\t\t\tvar labels = [];\r\n\t\t\tvar i, j, ilen, jlen, data, timestamp;\r\n\r\n\t\t\t// Convert labels to timestamps\r\n\t\t\tfor (i = 0, ilen = chart.data.labels.length; i < ilen; ++i) {\r\n\t\t\t\tlabels.push(parse(chart.data.labels[i], me));\r\n\t\t\t}\r\n\r\n\t\t\t// Convert data to timestamps\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tdata = chart.data.datasets[i].data;\r\n\r\n\t\t\t\t\t// Let's consider that all data have the same format.\r\n\t\t\t\t\tif (helpers.isObject(data[0])) {\r\n\t\t\t\t\t\tdatasets[i] = [];\r\n\r\n\t\t\t\t\t\tfor (j = 0, jlen = data.length; j < jlen; ++j) {\r\n\t\t\t\t\t\t\ttimestamp = parse(data[j], me);\r\n\t\t\t\t\t\t\ttimestamps.push(timestamp);\r\n\t\t\t\t\t\t\tdatasets[i][j] = timestamp;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttimestamps.push.apply(timestamps, labels);\r\n\t\t\t\t\t\tdatasets[i] = labels.slice(0);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdatasets[i] = [];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (labels.length) {\r\n\t\t\t\t// Sort labels **after** data have been converted\r\n\t\t\t\tlabels = arrayUnique(labels).sort(sorter);\r\n\t\t\t\tmin = Math.min(min, labels[0]);\r\n\t\t\t\tmax = Math.max(max, labels[labels.length - 1]);\r\n\t\t\t}\r\n\r\n\t\t\tif (timestamps.length) {\r\n\t\t\t\ttimestamps = arrayUnique(timestamps).sort(sorter);\r\n\t\t\t\tmin = Math.min(min, timestamps[0]);\r\n\t\t\t\tmax = Math.max(max, timestamps[timestamps.length - 1]);\r\n\t\t\t}\r\n\r\n\t\t\tmin = parse(timeOpts.min, me) || min;\r\n\t\t\tmax = parse(timeOpts.max, me) || max;\r\n\r\n\t\t\t// In case there is no valid min/max, set limits based on unit time option\r\n\t\t\tmin = min === MAX_INTEGER ? +moment().startOf(unit) : min;\r\n\t\t\tmax = max === MIN_INTEGER ? +moment().endOf(unit) + 1 : max;\r\n\r\n\t\t\t// Make sure that max is strictly higher than min (required by the lookup table)\r\n\t\t\tme.min = Math.min(min, max);\r\n\t\t\tme.max = Math.max(min + 1, max);\r\n\r\n\t\t\t// PRIVATE\r\n\t\t\tme._horizontal = me.isHorizontal();\r\n\t\t\tme._table = [];\r\n\t\t\tme._timestamps = {\r\n\t\t\t\tdata: timestamps,\r\n\t\t\t\tdatasets: datasets,\r\n\t\t\t\tlabels: labels\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\tbuildTicks: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar min = me.min;\r\n\t\t\tvar max = me.max;\r\n\t\t\tvar options = me.options;\r\n\t\t\tvar timeOpts = options.time;\r\n\t\t\tvar timestamps = [];\r\n\t\t\tvar ticks = [];\r\n\t\t\tvar i, ilen, timestamp;\r\n\r\n\t\t\tswitch (options.ticks.source) {\r\n\t\t\tcase 'data':\r\n\t\t\t\ttimestamps = me._timestamps.data;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'labels':\r\n\t\t\t\ttimestamps = me._timestamps.labels;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'auto':\r\n\t\t\tdefault:\r\n\t\t\t\ttimestamps = generate(min, max, me.getLabelCapacity(min), options);\r\n\t\t\t}\r\n\r\n\t\t\tif (options.bounds === 'ticks' && timestamps.length) {\r\n\t\t\t\tmin = timestamps[0];\r\n\t\t\t\tmax = timestamps[timestamps.length - 1];\r\n\t\t\t}\r\n\r\n\t\t\t// Enforce limits with user min/max options\r\n\t\t\tmin = parse(timeOpts.min, me) || min;\r\n\t\t\tmax = parse(timeOpts.max, me) || max;\r\n\r\n\t\t\t// Remove ticks outside the min/max range\r\n\t\t\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\r\n\t\t\t\ttimestamp = timestamps[i];\r\n\t\t\t\tif (timestamp >= min && timestamp <= max) {\r\n\t\t\t\t\tticks.push(timestamp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tme.min = min;\r\n\t\t\tme.max = max;\r\n\r\n\t\t\t// PRIVATE\r\n\t\t\tme._unit = timeOpts.unit || determineUnitForFormatting(ticks, timeOpts.minUnit, me.min, me.max);\r\n\t\t\tme._majorUnit = determineMajorUnit(me._unit);\r\n\t\t\tme._table = buildLookupTable(me._timestamps.data, min, max, options.distribution);\r\n\t\t\tme._offsets = computeOffsets(me._table, ticks, min, max, options);\r\n\t\t\tme._labelFormat = determineLabelFormat(me._timestamps.data, timeOpts);\r\n\r\n\t\t\treturn ticksFromTimestamps(ticks, me._majorUnit);\r\n\t\t},\r\n\r\n\t\tgetLabelForIndex: function(index, datasetIndex) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar data = me.chart.data;\r\n\t\t\tvar timeOpts = me.options.time;\r\n\t\t\tvar label = data.labels && index < data.labels.length ? data.labels[index] : '';\r\n\t\t\tvar value = data.datasets[datasetIndex].data[index];\r\n\r\n\t\t\tif (helpers.isObject(value)) {\r\n\t\t\t\tlabel = me.getRightValue(value);\r\n\t\t\t}\r\n\t\t\tif (timeOpts.tooltipFormat) {\r\n\t\t\t\treturn momentify(label, timeOpts).format(timeOpts.tooltipFormat);\r\n\t\t\t}\r\n\t\t\tif (typeof label === 'string') {\r\n\t\t\t\treturn label;\r\n\t\t\t}\r\n\r\n\t\t\treturn momentify(label, timeOpts).format(me._labelFormat);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Function to format an individual tick mark\r\n\t\t * @private\r\n\t\t */\r\n\t\ttickFormatFunction: function(tick, index, ticks, formatOverride) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = me.options;\r\n\t\t\tvar time = tick.valueOf();\r\n\t\t\tvar formats = options.time.displayFormats;\r\n\t\t\tvar minorFormat = formats[me._unit];\r\n\t\t\tvar majorUnit = me._majorUnit;\r\n\t\t\tvar majorFormat = formats[majorUnit];\r\n\t\t\tvar majorTime = tick.clone().startOf(majorUnit).valueOf();\r\n\t\t\tvar majorTickOpts = options.ticks.major;\r\n\t\t\tvar major = majorTickOpts.enabled && majorUnit && majorFormat && time === majorTime;\r\n\t\t\tvar label = tick.format(formatOverride ? formatOverride : major ? majorFormat : minorFormat);\r\n\t\t\tvar tickOpts = major ? majorTickOpts : options.ticks.minor;\r\n\t\t\tvar formatter = helpers.valueOrDefault(tickOpts.callback, tickOpts.userCallback);\r\n\r\n\t\t\treturn formatter ? formatter(label, index, ticks) : label;\r\n\t\t},\r\n\r\n\t\tconvertTicksToLabels: function(ticks) {\r\n\t\t\tvar labels = [];\r\n\t\t\tvar i, ilen;\r\n\r\n\t\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\r\n\t\t\t\tlabels.push(this.tickFormatFunction(moment(ticks[i].value), i, ticks));\r\n\t\t\t}\r\n\r\n\t\t\treturn labels;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetPixelForOffset: function(time) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar size = me._horizontal ? me.width : me.height;\r\n\t\t\tvar start = me._horizontal ? me.left : me.top;\r\n\t\t\tvar pos = interpolate(me._table, 'time', time, 'pos');\r\n\r\n\t\t\treturn start + size * (me._offsets.left + pos) / (me._offsets.left + 1 + me._offsets.right);\r\n\t\t},\r\n\r\n\t\tgetPixelForValue: function(value, index, datasetIndex) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar time = null;\r\n\r\n\t\t\tif (index !== undefined && datasetIndex !== undefined) {\r\n\t\t\t\ttime = me._timestamps.datasets[datasetIndex][index];\r\n\t\t\t}\r\n\r\n\t\t\tif (time === null) {\r\n\t\t\t\ttime = parse(value, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (time !== null) {\r\n\t\t\t\treturn me.getPixelForOffset(time);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tgetPixelForTick: function(index) {\r\n\t\t\tvar ticks = this.getTicks();\r\n\t\t\treturn index >= 0 && index < ticks.length ?\r\n\t\t\t\tthis.getPixelForOffset(ticks[index].value) :\r\n\t\t\t\tnull;\r\n\t\t},\r\n\r\n\t\tgetValueForPixel: function(pixel) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar size = me._horizontal ? me.width : me.height;\r\n\t\t\tvar start = me._horizontal ? me.left : me.top;\r\n\t\t\tvar pos = (size ? (pixel - start) / size : 0) * (me._offsets.left + 1 + me._offsets.left) - me._offsets.right;\r\n\t\t\tvar time = interpolate(me._table, 'pos', pos, 'time');\r\n\r\n\t\t\treturn moment(time);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Crude approximation of what the label width might be\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetLabelWidth: function(label) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar ticksOpts = me.options.ticks;\r\n\t\t\tvar tickLabelWidth = me.ctx.measureText(label).width;\r\n\t\t\tvar angle = helpers.toRadians(ticksOpts.maxRotation);\r\n\t\t\tvar cosRotation = Math.cos(angle);\r\n\t\t\tvar sinRotation = Math.sin(angle);\r\n\t\t\tvar tickFontSize = helpers.valueOrDefault(ticksOpts.fontSize, defaults.global.defaultFontSize);\r\n\r\n\t\t\treturn (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetLabelCapacity: function(exampleTime) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tvar formatOverride = me.options.time.displayFormats.millisecond;\t// Pick the longest format for guestimation\r\n\r\n\t\t\tvar exampleLabel = me.tickFormatFunction(moment(exampleTime), 0, [], formatOverride);\r\n\t\t\tvar tickLabelWidth = me.getLabelWidth(exampleLabel);\r\n\t\t\tvar innerWidth = me.isHorizontal() ? me.width : me.height;\r\n\r\n\t\t\tvar capacity = Math.floor(innerWidth / tickLabelWidth);\r\n\t\t\treturn capacity > 0 ? capacity : 1;\r\n\t\t}\r\n\t});\r\n\r\n\tscaleService.registerScaleType('time', TimeScale, defaultConfig);\r\n};\r\n\r\n},{\"1\":1,\"26\":26,\"33\":33,\"34\":34,\"46\":46}]},{},[7])(7)\r\n});","Object.defineProperty(module.exports, \"__esModule\", {\r\n value: true\r\n});\r\n/**\r\n * Check if a value is null or undefined\r\n */\r\nfunction isNil(value) {\r\n return (typeof value === \"undefined\") || value === null;\r\n}\r\nmodule.exports.isNil = isNil;\r\n/**\r\n * Clamp a number to a range\r\n * @param value\r\n * @param min\r\n * @param max\r\n */\r\nfunction clamp(value, min, max) {\r\n return Math.min(Math.max(value, min), max);\r\n}\r\nmodule.exports.clamp = clamp;\r\n/**\r\n * Recursivly assign default values to an object if object is missing the keys.\r\n * @param object The destination object to assign default values to\r\n * @param defaults The default values for the object\r\n * @return The destination object\r\n */\r\nfunction defaultsDeep(object, defaults) {\r\n for (var key in defaults) {\r\n var value = object[key];\r\n if (typeof value === \"undefined\") {\r\n object[key] = defaults[key];\r\n } else if (value !== null && typeof value === \"object\") {\r\n object[key] = defaultsDeep(value, defaults[key]);\r\n }\r\n }\r\n return object;\r\n}\r\nmodule.exports.defaultsDeep = defaultsDeep;\r\n/**\r\n * Finds the first element in an array for that the comaperator functions returns true\r\n *\r\n * @export\r\n * @template T Element type of the array\r\n * @param {Array<T>} array An array\r\n * @param {(element: T) => boolean} compareFunction Comperator function returning true for the element seeked\r\n * @returns {T} The found element or undefined\r\n */\r\nfunction findInArray(array, compareFunction) {\r\n if (isNil(array))\r\n return undefined;\r\n for (var i = 0; i < array.length; i++) {\r\n if (compareFunction(array[i]) === true) {\r\n return array[i];\r\n }\r\n }\r\n return undefined;\r\n}\r\nmodule.exports.findInArray = findInArray;\r\n/**\r\n * Finds the first index in an array for that the comaperator function for an element returns true\r\n *\r\n * @export\r\n * @template T\r\n * @param {Array<T>} array An array of elements\r\n * @param {(element: T) => boolean} compareFunction Comperator function returning true for the element seeked\r\n * @returns {number} Index of the matched element or -1 if no element was found\r\n */\r\nfunction findIndexInArray(array, compareFunction) {\r\n if (isNil(array))\r\n return undefined;\r\n for (var i = 0; i < array.length; i++) {\r\n if (compareFunction(array[i]) === true) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n}\r\nmodule.exports.findIndexInArray = findIndexInArray;","Object.defineProperty(module.exports, \"__esModule\", {\r\n value: true\r\n});\r\nvar utils = require(\"./utils\");\r\n/**\r\n * A mipmap data structure for line chart data. Uses averages to downsample data.\r\n */\r\nvar DataMipmap = /** @class */ (function () {\r\n /**\r\n * Create a data mipmap\r\n * @param data The orignal line chart data\r\n * @param minNumPoints Minimal number of points on lowest mipmap level(limits number of levels)\r\n */\r\n function DataMipmap(data, minNumPoints) {\r\n if (minNumPoints === void 0) {\r\n minNumPoints = 2;\r\n }\r\n this.minNumPoints = minNumPoints;\r\n this.setData(data);\r\n }\r\n /**\r\n * Set the line chart data and update mipmap level.\r\n * @param data The orignal line chart data\r\n */\r\n DataMipmap.prototype.setData = function (data) {\r\n this.originalData = data || [];\r\n this.mipMaps = [];\r\n this.resolution = this.computeResolution(this.originalData);\r\n this.createMipMap();\r\n };\r\n /**\r\n * Set the minimal number of points\r\n * @param minNumPoints Minimal number of points on lowest mipmap level(limits number of levels)\r\n */\r\n DataMipmap.prototype.setMinNumPoints = function (minNumPoints) {\r\n this.minNumPoints = minNumPoints;\r\n this.mipMaps = [];\r\n this.createMipMap();\r\n };\r\n /**\r\n * Get the best fitting mipmap level for a certain scale resolution\r\n * @param resolution Desired resolution in ms per pixel\r\n */\r\n DataMipmap.prototype.getMipMapForResolution = function (resolution) {\r\n return this.getMipMapLevel(this.getMipMapIndexForResolution(resolution));\r\n };\r\n /**\r\n * Computes the index of the best fitting mipmap level for a certain scale resolution\r\n * @param resolution Desired resolution in ms per pixel\r\n */\r\n DataMipmap.prototype.getMipMapIndexForResolution = function (resolution) {\r\n if (utils.isNil(resolution)) {\r\n return 0;\r\n }\r\n var factor = resolution / this.resolution;\r\n var level = utils.clamp(Math.floor(Math.log(factor) / Math.log(2.0)), 0, this.mipMaps.length - 1);\r\n return level;\r\n };\r\n /**\r\n * Get a mipmap level by index\r\n * @param level The index of the mipmap level\r\n */\r\n DataMipmap.prototype.getMipMapLevel = function (level) {\r\n return this.mipMaps[level];\r\n };\r\n /**\r\n * Get all mipmap level\r\n */\r\n DataMipmap.prototype.getMipMaps = function () {\r\n return this.mipMaps;\r\n };\r\n /**\r\n * Get the number of available mipmap level\r\n */\r\n DataMipmap.prototype.getNumLevel = function () {\r\n return this.mipMaps.length;\r\n };\r\n DataMipmap.prototype.computeResolution = function (data) {\r\n var minTimeDistance = Infinity;\r\n for (var i = 0, end = this.originalData.length - 1; i < end; ++i) {\r\n var current = this.originalData[i];\r\n var next = this.originalData[i + 1];\r\n minTimeDistance = Math.min(Math.abs(this.getTime(current) - this.getTime(next)), minTimeDistance);\r\n }\r\n return minTimeDistance;\r\n };\r\n DataMipmap.prototype.createMipMap = function () {\r\n var targetResolution = this.resolution;\r\n var targetLength = this.originalData.length;\r\n this.mipMaps.push(this.originalData);\r\n var lastMipMap = this.originalData;\r\n while (lastMipMap.length > this.minNumPoints) {\r\n targetResolution = targetResolution * 2;\r\n targetLength = Math.floor(targetLength * 0.5);\r\n lastMipMap = this.downsampleToResolution(lastMipMap, targetResolution, targetLength);\r\n this.mipMaps.push(lastMipMap);\r\n }\r\n };\r\n DataMipmap.prototype.downsampleToResolution = function (data, targetResolution, targetLength) {\r\n var output = [];\r\n var aggregationValues = [];\r\n var firstPoint = data[0];\r\n aggregationValues.push(firstPoint);\r\n for (var i = 1, end = data.length; i < end; ++i) {\r\n var currentPoint = data[i];\r\n var timeDistance = Math.abs(this.getTime(firstPoint) - this.getTime(currentPoint));\r\n if (timeDistance < targetResolution) {\r\n aggregationValues.push(currentPoint);\r\n } else {\r\n // create new sensor value in output\r\n var newPoint = this.getAverage(aggregationValues);\r\n output.push(newPoint);\r\n // reset aggregation data structure\r\n firstPoint = currentPoint;\r\n aggregationValues = [currentPoint];\r\n }\r\n }\r\n // insert last point\r\n output.push(this.getAverage(aggregationValues));\r\n return output;\r\n };\r\n DataMipmap.prototype.getAverage = function (aggregationValues) {\r\n var value = aggregationValues\r\n .map(function (point) {\r\n return point.y;\r\n })\r\n .reduce(function (previous, current) {\r\n return previous + current;\r\n }) /\r\n aggregationValues.length;\r\n return {\r\n x: aggregationValues[0].x || aggregationValues[0].t,\r\n y: value\r\n };\r\n };\r\n DataMipmap.prototype.getTime = function (point) {\r\n var x = point.x || point.t;\r\n if (typeof x === \"number\") {\r\n return x;\r\n } else if (typeof x === \"string\") {\r\n return new Date(x).getTime();\r\n } else {\r\n return x.getTime();\r\n }\r\n };\r\n return DataMipmap;\r\n}());\r\nmodule.exports.DataMipmap = DataMipmap;","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({\r\n __proto__: []\r\n }\r\n instanceof Array && function (d, b) {\r\n d.__proto__ = b;\r\n }) ||\r\n function (d, b) {\r\n for (var p in b)\r\n if (b.hasOwnProperty(p)) d[p] = b[p];\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n\r\n function __() {\r\n this.constructor = d;\r\n }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(module.exports, \"__esModule\", {\r\n value: true\r\n});\r\nvar utils = require(\"./utils\");\r\nvar data_mipmap_1 = require(\"./data_mipmap\");\r\n/**\r\n * A mipmap data structure that uses Largest-Triangle-Three-Buckets algorithm to downsample data\r\n */\r\nvar LTTBDataMipmap = /** @class */ (function (_super) {\r\n __extends(LTTBDataMipmap, _super);\r\n\r\n function LTTBDataMipmap() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n LTTBDataMipmap.prototype.getMipMapIndexForResolution = function (resolution) {\r\n if (utils.isNil(resolution)) {\r\n return 0;\r\n }\r\n var index = utils.findIndexInArray(this.resolutions, function (levelResolution) {\r\n return levelResolution >= resolution;\r\n });\r\n if (index === -1) {\r\n // use smallest mipmap as fallback\r\n index = this.resolutions.length - 1;\r\n }\r\n return index;\r\n };\r\n LTTBDataMipmap.prototype.createMipMap = function () {\r\n var _this = this;\r\n _super.prototype.createMipMap.call(this);\r\n this.resolutions = this.mipMaps.map(function (level) {\r\n return _this.computeAverageResolution(level);\r\n });\r\n };\r\n LTTBDataMipmap.prototype.splitDataIntoContinuousSeries = function (data) {\r\n var segments = [];\r\n var currentSegment = [];\r\n \r\n function newSegment(segmentIsValid) {\r\n segments.push(currentSegment);\r\n currentSegment = [];\r\n currentSegment.valid = segmentIsValid;\r\n }\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n var point = data[i];\r\n\r\n if (!isNaN(point.y)) {\r\n if (!currentSegment.valid) {\r\n newSegment(true);\r\n }\r\n\r\n currentSegment.push(point);\r\n } else {\r\n if (currentSegment.valid) {\r\n newSegment(false);\r\n }\r\n \r\n currentSegment.push(point);\r\n }\r\n }\r\n\r\n if (currentSegment.length > 0) {\r\n segments.push(currentSegment);\r\n }\r\n\r\n return segments;\r\n };\r\n LTTBDataMipmap.prototype.downsampleToResolution = function (data, targetResolution, targetLength) {\r\n var segments = this.splitDataIntoContinuousSeries(data);\r\n\r\n var validDataLength = segments.filter(s => s.valid).reduce((length, array) => length + array.length, 0);\r\n if (targetLength >= validDataLength || targetLength === 0) {\r\n return data; // data has target size\r\n }\r\n\r\n var outData = [];\r\n\r\n for (var i = 0; i < segments.length; i++) {\r\n var segment = segments[i];\r\n\r\n if (!segment.valid) {\r\n if (segment.length >= 1) {\r\n outData.push(segment[0]);\r\n }\r\n if (segment.length >= 2) {\r\n outData.push(segment[segment.length - 1]);\r\n }\r\n } else {\r\n let targetLengthOfSegment = Math.floor((segment.length / validDataLength) * targetLength);\r\n outData = outData.concat(this.performLTTBAlgorithmOnSegment(segment, targetResolution, targetLengthOfSegment));\r\n }\r\n }\r\n\r\n return outData;\r\n };\r\n /**\r\n * This method is adapted from: https://github.com/sveinn-steinarsson/flot-downsample\r\n *\r\n * The MIT License\r\n * Copyright (c) 2013 by Sveinn Steinarsson\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n LTTBDataMipmap.prototype.performLTTBAlgorithmOnSegment = function (data, targetResolution, targetLength) {\r\n var output = [];\r\n var dataLength = data.length;\r\n\r\n if (dataLength <= 2) {\r\n return data;\r\n }\r\n \r\n // bucket size, leave room for start and end data points\r\n var bucksetSize = (dataLength - 2) / (targetLength - 2);\r\n var a = 0; // initially a is the first point in the triangle\r\n var maxAreaPoint;\r\n var maxArea;\r\n var area;\r\n var nextA;\r\n // always add the first point\r\n output.push(data[a]);\r\n for (var i = 0; i < targetLength - 2; ++i) {\r\n // Calculate point average for next bucket (containing c)\r\n var avgX = 0;\r\n var avgY = 0;\r\n var avgRangeStart = Math.floor((i + 1) * bucksetSize) + 1;\r\n var avgRangeEnd = Math.floor((i + 2) * bucksetSize) + 1;\r\n avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;\r\n var avgRangeLength = avgRangeEnd - avgRangeStart;\r\n for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {\r\n avgX += this.getTime(data[avgRangeStart]);\r\n avgY += data[avgRangeStart].y * 1;\r\n }\r\n avgX /= avgRangeLength;\r\n avgY /= avgRangeLength;\r\n // Get the range for this bucket\r\n var rangeOffs = Math.floor((i + 0) * bucksetSize) + 1;\r\n var rangeTo = Math.floor((i + 1) * bucksetSize) + 1;\r\n // Point a\r\n var pointA = data[a];\r\n var pointAX = this.getTime(pointA);\r\n var pointAY = pointA.y * 1;\r\n maxArea = area = -1;\r\n for (; rangeOffs < rangeTo; rangeOffs++) {\r\n // Calculate triangle area over three buckets\r\n area = Math.abs((pointAX - avgX) * (data[rangeOffs].y - pointAY) -\r\n (pointAX - this.getTime(data[rangeOffs])) * (avgY - pointAY)) * 0.5;\r\n if (area > maxArea) {\r\n maxArea = area;\r\n maxAreaPoint = data[rangeOffs];\r\n nextA = rangeOffs; // Next a is this b\r\n }\r\n }\r\n output.push(maxAreaPoint); // Pick this point from the bucket\r\n a = nextA; // This a is the next a (chosen b)\r\n }\r\n output.push(data[dataLength - 1]); // Always add last\r\n return output;\r\n };\r\n LTTBDataMipmap.prototype.computeAverageResolution = function (data) {\r\n var timeDistances = 0;\r\n for (var i = 0, end = this.originalData.length - 1; i < end; ++i) {\r\n var current = this.originalData[i];\r\n var next = this.originalData[i + 1];\r\n timeDistances += Math.abs(this.getTime(current) - this.getTime(next));\r\n }\r\n return timeDistances / (data.length - 1);\r\n };\r\n return LTTBDataMipmap;\r\n}(data_mipmap_1.DataMipmap));\r\nmodule.exports.LTTBDataMipmap = LTTBDataMipmap;","Object.defineProperty(module.exports, \"__esModule\", {\r\n value: true\r\n});\r\nvar moment_module = require(\"moment\");\r\nvar moment = (window && window.moment) ? window.moment : moment_module;\r\nvar utils = require(\"./utils\");\r\n\r\nfunction getCompareValue(value) {\r\n if (typeof value === 'number') {\r\n return value;\r\n } else if (typeof value === 'string') {\r\n return (new Date(value)).getTime();\r\n } else if (value instanceof Date) {\r\n return value.getTime();\r\n } else {\r\n return moment(value).toDate().getTime();\r\n }\r\n}\r\n\r\nfunction rangeIsEqual(previousValue, currentValue) {\r\n if (utils.isNil(previousValue) ||\r\n utils.isNil(currentValue) ||\r\n utils.isNil(previousValue[0]) ||\r\n utils.isNil(previousValue[1]) ||\r\n utils.isNil(currentValue[0]) ||\r\n utils.isNil(currentValue[1])) {\r\n return false;\r\n }\r\n previousValue = [getCompareValue(previousValue[0]), getCompareValue(previousValue[1])];\r\n currentValue = [getCompareValue(currentValue[0]), getCompareValue(currentValue[1])];\r\n return previousValue[0] === currentValue[0] && previousValue[1] == currentValue[1];\r\n}\r\nmodule.exports.rangeIsEqual = rangeIsEqual;\r\n\r\nfunction getScaleRange(scale) {\r\n if (utils.isNil(scale))\r\n return [null, null];\r\n var start = scale.getValueForPixel(scale.left);\r\n var end = scale.getValueForPixel(scale.right);\r\n return [start, end];\r\n}\r\nmodule.exports.getScaleRange = getScaleRange;\r\n\r\nfunction cullData(data, range) {\r\n var startValue = getCompareValue(range[0]);\r\n var endValue = getCompareValue(range[1]);\r\n var startIndex = 0;\r\n var endIndex = data.length;\r\n for (var i = 1; i < data.length; ++i) {\r\n var point = data[i];\r\n var compareValue = getCompareValue(point.x || point.t);\r\n if (compareValue <= startValue) {\r\n startIndex = i;\r\n }\r\n if (compareValue >= endValue) {\r\n endIndex = i + 1;\r\n break;\r\n }\r\n }\r\n return data.slice(startIndex, endIndex);\r\n}\r\nmodule.exports.cullData = cullData;","Object.defineProperty(module.exports, \"__esModule\", {\r\n value: true\r\n});\r\nvar moment_module = require(\"moment\");\r\nvar moment = (window && window.moment) ? window.moment : moment_module;\r\nvar utils = require(\"./utils\");\r\nvar data_mipmap_1 = require(\"./data_mipmap\");\r\nvar lttb_data_mipmap_1 = require(\"./lttb_data_mipmap\");\r\nvar data_culling = require(\"./data_culling\");\r\n/**\r\n * Chart js Plugin for downsampling data\r\n */\r\nvar ResponsiveDownsamplePlugin = /** @class */ (function () {\r\n function ResponsiveDownsamplePlugin() {}\r\n ResponsiveDownsamplePlugin.getPluginOptions = function (chart) {\r\n var options = chart.options.responsiveDownsample || {};\r\n utils.defaultsDeep(options, {\r\n enabled: false,\r\n aggregationAlgorithm: 'LTTB',\r\n desiredDataPointDistance: 1,\r\n minNumPoints: 100,\r\n cullData: true\r\n });\r\n if (options.enabled) {\r\n chart.options.responsiveDownsample = options;\r\n }\r\n return options;\r\n };\r\n ResponsiveDownsamplePlugin.hasDataChanged = function (chart) {\r\n return !utils.isNil(utils.findInArray(chart.data.datasets, function (dataset) {\r\n return utils.isNil(dataset.mipMap);\r\n }));\r\n };\r\n ResponsiveDownsamplePlugin.createDataMipMap = function (chart, options) {\r\n chart.data.datasets.forEach(function (dataset, i) {\r\n var data = !utils.isNil(dataset.originalData) ?\r\n dataset.originalData :\r\n dataset.data;\r\n var mipMap = (options.aggregationAlgorithm === 'LTTB') ?\r\n new lttb_data_mipmap_1.LTTBDataMipmap(data, options.minNumPoints) :\r\n new data_mipmap_1.DataMipmap(data, options.minNumPoints);\r\n dataset.originalData = data;\r\n dataset.mipMap = mipMap;\r\n dataset.data = mipMap.getMipMapLevel(mipMap.getNumLevel() - 1); // set last level for first render pass\r\n });\r\n };\r\n ResponsiveDownsamplePlugin.restoreOriginalData = function (chart) {\r\n var updated = false;\r\n chart.data.datasets.forEach(function (dataset) {\r\n if (!utils.isNil(dataset.originalData) &&\r\n dataset.data !== dataset.originalData) {\r\n dataset.data = dataset.originalData;\r\n updated = true;\r\n }\r\n });\r\n return updated;\r\n };\r\n ResponsiveDownsamplePlugin.getTargetResolution = function (chart, options) {\r\n var xScale = chart.scales[\"x-axis-0\"];\r\n if (utils.isNil(xScale))\r\n return null;\r\n var start = moment(xScale.getValueForPixel(xScale.left));\r\n var end = moment(xScale.getValueForPixel(xScale.left + 1));\r\n var targetResolution = end.diff(start);\r\n return targetResolution * options.desiredDataPointDistance;\r\n };\r\n ResponsiveDownsamplePlugin.updateMipMap = function (chart, options, rangeChanged) {\r\n var updated = false;\r\n chart.data.datasets.forEach(function (dataset, i) {\r\n var mipMap = dataset.mipMap;\r\n if (utils.isNil(mipMap))\r\n return;\r\n var mipMalLevel = mipMap.getMipMapIndexForResolution(options.targetResolution);\r\n if (mipMalLevel === dataset.currentMipMapLevel && !rangeChanged) {\r\n // skip update if mip map level and data range did not change\r\n return;\r\n }\r\n updated = true;\r\n dataset.currentMipMapLevel = mipMalLevel;\r\n var newData = mipMap.getMipMapLevel(mipMalLevel);\r\n if (options.cullData) {\r\n newData = data_culling.cullData(newData, options.scaleRange);\r\n }\r\n dataset.data = newData;\r\n });\r\n return updated;\r\n };\r\n ResponsiveDownsamplePlugin.prototype.beforeInit = function (chart) {\r\n var options = ResponsiveDownsamplePlugin.getPluginOptions(chart);\r\n if (!options.enabled) {\r\n return;\r\n }\r\n ResponsiveDownsamplePlugin.createDataMipMap(chart, options);\r\n options.needsUpdate = true;\r\n };\r\n ResponsiveDownsamplePlugin.prototype.beforeDatasetsUpdate = function (chart) {\r\n var options = ResponsiveDownsamplePlugin.getPluginOptions(chart);\r\n if (!options.enabled) {\r\n // restore original data and remove state from options\r\n options.needsUpdate = ResponsiveDownsamplePlugin.restoreOriginalData(chart);\r\n delete options.targetResolution;\r\n delete options.scaleRange;\r\n return;\r\n }\r\n // only update mip map if data set was reloaded externally\r\n if (ResponsiveDownsamplePlugin.hasDataChanged(chart)) {\r\n ResponsiveDownsamplePlugin.createDataMipMap(chart, options);\r\n options.needsUpdate = true;\r\n }\r\n };\r\n ResponsiveDownsamplePlugin.prototype.beforeRender = function (chart) {\r\n var options = ResponsiveDownsamplePlugin.getPluginOptions(chart);\r\n if (!options.enabled) {\r\n // update chart if data was restored from original data\r\n if (options.needsUpdate) {\r\n options.needsUpdate = false;\r\n chart.update(0);\r\n return false;\r\n }\r\n return;\r\n }\r\n var targetResolution = ResponsiveDownsamplePlugin.getTargetResolution(chart, options);\r\n var xScale = chart.scales[\"x-axis-0\"];\r\n var scaleRange = data_culling.getScaleRange(xScale);\r\n var rangeChanged = !data_culling.rangeIsEqual(options.scaleRange, scaleRange);\r\n if (options.needsUpdate ||\r\n options.targetResolution !== targetResolution ||\r\n rangeChanged) {\r\n options.targetResolution = targetResolution;\r\n options.scaleRange = scaleRange;\r\n options.needsUpdate = false;\r\n if (ResponsiveDownsamplePlugin.updateMipMap(chart, options, rangeChanged)) {\r\n // update chart and cancel current render\r\n chart.update(0);\r\n return false;\r\n }\r\n }\r\n };\r\n return ResponsiveDownsamplePlugin;\r\n}());\r\nmodule.exports.ResponsiveDownsamplePlugin = ResponsiveDownsamplePlugin;","\"use strict\";\r\nObject.defineProperty(module.exports, \"__esModule\", {\r\n value: true\r\n});\r\nvar chartjs = require(\"chartjs\");\r\nvar Chart = window && window.Chart ? window.Chart : chartjs.Chart;\r\nvar responsive_downsample_plugin = require(\"./responsive_downsample_plugin\");\r\nmodule.exports.ResponsiveDownsamplePlugin = responsive_downsample_plugin.ResponsiveDownsamplePlugin;\r\nChart.pluginService.register(new responsive_downsample_plugin.ResponsiveDownsamplePlugin());\r\n","module.exports = function (Chart) {\r\n var chartHelpers = Chart.helpers;\r\n var AnnotationElement = Chart.Element.extend({\r\n initialize: function () {\r\n this.hidden = false;\r\n this.hovering = false;\r\n this._model = chartHelpers.clone(this._model) || ({});\r\n this.setDataLimits();\r\n },\r\n destroy: function () {},\r\n setDataLimits: function () {},\r\n configure: function () {},\r\n inRange: function () {},\r\n getCenterPoint: function () {},\r\n getWidth: function () {},\r\n getHeight: function () {},\r\n getArea: function () {},\r\n draw: function () {}\r\n });\r\n return AnnotationElement;\r\n};\r\n","function noop() {}\r\nfunction elements(chartInstance) {\r\n var elements = chartInstance.annotation.elements;\r\n return Object.keys(elements).map(function (id) {\r\n return elements[id];\r\n });\r\n}\r\nfunction objectId() {\r\n return Math.random().toString(36).substr(2, 6);\r\n}\r\nfunction isValid(rawValue) {\r\n if (rawValue === null || typeof rawValue === \"undefined\") {\r\n return false;\r\n } else if (typeof rawValue === \"number\") {\r\n return isFinite(rawValue);\r\n } else {\r\n return !!rawValue;\r\n }\r\n}\r\nfunction decorate(obj, prop, func) {\r\n var prefix = \"$\";\r\n if (!obj[prefix + prop]) {\r\n if (obj[prop]) {\r\n obj[prefix + prop] = obj[prop].bind(obj);\r\n obj[prop] = function () {\r\n var args = [obj[prefix + prop]].concat(Array.prototype.slice.call(arguments));\r\n return func.apply(obj, args);\r\n };\r\n } else {\r\n obj[prop] = function () {\r\n var args = [undefined].concat(Array.prototype.slice.call(arguments));\r\n return func.apply(obj, args);\r\n };\r\n }\r\n }\r\n}\r\nfunction callEach(fns, method) {\r\n fns.forEach(function (fn) {\r\n (method ? fn[method] : fn)();\r\n });\r\n}\r\nfunction getEventHandlerName(eventName) {\r\n return \"on\" + eventName[0].toUpperCase() + eventName.substring(1);\r\n}\r\nfunction createMouseEvent(type, previousEvent) {\r\n try {\r\n return new MouseEvent(type, previousEvent);\r\n } catch (exception) {\r\n try {\r\n var m = document.createEvent(\"MouseEvent\");\r\n m.initMouseEvent(type, previousEvent.canBubble, previousEvent.cancelable, previousEvent.view, previousEvent.detail, previousEvent.screenX, previousEvent.screenY, previousEvent.clientX, previousEvent.clientY, previousEvent.ctrlKey, previousEvent.altKey, previousEvent.shiftKey, previousEvent.metaKey, previousEvent.button, previousEvent.relatedTarget);\r\n return m;\r\n } catch (exception2) {\r\n var e = document.createEvent(\"Event\");\r\n e.initEvent(type, previousEvent.canBubble, previousEvent.cancelable);\r\n return e;\r\n }\r\n }\r\n}\r\nexport default function (Chart) {\r\n var chartHelpers = Chart.helpers;\r\n function initConfig(config) {\r\n config = chartHelpers.configMerge(Chart.Annotation.defaults, config);\r\n if (chartHelpers.isArray(config.annotations)) {\r\n config.annotations.forEach(function (annotation) {\r\n annotation.label = chartHelpers.configMerge(Chart.Annotation.labelDefaults, annotation.label);\r\n });\r\n }\r\n return config;\r\n }\r\n function getScaleLimits(scaleId, annotations, scaleMin, scaleMax) {\r\n var ranges = annotations.filter(function (annotation) {\r\n return !!annotation._model.ranges[scaleId];\r\n }).map(function (annotation) {\r\n return annotation._model.ranges[scaleId];\r\n });\r\n var min = ranges.map(function (range) {\r\n return Number(range.min);\r\n }).reduce(function (a, b) {\r\n return isFinite(b) && !isNaN(b) && b < a ? b : a;\r\n }, scaleMin);\r\n var max = ranges.map(function (range) {\r\n return Number(range.max);\r\n }).reduce(function (a, b) {\r\n return isFinite(b) && !isNaN(b) && b > a ? b : a;\r\n }, scaleMax);\r\n return {\r\n min: min,\r\n max: max\r\n };\r\n }\r\n function adjustScaleRange(scale) {\r\n var range = getScaleLimits(scale.id, elements(scale.chart), scale.min, scale.max);\r\n if (typeof scale.options.ticks.min === \"undefined\" && typeof scale.options.ticks.suggestedMin === \"undefined\") {\r\n scale.min = range.min;\r\n }\r\n if (typeof scale.options.ticks.max === \"undefined\" && typeof scale.options.ticks.suggestedMax === \"undefined\") {\r\n scale.max = range.max;\r\n }\r\n if (scale.handleTickRangeOptions) {\r\n scale.handleTickRangeOptions();\r\n }\r\n }\r\n function getNearestItems(annotations, position) {\r\n var minDistance = Number.POSITIVE_INFINITY;\r\n return annotations.filter(function (element) {\r\n return element.options.drawTime && !element.options.nonInteractive && element.inRange(position.x, position.y);\r\n }).reduce(function (nearestItems, element) {\r\n var center = element.getCenterPoint();\r\n var distance = chartHelpers.distanceBetweenPoints(position, center);\r\n if (distance < minDistance) {\r\n nearestItems = [element];\r\n minDistance = distance;\r\n } else if (distance === minDistance) {\r\n nearestItems.push(element);\r\n }\r\n return nearestItems;\r\n }, []).sort(function (a, b) {\r\n var sizeA = a.getArea(), sizeB = b.getArea();\r\n return sizeA > sizeB || sizeA < sizeB ? sizeA - sizeB : a._index - b._index;\r\n }).slice(0, 1)[0];\r\n }\r\n return {\r\n initConfig: initConfig,\r\n elements: elements,\r\n callEach: callEach,\r\n noop: noop,\r\n objectId: objectId,\r\n isValid: isValid,\r\n decorate: decorate,\r\n adjustScaleRange: adjustScaleRange,\r\n getNearestItems: getNearestItems,\r\n getEventHandlerName: getEventHandlerName,\r\n createMouseEvent: createMouseEvent\r\n };\r\n};\r\n","module.exports = function(Chart) {\r\n\tvar chartHelpers = Chart.helpers;\r\n\tvar helpers = require('../helpers')(Chart);\r\n\r\n\tvar horizontalKeyword = 'horizontal';\r\n\tvar verticalKeyword = 'vertical';\r\n\r\n\tvar LineAnnotation = Chart.Annotation.Element.extend({\r\n\t\tsetDataLimits: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\tvar options = this.options;\r\n\r\n\t\t\t// Set the data range for this annotation\r\n\t\t\tmodel.ranges = {};\r\n\t\t\tmodel.ranges[options.scaleID] = {\r\n\t\t\t\tmin: options.value,\r\n\t\t\t\tmax: options.endValue || options.value\r\n\t\t\t};\r\n\t\t},\r\n\t\tconfigure: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\tvar options = this.options;\r\n\t\t\tvar chartInstance = this.chartInstance;\r\n\t\t\tvar ctx = chartInstance.chart.ctx;\r\n\r\n\t\t\tvar scale = chartInstance.scales[options.scaleID];\r\n\t\t\tvar pixel, endPixel;\r\n\t\t\tif (scale) {\r\n\t\t\t\tpixel = helpers.isValid(options.value) ? scale.getPixelForValue(options.value) : NaN;\r\n\t\t\t\tendPixel = helpers.isValid(options.endValue) ? scale.getPixelForValue(options.endValue) : pixel;\r\n\t\t\t}\r\n\r\n\t\t\tif (isNaN(pixel)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar chartArea = chartInstance.chartArea;\r\n\r\n\t\t\t// clip annotations to the chart area\r\n\t\t\tmodel.clip = {\r\n\t\t\t\tx1: chartArea.left,\r\n\t\t\t\tx2: chartArea.right,\r\n\t\t\t\ty1: chartArea.top,\r\n\t\t\t\ty2: chartArea.bottom\r\n\t\t\t};\r\n\r\n\t\t\tif (this.options.mode == horizontalKeyword) {\r\n\t\t\t\tmodel.x1 = chartArea.left;\r\n\t\t\t\tmodel.x2 = chartArea.right;\r\n\t\t\t\tmodel.y1 = pixel;\r\n\t\t\t\tmodel.y2 = endPixel;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.y1 = chartArea.top;\r\n\t\t\t\tmodel.y2 = chartArea.bottom;\r\n\t\t\t\tmodel.x1 = pixel;\r\n\t\t\t\tmodel.x2 = endPixel;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.line = new LineFunction(model);\r\n\t\t\tmodel.mode = options.mode;\r\n\r\n\t\t\t// Figure out the label:\r\n\t\t\tmodel.labelBackgroundColor = options.label.backgroundColor;\r\n\t\t\tmodel.labelFontFamily = options.label.fontFamily;\r\n\t\t\tmodel.labelFontSize = options.label.fontSize;\r\n\t\t\tmodel.labelFontStyle = options.label.fontStyle;\r\n\t\t\tmodel.labelFontColor = options.label.fontColor;\r\n\t\t\tmodel.labelXPadding = options.label.xPadding;\r\n\t\t\tmodel.labelYPadding = options.label.yPadding;\r\n\t\t\tmodel.labelCornerRadius = options.label.cornerRadius;\r\n\t\t\tmodel.labelPosition = options.label.position;\r\n\t\t\tmodel.labelXAdjust = options.label.xAdjust;\r\n\t\t\tmodel.labelYAdjust = options.label.yAdjust;\r\n\t\t\tmodel.labelEnabled = options.label.enabled;\r\n\t\t\tmodel.labelContent = options.label.content;\r\n\r\n\t\t\tctx.font = chartHelpers.fontString(model.labelFontSize, model.labelFontStyle, model.labelFontFamily);\r\n\t\t\tvar textWidth = ctx.measureText(model.labelContent).width;\r\n\t\t\tvar textHeight = ctx.measureText('M').width;\r\n\t\t\tvar labelPosition = calculateLabelPosition(model, textWidth, textHeight, model.labelXPadding, model.labelYPadding);\r\n\t\t\tmodel.labelX = labelPosition.x - model.labelXPadding;\r\n\t\t\tmodel.labelY = labelPosition.y - model.labelYPadding;\r\n\t\t\tmodel.labelWidth = textWidth + (2 * model.labelXPadding);\r\n\t\t\tmodel.labelHeight = textHeight + (2 * model.labelYPadding);\r\n\r\n\t\t\tmodel.borderColor = options.borderColor;\r\n\t\t\tmodel.borderWidth = options.borderWidth;\r\n\t\t\tmodel.borderDash = options.borderDash || [];\r\n\t\t\tmodel.borderDashOffset = options.borderDashOffset || 0;\r\n\t\t},\r\n\t\tinRange: function(mouseX, mouseY) {\r\n\t\t\tvar model = this._model;\r\n\t\t\t\r\n\t\t\treturn (\r\n\t\t\t\t// On the line\r\n\t\t\t\tmodel.line &&\r\n\t\t\t\tmodel.line.intersects(mouseX, mouseY, this.getHeight())\r\n\t\t\t) || (\r\n\t\t\t\t// On the label\r\n\t\t\t\tmodel.labelEnabled &&\r\n\t\t\t\tmodel.labelContent &&\r\n\t\t\t\tmouseX >= model.labelX && \r\n\t\t\t\tmouseX <= model.labelX + model.labelWidth && \r\n\t\t\t\tmouseY >= model.labelY && \r\n\t\t\t\tmouseY <= model.labelY + model.labelHeight\r\n\t\t\t);\r\n\t\t},\r\n\t\tgetCenterPoint: function() {\r\n\t\t\treturn {\r\n\t\t\t\tx: (this._model.x2 + this._model.x1) / 2,\r\n\t\t\t\ty: (this._model.y2 + this._model.y1) / 2\r\n\t\t\t};\r\n\t\t},\r\n\t\tgetWidth: function() {\r\n\t\t\treturn Math.abs(this._model.right - this._model.left);\r\n\t\t},\r\n\t\tgetHeight: function() {\r\n\t\t\treturn this._model.borderWidth || 1;\r\n\t\t},\r\n\t\tgetArea: function() {\r\n\t\t\treturn Math.sqrt(Math.pow(this.getWidth(), 2) + Math.pow(this.getHeight(), 2));\r\n\t\t},\r\n\t\tdraw: function() {\r\n\t\t\tvar view = this._view;\r\n\t\t\tvar ctx = this.chartInstance.chart.ctx;\r\n\r\n\t\t\tif (!view.clip) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tctx.save();\r\n\r\n\t\t\t// Canvas setup\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.rect(view.clip.x1, view.clip.y1, view.clip.x2 - view.clip.x1, view.clip.y2 - view.clip.y1);\r\n\t\t\tctx.clip();\r\n\r\n\t\t\tctx.lineWidth = view.borderWidth;\r\n\t\t\tctx.strokeStyle = view.borderColor;\r\n\r\n\t\t\tif (ctx.setLineDash) {\r\n\t\t\t\tctx.setLineDash(view.borderDash);\r\n\t\t\t}\r\n\t\t\tctx.lineDashOffset = view.borderDashOffset;\r\n\r\n\t\t\t// Draw\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.moveTo(view.x1, view.y1);\r\n\t\t\tctx.lineTo(view.x2, view.y2);\r\n\t\t\tctx.stroke();\r\n\r\n\t\t\tif (view.labelEnabled && view.labelContent) {\r\n\t\t\t\tctx.beginPath();\r\n\t\t\t\tctx.rect(view.clip.x1, view.clip.y1, view.clip.x2 - view.clip.x1, view.clip.y2 - view.clip.y1);\r\n\t\t\t\tctx.clip();\r\n\r\n\t\t\t\tctx.fillStyle = view.labelBackgroundColor;\r\n\t\t\t\t// Draw the tooltip\r\n\t\t\t\tchartHelpers.drawRoundedRectangle(\r\n\t\t\t\t\tctx,\r\n\t\t\t\t\tview.labelX, // x\r\n\t\t\t\t\tview.labelY, // y\r\n\t\t\t\t\tview.labelWidth, // width\r\n\t\t\t\t\tview.labelHeight, // height\r\n\t\t\t\t\tview.labelCornerRadius // radius\r\n\t\t\t\t);\r\n\t\t\t\tctx.fill();\r\n\r\n\t\t\t\t// Draw the text\r\n\t\t\t\tctx.font = chartHelpers.fontString(\r\n\t\t\t\t\tview.labelFontSize,\r\n\t\t\t\t\tview.labelFontStyle,\r\n\t\t\t\t\tview.labelFontFamily\r\n\t\t\t\t);\r\n\t\t\t\tctx.fillStyle = view.labelFontColor;\r\n\t\t\t\tctx.textAlign = 'center';\r\n\t\t\t\tctx.textBaseline = 'middle';\r\n\t\t\t\tctx.fillText(\r\n\t\t\t\t\tview.labelContent,\r\n\t\t\t\t\tview.labelX + (view.labelWidth / 2),\r\n\t\t\t\t\tview.labelY + (view.labelHeight / 2)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tctx.restore();\r\n\t\t}\r\n\t});\r\n\r\n\tfunction LineFunction(view) {\r\n\t\t// Describe the line in slope-intercept form (y = mx + b).\r\n\t\t// Note that the axes are rotated 90° CCW, which causes the\r\n\t\t// x- and y-axes to be swapped.\r\n\t\tvar m = (view.x2 - view.x1) / (view.y2 - view.y1);\r\n\t\tvar b = view.x1 || 0;\r\n\r\n\t\tthis.m = m;\r\n\t\tthis.b = b;\r\n\r\n\t\tthis.getX = function(y) {\r\n\t\t\t// Coordinates are relative to the origin of the canvas\r\n\t\t\treturn m * (y - view.y1) + b;\r\n\t\t};\r\n\r\n\t\tthis.getY = function(x) {\r\n\t\t\treturn ((x - b) / m) + view.y1;\r\n\t\t};\r\n\r\n\t\tthis.intersects = function(x, y, epsilon) {\r\n\t\t\tepsilon = epsilon || 0.001;\r\n\t\t\tvar dy = this.getY(x),\r\n\t\t\t\tdx = this.getX(y);\r\n\t\t\treturn (\r\n\t\t\t\t(!isFinite(dy) || Math.abs(y - dy) < epsilon) &&\r\n\t\t\t\t(!isFinite(dx) || Math.abs(x - dx) < epsilon)\r\n\t\t\t);\r\n\t\t};\r\n\t}\r\n\r\n\tfunction calculateLabelPosition(view, width, height, padWidth, padHeight) {\r\n\t\tvar line = view.line;\r\n\t\tvar ret = {}, xa = 0, ya = 0;\r\n\r\n\t\tswitch (true) {\r\n\t\t\t// top align\r\n\t\t\tcase view.mode == verticalKeyword && view.labelPosition == \"top\":\r\n\t\t\t\tya = padHeight + view.labelYAdjust;\r\n\t\t\t\txa = (width / 2) + view.labelXAdjust;\r\n\t\t\t\tret.y = view.y1 + ya;\r\n\t\t\t\tret.x = (isFinite(line.m) ? line.getX(ret.y) : view.x1) - xa;\r\n\t\t\tbreak;\r\n\r\n\t\t\t// bottom align\r\n\t\t\tcase view.mode == verticalKeyword && view.labelPosition == \"bottom\":\r\n\t\t\t\tya = height + padHeight + view.labelYAdjust;\r\n\t\t\t\txa = (width / 2) + view.labelXAdjust;\r\n\t\t\t\tret.y = view.y2 - ya;\r\n\t\t\t\tret.x = (isFinite(line.m) ? line.getX(ret.y) : view.x1) - xa;\r\n\t\t\tbreak;\r\n\r\n\t\t\t// left align\r\n\t\t\tcase view.mode == horizontalKeyword && view.labelPosition == \"left\":\r\n\t\t\t\txa = padWidth + view.labelXAdjust;\r\n\t\t\t\tya = -(height / 2) + view.labelYAdjust;\r\n\t\t\t\tret.x = view.x1 + xa;\r\n\t\t\t\tret.y = line.getY(ret.x) + ya;\r\n\t\t\tbreak;\r\n\r\n\t\t\t// right align\r\n\t\t\tcase view.mode == horizontalKeyword && view.labelPosition == \"right\":\r\n\t\t\t\txa = width + padWidth + view.labelXAdjust;\r\n\t\t\t\tya = -(height / 2) + view.labelYAdjust;\r\n\t\t\t\tret.x = view.x2 - xa;\r\n\t\t\t\tret.y = line.getY(ret.x) + ya;\r\n\t\t\tbreak;\r\n\r\n\t\t\t// center align\r\n\t\t\tdefault:\r\n\t\t\t\tret.x = ((view.x1 + view.x2 - width) / 2) + view.labelXAdjust;\r\n\t\t\t\tret.y = ((view.y1 + view.y2 - height) / 2) + view.labelYAdjust;\r\n\t\t}\r\n\r\n\t\treturn ret;\r\n\t}\r\n\r\n\treturn LineAnnotation;\r\n};","module.exports = function(Chart) {\r\n\tvar helpers = require('../helpers')(Chart);\r\n\t\r\n\tvar BoxAnnotation = Chart.Annotation.Element.extend({\r\n\t\tsetDataLimits: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\tvar options = this.options;\r\n\t\t\tvar chartInstance = this.chartInstance;\r\n\r\n\t\t\tvar xScale = chartInstance.scales[options.xScaleID];\r\n\t\t\tvar yScale = chartInstance.scales[options.yScaleID];\r\n\t\t\tvar chartArea = chartInstance.chartArea;\r\n\r\n\t\t\t// Set the data range for this annotation\r\n\t\t\tmodel.ranges = {};\r\n\t\t\t\r\n\t\t\tif (!chartArea) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tvar min = 0;\r\n\t\t\tvar max = 0;\r\n\t\t\t\r\n\t\t\tif (xScale) {\r\n\t\t\t\tmin = helpers.isValid(options.xMin) ? options.xMin : xScale.getPixelForValue(chartArea.left);\r\n\t\t\t\tmax = helpers.isValid(options.xMax) ? options.xMax : xScale.getPixelForValue(chartArea.right);\r\n\r\n\t\t\t\tmodel.ranges[options.xScaleID] = {\r\n\t\t\t\t\tmin: Math.min(min, max),\r\n\t\t\t\t\tmax: Math.max(min, max)\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (yScale) {\r\n\t\t\t\tmin = helpers.isValid(options.yMin) ? options.yMin : yScale.getPixelForValue(chartArea.bottom);\r\n\t\t\t\tmax = helpers.isValid(options.yMax) ? options.yMax : yScale.getPixelForValue(chartArea.top);\r\n\r\n\t\t\t\tmodel.ranges[options.yScaleID] = {\r\n\t\t\t\t\tmin: Math.min(min, max),\r\n\t\t\t\t\tmax: Math.max(min, max)\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t},\r\n\t\tconfigure: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\tvar options = this.options;\r\n\t\t\tvar chartInstance = this.chartInstance;\r\n\r\n\t\t\tvar xScale = chartInstance.scales[options.xScaleID];\r\n\t\t\tvar yScale = chartInstance.scales[options.yScaleID];\r\n\t\t\tvar chartArea = chartInstance.chartArea;\r\n\r\n\t\t\t// clip annotations to the chart area\r\n\t\t\tmodel.clip = {\r\n\t\t\t\tx1: chartArea.left,\r\n\t\t\t\tx2: chartArea.right,\r\n\t\t\t\ty1: chartArea.top,\r\n\t\t\t\ty2: chartArea.bottom\r\n\t\t\t};\r\n\r\n\t\t\tvar left = chartArea.left, \r\n\t\t\t\ttop = chartArea.top, \r\n\t\t\t\tright = chartArea.right, \r\n\t\t\t\tbottom = chartArea.bottom;\r\n\r\n\t\t\tvar min, max;\r\n\r\n\t\t\tif (xScale) {\r\n\t\t\t\tmin = helpers.isValid(options.xMin) ? xScale.getPixelForValue(options.xMin) : chartArea.left;\r\n\t\t\t\tmax = helpers.isValid(options.xMax) ? xScale.getPixelForValue(options.xMax) : chartArea.right;\r\n\t\t\t\tleft = Math.min(min, max);\r\n\t\t\t\tright = Math.max(min, max);\r\n\t\t\t}\r\n\r\n\t\t\tif (yScale) {\r\n\t\t\t\tmin = helpers.isValid(options.yMin) ? yScale.getPixelForValue(options.yMin) : chartArea.bottom;\r\n\t\t\t\tmax = helpers.isValid(options.yMax) ? yScale.getPixelForValue(options.yMax) : chartArea.top;\r\n\t\t\t\ttop = Math.min(min, max);\r\n\t\t\t\tbottom = Math.max(min, max);\r\n\t\t\t}\r\n\r\n\t\t\t// Ensure model has rect coordinates\r\n\t\t\tmodel.left = left;\r\n\t\t\tmodel.top = top;\r\n\t\t\tmodel.right = right;\r\n\t\t\tmodel.bottom = bottom;\r\n\r\n\t\t\t// Stylistic options\r\n\t\t\tmodel.borderColor = options.borderColor;\r\n\t\t\tmodel.borderWidth = options.borderWidth;\r\n\t\t\tmodel.backgroundColor = options.backgroundColor;\r\n\t\t},\r\n\t\tinRange: function(mouseX, mouseY) {\r\n\t\t\tvar model = this._model;\r\n\t\t\treturn model &&\r\n\t\t\t\tmouseX >= model.left && \r\n\t\t\t\tmouseX <= model.right && \r\n\t\t\t\tmouseY >= model.top && \r\n\t\t\t\tmouseY <= model.bottom;\r\n\t\t},\r\n\t\tgetCenterPoint: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\treturn {\r\n\t\t\t\tx: (model.right + model.left) / 2,\r\n\t\t\t\ty: (model.bottom + model.top) / 2\r\n\t\t\t};\r\n\t\t},\r\n\t\tgetWidth: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\treturn Math.abs(model.right - model.left);\r\n\t\t},\r\n\t\tgetHeight: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\treturn Math.abs(model.bottom - model.top);\r\n\t\t},\r\n\t\tgetArea: function() {\r\n\t\t\treturn this.getWidth() * this.getHeight();\r\n\t\t},\r\n\t\tdraw: function() {\r\n\t\t\tvar view = this._view;\r\n\t\t\tvar ctx = this.chartInstance.chart.ctx;\r\n\r\n\t\t\tctx.save();\r\n\r\n\t\t\t// Canvas setup\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.rect(view.clip.x1, view.clip.y1, view.clip.x2 - view.clip.x1, view.clip.y2 - view.clip.y1);\r\n\t\t\tctx.clip();\r\n\r\n\t\t\tctx.lineWidth = view.borderWidth;\r\n\t\t\tctx.strokeStyle = view.borderColor;\r\n\t\t\tctx.fillStyle = view.backgroundColor;\r\n\r\n\t\t\t// Draw\r\n\t\t\tvar width = view.right - view.left,\r\n\t\t\t\theight = view.bottom - view.top;\r\n\t\t\tctx.fillRect(view.left, view.top, width, height);\r\n\t\t\tctx.strokeRect(view.left, view.top, width, height);\r\n\r\n\t\t\tctx.restore();\r\n\t\t}\r\n\t});\r\n\r\n\treturn BoxAnnotation;\r\n};","module.exports = function (Chart) {\r\n var chartHelpers = Chart.helpers;\r\n var helpers = require(\"./helpers\")(Chart);\r\n function collapseHoverEvents(events) {\r\n var hover = false;\r\n var filteredEvents = events.filter(function (eventName) {\r\n switch (eventName) {\r\n case \"mouseenter\":\r\n case \"mouseover\":\r\n case \"mouseout\":\r\n hover = true;\r\n return false;\r\n default:\r\n return true;\r\n }\r\n });\r\n if (hover && filteredEvents.indexOf(\"mousemove\") === -1) {\r\n filteredEvents.push(\"mousemove\");\r\n }\r\n return filteredEvents;\r\n }\r\n function dispatcher(e) {\r\n var ns = this.annotation;\r\n var elements = helpers.elements(this);\r\n var position = chartHelpers.getRelativePosition(e, this.chart);\r\n var element = helpers.getNearestItems(elements, position);\r\n var events = collapseHoverEvents(ns.options.events);\r\n var dblClickSpeed = ns.options.dblClickSpeed;\r\n var eventHandlers = [];\r\n var eventHandlerName = helpers.getEventHandlerName(e.type);\r\n var options = (element || ({})).options;\r\n elements.forEach(function (_el) {\r\n if (_el.hovering && (e.type === \"mouseleave\" || element !== _el)) {\r\n _el.hovering = false;\r\n var options = _el.options;\r\n [\"mouseout\", \"mouseleave\"].forEach(function (eventName) {\r\n var eventHandlerName = helpers.getEventHandlerName(eventName);\r\n var hoverEvent = helpers.createMouseEvent(eventName, e);\r\n if (typeof options[eventHandlerName] === \"function\") {\r\n eventHandlers.push([options[eventHandlerName], hoverEvent, _el]);\r\n }\r\n });\r\n }\r\n });\r\n if (e.type === \"mousemove\") {\r\n if (element && !element.hovering) {\r\n [\"mouseenter\", \"mouseover\"].forEach(function (eventName) {\r\n var eventHandlerName = helpers.getEventHandlerName(eventName);\r\n var hoverEvent = helpers.createMouseEvent(eventName, e);\r\n element.hovering = true;\r\n if (typeof options[eventHandlerName] === \"function\") {\r\n eventHandlers.push([options[eventHandlerName], hoverEvent, element]);\r\n }\r\n });\r\n }\r\n }\r\n if (element && events.indexOf(\"dblclick\") > -1 && typeof options.onDblclick === \"function\") {\r\n if (e.type === \"click\" && typeof options.onClick === \"function\") {\r\n clearTimeout(element.clickTimeout);\r\n element.clickTimeout = setTimeout(function () {\r\n delete element.clickTimeout;\r\n options.onClick.call(element, e);\r\n }, dblClickSpeed);\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n return;\r\n } else if (e.type === \"dblclick\" && element.clickTimeout) {\r\n clearTimeout(element.clickTimeout);\r\n delete element.clickTimeout;\r\n }\r\n }\r\n if (element && typeof options[eventHandlerName] === \"function\" && eventHandlers.length === 0) {\r\n eventHandlers.push([options[eventHandlerName], e, element]);\r\n }\r\n if (eventHandlers.length > 0) {\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n eventHandlers.forEach(function (eventHandler) {\r\n eventHandler[0].call(eventHandler[2], eventHandler[1]);\r\n });\r\n }\r\n }\r\n return {\r\n dispatcher: dispatcher,\r\n collapseHoverEvents: collapseHoverEvents\r\n };\r\n};","module.exports = function (Chart) {\r\n var chartHelpers = Chart.helpers;\r\n var helpers = require(\"./helpers\")(Chart);\r\n var events = require(\"./events\")(Chart);\r\n var annotationTypes = Chart.Annotation.types;\r\n function setAfterDataLimitsHook(axisOptions) {\r\n helpers.decorate(axisOptions, \"afterDataLimits\", function (previous, scale) {\r\n if (previous) previous(scale);\r\n helpers.adjustScaleRange(scale);\r\n });\r\n }\r\n function draw(drawTime) {\r\n return function (chartInstance, easingDecimal) {\r\n var defaultDrawTime = chartInstance.annotation.options.drawTime;\r\n helpers.elements(chartInstance).filter(function (element) {\r\n return drawTime === (element.options.drawTime || defaultDrawTime);\r\n }).forEach(function (element) {\r\n element.transition(easingDecimal).draw();\r\n });\r\n };\r\n }\r\n return {\r\n beforeInit: function (chartInstance) {\r\n var chartOptions = chartInstance.options;\r\n var ns = chartInstance.annotation = {\r\n elements: {},\r\n options: helpers.initConfig(chartOptions.annotation || ({})),\r\n onDestroy: [],\r\n firstRun: true,\r\n supported: false\r\n };\r\n chartInstance.ensureScalesHaveIDs();\r\n if (chartOptions.scales) {\r\n ns.supported = true;\r\n chartHelpers.each(chartOptions.scales.xAxes, setAfterDataLimitsHook);\r\n chartHelpers.each(chartOptions.scales.yAxes, setAfterDataLimitsHook);\r\n }\r\n },\r\n beforeUpdate: function (chartInstance) {\r\n var ns = chartInstance.annotation;\r\n if (!ns.supported) {\r\n return;\r\n }\r\n if (!ns.firstRun) {\r\n ns.options = helpers.initConfig(chartInstance.options.annotation || ({}));\r\n } else {\r\n ns.firstRun = false;\r\n }\r\n var elementIds = [];\r\n ns.options.annotations.forEach(function (annotation) {\r\n var id = annotation.id || helpers.objectId();\r\n if (!ns.elements[id] && annotationTypes[annotation.type]) {\r\n var cls = annotationTypes[annotation.type];\r\n var element = new cls({\r\n id: id,\r\n options: annotation,\r\n chartInstance: chartInstance\r\n });\r\n element.initialize();\r\n ns.elements[id] = element;\r\n annotation.id = id;\r\n elementIds.push(id);\r\n } else if (ns.elements[id]) {\r\n elementIds.push(id);\r\n }\r\n });\r\n Object.keys(ns.elements).forEach(function (id) {\r\n if (elementIds.indexOf(id) === -1) {\r\n ns.elements[id].destroy();\r\n delete ns.elements[id];\r\n }\r\n });\r\n },\r\n afterScaleUpdate: function (chartInstance) {\r\n helpers.elements(chartInstance).forEach(function (element) {\r\n element.configure();\r\n });\r\n },\r\n beforeDatasetsDraw: draw(\"beforeDatasetsDraw\"),\r\n afterDatasetsDraw: draw(\"afterDatasetsDraw\"),\r\n afterDraw: draw(\"afterDraw\"),\r\n afterInit: function (chartInstance) {\r\n var watchFor = chartInstance.annotation.options.events;\r\n if (chartHelpers.isArray(watchFor) && watchFor.length > 0) {\r\n var canvas = chartInstance.chart.canvas;\r\n var eventHandler = events.dispatcher.bind(chartInstance);\r\n events.collapseHoverEvents(watchFor).forEach(function (eventName) {\r\n chartHelpers.addEvent(canvas, eventName, eventHandler);\r\n chartInstance.annotation.onDestroy.push(function () {\r\n chartHelpers.removeEvent(canvas, eventName, eventHandler);\r\n });\r\n });\r\n }\r\n },\r\n destroy: function (chartInstance) {\r\n var deregisterers = chartInstance.annotation.onDestroy;\r\n while (deregisterers.length > 0) {\r\n deregisterers.pop()();\r\n }\r\n }\r\n };\r\n};","const Chart = require(\"chartjs\");\r\nChart.Annotation = Chart.Annotation || ({});\r\nChart.Annotation.drawTimeOptions = {\r\n afterDraw: \"afterDraw\",\r\n afterDatasetsDraw: \"afterDatasetsDraw\",\r\n beforeDatasetsDraw: \"beforeDatasetsDraw\"\r\n};\r\nChart.Annotation.defaults = {\r\n drawTime: \"afterDatasetsDraw\",\r\n dblClickSpeed: 350,\r\n events: [],\r\n annotations: []\r\n};\r\nChart.Annotation.labelDefaults = {\r\n backgroundColor: \"rgba(0,0,0,0.8)\",\r\n fontFamily: Chart.defaults.global.defaultFontFamily,\r\n fontSize: Chart.defaults.global.defaultFontSize,\r\n fontStyle: \"bold\",\r\n fontColor: \"#fff\",\r\n xPadding: 6,\r\n yPadding: 6,\r\n cornerRadius: 6,\r\n position: \"center\",\r\n xAdjust: 0,\r\n yAdjust: 0,\r\n enabled: false,\r\n content: null\r\n};\r\nChart.Annotation.Element = require(\"./element\")(Chart);\r\nChart.Annotation.types = {\r\n line: require(\"./types/line\")(Chart),\r\n box: require(\"./types/box\")(Chart)\r\n};\r\nvar annotationPlugin = require(\"./annotation\")(Chart);\r\nmodule.exports = annotationPlugin;\r\nChart.pluginService.register(annotationPlugin);","/*jslint browser:true, devel:true, white:true, vars:true */\r\n//// VERSION: https://github.com/chartjs/chartjs-plugin-zoom/blob/b0c3b209a2033d89b148b0dd8b1b345a00c24cc9/src/chart.zoom.js\r\n//// COMMIT ID: b0c3b209a2033d89b148b0dd8b1b345a00c24cc9\r\n//// NOTE: THIS IS NOT A FULL RELEASE\r\n\r\n// hammer JS for touch support\r\nvar Hammer = require('hammerjs');\r\nHammer = typeof(Hammer) === 'function' ? Hammer : window.Hammer;\r\n\r\n// Get the chart variable\r\nvar Chart = require('chartjs');\r\nChart = typeof(Chart) === 'function' ? Chart : window.Chart;\r\nvar helpers = Chart.helpers;\r\n\r\n// Take the zoom namespace of Chart\r\nvar zoomNS = Chart.Zoom = Chart.Zoom || {};\r\n\r\n// Where we store functions to handle different scale types\r\nvar zoomFunctions = zoomNS.zoomFunctions = zoomNS.zoomFunctions || {};\r\nvar panFunctions = zoomNS.panFunctions = zoomNS.panFunctions || {};\r\n\r\n// Default options if none are provided\r\nvar defaultOptions = zoomNS.defaults = {\r\n pan: {\r\n enabled: true,\r\n\t\tmode: 'xy',\r\n speed: 20,\r\n threshold: 10\r\n },\r\n zoom: {\r\n enabled: true,\r\n\t\tmode: 'xy',\r\n sensitivity: 3\r\n }\r\n};\r\n\r\nfunction directionEnabled(mode, dir) {\r\n if (mode === undefined) {\r\n return true;\r\n\t} else if (typeof mode === 'string') {\r\n return mode.indexOf(dir) !== -1;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction rangeMaxLimiter(zoomPanOptions, newMax) {\r\n\tif (zoomPanOptions.scaleAxes && zoomPanOptions.rangeMax &&\r\n\t\t\t!helpers.isNullOrUndef(zoomPanOptions.rangeMax[zoomPanOptions.scaleAxes])) {\r\n var rangeMax = zoomPanOptions.rangeMax[zoomPanOptions.scaleAxes];\r\n if (newMax > rangeMax) {\r\n newMax = rangeMax;\r\n }\r\n }\r\n return newMax;\r\n}\r\n\r\nfunction rangeMinLimiter(zoomPanOptions, newMin) {\r\n\tif (zoomPanOptions.scaleAxes && zoomPanOptions.rangeMin &&\r\n\t\t\t!helpers.isNullOrUndef(zoomPanOptions.rangeMin[zoomPanOptions.scaleAxes])) {\r\n var rangeMin = zoomPanOptions.rangeMin[zoomPanOptions.scaleAxes];\r\n if (newMin < rangeMin) {\r\n newMin = rangeMin;\r\n }\r\n }\r\n return newMin;\r\n}\r\n\r\nfunction zoomIndexScale(scale, zoom, center, zoomOptions) {\r\n var labels = scale.chart.data.labels;\r\n var minIndex = scale.minIndex;\r\n var lastLabelIndex = labels.length - 1;\r\n var maxIndex = scale.maxIndex;\r\n var sensitivity = zoomOptions.sensitivity;\r\n\tvar chartCenter = scale.isHorizontal() ? scale.left + (scale.width/2) : scale.top + (scale.height/2);\r\n var centerPointer = scale.isHorizontal() ? center.x : center.y;\r\n\r\n zoomNS.zoomCumulativeDelta = zoom > 1 ? zoomNS.zoomCumulativeDelta + 1 : zoomNS.zoomCumulativeDelta - 1;\r\n\r\n if (Math.abs(zoomNS.zoomCumulativeDelta) > sensitivity) {\r\n if (zoomNS.zoomCumulativeDelta < 0) {\r\n if (centerPointer >= chartCenter) {\r\n if (minIndex <= 0) {\r\n maxIndex = Math.min(lastLabelIndex, maxIndex + 1);\r\n } else {\r\n minIndex = Math.max(0, minIndex - 1);\r\n }\r\n } else if (centerPointer < chartCenter) {\r\n if (maxIndex >= lastLabelIndex) {\r\n minIndex = Math.max(0, minIndex - 1);\r\n } else {\r\n maxIndex = Math.min(lastLabelIndex, maxIndex + 1);\r\n }\r\n }\r\n zoomNS.zoomCumulativeDelta = 0;\r\n\t\t}\r\n\t\telse if(zoomNS.zoomCumulativeDelta > 0){\r\n if (centerPointer >= chartCenter) {\r\n minIndex = minIndex < maxIndex ? minIndex = Math.min(maxIndex, minIndex + 1) : minIndex;\r\n } else if (centerPointer < chartCenter) {\r\n maxIndex = maxIndex > minIndex ? maxIndex = Math.max(minIndex, maxIndex - 1) : maxIndex;\r\n }\r\n zoomNS.zoomCumulativeDelta = 0;\r\n }\r\n scale.options.ticks.min = rangeMinLimiter(zoomOptions, labels[minIndex]);\r\n scale.options.ticks.max = rangeMaxLimiter(zoomOptions, labels[maxIndex]);\r\n }\r\n}\r\n\r\nfunction zoomTimeScale(scale, zoom, center, zoomOptions) {\r\n var options = scale.options;\r\n\r\n var range;\r\n var min_percent;\r\n if (scale.isHorizontal()) {\r\n range = scale.right - scale.left;\r\n min_percent = (center.x - scale.left) / range;\r\n } else {\r\n range = scale.bottom - scale.top;\r\n min_percent = (center.y - scale.top) / range;\r\n }\r\n\r\n var max_percent = 1 - min_percent;\r\n var newDiff = range * (zoom - 1);\r\n\r\n var minDelta = newDiff * min_percent;\r\n var maxDelta = newDiff * max_percent;\r\n\r\n var newMin = scale.getValueForPixel(scale.getPixelForValue(scale.min) + minDelta);\r\n var newMax = scale.getValueForPixel(scale.getPixelForValue(scale.max) - maxDelta);\r\n\r\n var diffMinMax = newMax.diff(newMin);\r\n var minLimitExceeded = rangeMinLimiter(zoomOptions, diffMinMax) != diffMinMax;\r\n var maxLimitExceeded = rangeMaxLimiter(zoomOptions, diffMinMax) != diffMinMax;\r\n\r\n if (!minLimitExceeded && !maxLimitExceeded) {\r\n options.time.min = newMin;\r\n options.time.max = newMax;\r\n }\r\n}\r\n\r\nfunction zoomNumericalScale(scale, zoom, center, zoomOptions) {\r\n var range = scale.max - scale.min;\r\n var newDiff = range * (zoom - 1);\r\n\r\n var cursorPixel = scale.isHorizontal() ? center.x : center.y;\r\n var min_percent = (scale.getValueForPixel(cursorPixel) - scale.min) / range;\r\n var max_percent = 1 - min_percent;\r\n\r\n var minDelta = newDiff * min_percent;\r\n var maxDelta = newDiff * max_percent;\r\n\r\n scale.options.ticks.min = rangeMinLimiter(zoomOptions, scale.min + minDelta);\r\n scale.options.ticks.max = rangeMaxLimiter(zoomOptions, scale.max - maxDelta);\r\n}\r\n\r\nfunction zoomScale(scale, zoom, center, zoomOptions) {\r\n var fn = zoomFunctions[scale.options.type];\r\n if (fn) {\r\n fn(scale, zoom, center, zoomOptions);\r\n }\r\n}\r\n\r\nfunction doZoom(chartInstance, zoom, center, whichAxes) {\r\n var ca = chartInstance.chartArea;\r\n if (!center) {\r\n center = {\r\n x: (ca.left + ca.right) / 2,\r\n\t\t\ty: (ca.top + ca.bottom) / 2,\r\n };\r\n }\r\n\r\n var zoomOptions = chartInstance.options.zoom;\r\n\r\n if (zoomOptions && helpers.getValueOrDefault(zoomOptions.enabled, defaultOptions.zoom.enabled)) {\r\n\t\t// Do the zoom here\r\n var zoomMode = helpers.getValueOrDefault(chartInstance.options.zoom.mode, defaultOptions.zoom.mode);\r\n zoomOptions.sensitivity = helpers.getValueOrDefault(chartInstance.options.zoom.sensitivity, defaultOptions.zoom.sensitivity);\r\n\r\n\t\t// Which axe should be modified when figers were used.\r\n var _whichAxes;\r\n\t\tif (zoomMode == 'xy' && whichAxes !== undefined) {\r\n\t\t\t// based on fingers positions\r\n _whichAxes = whichAxes;\r\n } else {\r\n\t\t\t// no effect\r\n\t\t\t_whichAxes = 'xy';\r\n }\r\n\r\n helpers.each(chartInstance.scales, function (scale, id) {\r\n\t\t\tif (scale.isHorizontal() && directionEnabled(zoomMode, 'x') && directionEnabled(_whichAxes, 'x')) {\r\n zoomOptions.scaleAxes = \"x\";\r\n zoomScale(scale, zoom, center, zoomOptions);\r\n\t\t\t} else if (!scale.isHorizontal() && directionEnabled(zoomMode, 'y') && directionEnabled(_whichAxes, 'y')) {\r\n\t\t\t\t// Do Y zoom\r\n zoomOptions.scaleAxes = \"y\";\r\n zoomScale(scale, zoom, center, zoomOptions);\r\n }\r\n });\r\n\r\n\t\tif (typeof zoomOptions.onBeforeUpdate === 'function') {\r\n zoomOptions.onBeforeUpdate();\r\n }\r\n\r\n chartInstance.update(0);\r\n\r\n\t\tif (typeof zoomOptions.onZoom === 'function') {\r\n zoomOptions.onZoom();\r\n }\r\n }\r\n}\r\n\r\nfunction panIndexScale(scale, delta, panOptions) {\r\n var labels = scale.chart.data.labels;\r\n var lastLabelIndex = labels.length - 1;\r\n\tvar offsetAmt = Math.max((scale.ticks.length - ((scale.options.gridLines.offsetGridLines) ? 0 : 1)), 1);\r\n var panSpeed = panOptions.speed;\r\n var minIndex = scale.minIndex;\r\n var step = Math.round(scale.width / (offsetAmt * panSpeed));\r\n var maxIndex;\r\n\r\n zoomNS.panCumulativeDelta += delta;\r\n\r\n minIndex = zoomNS.panCumulativeDelta > step ? Math.max(0, minIndex - 1) : zoomNS.panCumulativeDelta < -step ? Math.min(lastLabelIndex - offsetAmt + 1, minIndex + 1) : minIndex;\r\n zoomNS.panCumulativeDelta = minIndex !== scale.minIndex ? 0 : zoomNS.panCumulativeDelta;\r\n\r\n maxIndex = Math.min(lastLabelIndex, minIndex + offsetAmt - 1);\r\n\r\n scale.options.ticks.min = rangeMinLimiter(panOptions, labels[minIndex]);\r\n scale.options.ticks.max = rangeMaxLimiter(panOptions, labels[maxIndex]);\r\n}\r\n\r\nfunction panTimeScale(scale, delta, panOptions) {\r\n var options = scale.options;\r\n var limitedMax = rangeMaxLimiter(panOptions, scale.getValueForPixel(scale.getPixelForValue(scale.max) - delta));\r\n var limitedMin = rangeMinLimiter(panOptions, scale.getValueForPixel(scale.getPixelForValue(scale.min) - delta));\r\n\r\n var limitedTimeDelta = delta < 0 ? limitedMax - scale.max : limitedMin - scale.min;\r\n\r\n options.time.max = scale.max + limitedTimeDelta;\r\n options.time.min = scale.min + limitedTimeDelta;\r\n}\r\n\r\nfunction panNumericalScale(scale, delta, panOptions) {\r\n var tickOpts = scale.options.ticks;\r\n\tvar start = scale.start,\r\n\t\tend = scale.end;\r\n\r\n if (tickOpts.reverse) {\r\n tickOpts.max = scale.getValueForPixel(scale.getPixelForValue(start) - delta);\r\n tickOpts.min = scale.getValueForPixel(scale.getPixelForValue(end) - delta);\r\n } else {\r\n tickOpts.min = scale.getValueForPixel(scale.getPixelForValue(start) - delta);\r\n tickOpts.max = scale.getValueForPixel(scale.getPixelForValue(end) - delta);\r\n }\r\n\r\n tickOpts.min = rangeMinLimiter(panOptions, tickOpts.min);\r\n tickOpts.max = rangeMaxLimiter(panOptions, tickOpts.max);\r\n}\r\n\r\nfunction panScale(scale, delta, panOptions) {\r\n var fn = panFunctions[scale.options.type];\r\n if (fn) {\r\n fn(scale, delta, panOptions);\r\n }\r\n}\r\n\r\nfunction doPan(chartInstance, deltaX, deltaY) {\r\n var panOptions = chartInstance.options.pan;\r\n if (panOptions && helpers.getValueOrDefault(panOptions.enabled, defaultOptions.pan.enabled)) {\r\n var panMode = helpers.getValueOrDefault(chartInstance.options.pan.mode, defaultOptions.pan.mode);\r\n panOptions.speed = helpers.getValueOrDefault(chartInstance.options.pan.speed, defaultOptions.pan.speed);\r\n\r\n helpers.each(chartInstance.scales, function (scale, id) {\r\n\t\t\tif (scale.isHorizontal() && directionEnabled(panMode, 'x') && deltaX !== 0) {\r\n panOptions.scaleAxes = \"x\";\r\n panScale(scale, deltaX, panOptions);\r\n\t\t\t} else if (!scale.isHorizontal() && directionEnabled(panMode, 'y') && deltaY !== 0) {\r\n panOptions.scaleAxes = \"y\";\r\n panScale(scale, deltaY, panOptions);\r\n }\r\n });\r\n\r\n\t\tif (typeof panOptions.onBeforeUpdate === 'function') {\r\n panOptions.onBeforeUpdate();\r\n }\r\n\r\n chartInstance.update(0);\r\n\r\n\t\tif (typeof panOptions.onPan === 'function') {\r\n panOptions.onPan();\r\n }\r\n }\r\n}\r\n\r\nfunction positionInChartArea(chartInstance, position) {\r\n\treturn \t(position.x >= chartInstance.chartArea.left && position.x <= chartInstance.chartArea.right) &&\r\n\t\t(position.y >= chartInstance.chartArea.top && position.y <= chartInstance.chartArea.bottom);\r\n}\r\n\r\nfunction getYAxis(chartInstance) {\r\n var scales = chartInstance.scales;\r\n\r\n for (var scaleId in scales) {\r\n var scale = scales[scaleId];\r\n\r\n if (!scale.isHorizontal()) {\r\n return scale;\r\n }\r\n }\r\n}\r\n\r\n// Store these for later\r\nzoomNS.zoomFunctions.category = zoomIndexScale;\r\nzoomNS.zoomFunctions.time = zoomTimeScale;\r\nzoomNS.zoomFunctions.linear = zoomNumericalScale;\r\nzoomNS.zoomFunctions.logarithmic = zoomNumericalScale;\r\nzoomNS.panFunctions.category = panIndexScale;\r\nzoomNS.panFunctions.time = panTimeScale;\r\nzoomNS.panFunctions.linear = panNumericalScale;\r\nzoomNS.panFunctions.logarithmic = panNumericalScale;\r\n// Globals for catergory pan and zoom\r\nzoomNS.panCumulativeDelta = 0;\r\nzoomNS.zoomCumulativeDelta = 0;\r\n\r\n// Chartjs Zoom Plugin\r\nvar zoomPlugin = {\r\n\tid: 'zoom',\r\n\r\n afterInit: function (chartInstance) {\r\n helpers.each(chartInstance.scales, function (scale) {\r\n scale.originalOptions = helpers.clone(scale.options);\r\n });\r\n\r\n chartInstance.resetZoom = function () {\r\n helpers.each(chartInstance.scales, function (scale, id) {\r\n var timeOptions = scale.options.time;\r\n var tickOptions = scale.options.ticks;\r\n\r\n if (timeOptions) {\r\n timeOptions.min = scale.originalOptions.time.min;\r\n timeOptions.max = scale.originalOptions.time.max;\r\n }\r\n\r\n if (tickOptions) {\r\n tickOptions.min = scale.originalOptions.ticks.min;\r\n tickOptions.max = scale.originalOptions.ticks.max;\r\n }\r\n });\r\n\r\n helpers.each(chartInstance.data.datasets, function (dataset, id) {\r\n dataset._meta = null;\r\n });\r\n\r\n chartInstance.update();\r\n };\r\n\r\n },\r\n\r\n beforeInit: function (chartInstance) {\r\n chartInstance.zoom = {};\r\n\r\n var node = chartInstance.zoom.node = chartInstance.chart.ctx.canvas;\r\n\r\n var options = chartInstance.options;\r\n var panThreshold = helpers.getValueOrDefault(options.pan ? options.pan.threshold : undefined, zoomNS.defaults.pan.threshold);\r\n if (!options.zoom || !options.zoom.enabled) {\r\n return;\r\n }\r\n if (options.zoom.drag) {\r\n\t\t\t// Only want to zoom horizontal axis\r\n\t\t\toptions.zoom.mode = 'x';\r\n\r\n chartInstance.zoom._mouseDownHandler = function (event) {\r\n chartInstance.zoom._dragZoomStart = event;\r\n };\r\n\t\t\tnode.addEventListener('mousedown', chartInstance.zoom._mouseDownHandler);\r\n\r\n chartInstance.zoom._mouseMoveHandler = function (event) {\r\n if (chartInstance.zoom._dragZoomStart) {\r\n chartInstance.zoom._dragZoomEnd = event;\r\n chartInstance.update(0);\r\n }\r\n };\r\n\t\t\tnode.addEventListener('mousemove', chartInstance.zoom._mouseMoveHandler);\r\n\r\n chartInstance.zoom._mouseUpHandler = function (event) {\r\n if (chartInstance.zoom._dragZoomStart) {\r\n var chartArea = chartInstance.chartArea;\r\n var yAxis = getYAxis(chartInstance);\r\n var beginPoint = chartInstance.zoom._dragZoomStart;\r\n var offsetX = beginPoint.target.getBoundingClientRect().left;\r\n var startX = Math.min(beginPoint.clientX, event.clientX) - offsetX;\r\n var endX = Math.max(beginPoint.clientX, event.clientX) - offsetX;\r\n var dragDistance = endX - startX;\r\n var chartDistance = chartArea.right - chartArea.left;\r\n\t\t\t\t\tvar zoom = 1 + ((chartDistance - dragDistance) / chartDistance );\r\n\r\n\t\t\t\t\t// Remove drag start and end before chart update to stop drawing selected area\r\n chartInstance.zoom._dragZoomStart = null;\r\n chartInstance.zoom._dragZoomEnd = null;\r\n\r\n if (dragDistance > 0) {\r\n doZoom(chartInstance, zoom, {\r\n\t\t\t\t\t\t\tx: (dragDistance / 2) + startX,\r\n\t\t\t\t\t\t\ty: (yAxis.bottom - yAxis.top) / 2,\r\n });\r\n }\r\n }\r\n };\r\n\t\t\tnode.addEventListener('mouseup', chartInstance.zoom._mouseUpHandler);\r\n } else {\r\n chartInstance.zoom._wheelHandler = function (event) {\r\n var rect = event.target.getBoundingClientRect();\r\n var offsetX = event.clientX - rect.left;\r\n var offsetY = event.clientY - rect.top;\r\n\r\n var center = {\r\n x: offsetX,\r\n y: offsetY\r\n };\r\n\r\n if (event.deltaY < 0) {\r\n doZoom(chartInstance, 1.1, center);\r\n } else {\r\n doZoom(chartInstance, 0.909, center);\r\n }\r\n\t\t\t\t// Prevent the event from triggering the default behavior (eg. Content scrolling).\r\n event.preventDefault();\r\n };\r\n\r\n\t\t\tnode.addEventListener('wheel', chartInstance.zoom._wheelHandler);\r\n }\r\n\r\n if (Hammer) {\r\n var mc = new Hammer.Manager(node);\r\n mc.add(new Hammer.Pinch());\r\n mc.add(new Hammer.Pan({\r\n threshold: panThreshold\r\n }));\r\n\r\n\t\t\t// Hammer reports the total scaling. We need the incremental amount\r\n var currentPinchScaling;\r\n var handlePinch = function handlePinch(e) {\r\n\t\t\t\tvar diff = 1 / (currentPinchScaling) * e.scale;\r\n var rect = e.target.getBoundingClientRect();\r\n var offsetX = e.center.x - rect.left;\r\n var offsetY = e.center.y - rect.top;\r\n var center = {\r\n x: offsetX,\r\n y: offsetY\r\n };\r\n\r\n\t\t\t\t// fingers position difference\r\n var x = Math.abs(e.pointers[0].clientX - e.pointers[1].clientX);\r\n var y = Math.abs(e.pointers[0].clientY - e.pointers[1].clientY);\r\n\r\n\t\t\t\t// diagonal fingers will change both (xy) axes\r\n var p = x / y;\r\n var xy;\r\n if (p > 0.3 && p < 1.7) {\r\n\t\t\t\t\txy = 'xy';\r\n\t\t\t\t}\r\n\t\t\t\t// x axis\r\n\t\t\t\telse if (x > y) {\r\n\t\t\t\t\txy = 'x';\r\n\t\t\t\t}\r\n\t\t\t\t// y axis\r\n\t\t\t\telse {\r\n\t\t\t\t\txy = 'y';\r\n }\r\n\r\n doZoom(chartInstance, diff, center, xy);\r\n\r\n\t\t\t\t// Keep track of overall scale\r\n currentPinchScaling = e.scale;\r\n };\r\n\r\n\t\t\tmc.on('pinchstart', function(e) {\r\n\t\t\t\tcurrentPinchScaling = 1; // reset tracker\r\n });\r\n\t\t\tmc.on('pinch', handlePinch);\r\n\t\t\tmc.on('pinchend', function(e) {\r\n handlePinch(e);\r\n\t\t\t\tcurrentPinchScaling = null; // reset\r\n zoomNS.zoomCumulativeDelta = 0;\r\n });\r\n\r\n var currentDeltaX = null, currentDeltaY = null, panning = false;\r\n var handlePan = function handlePan(e) {\r\n if (currentDeltaX !== null && currentDeltaY !== null) {\r\n panning = true;\r\n var deltaX = e.deltaX - currentDeltaX;\r\n var deltaY = e.deltaY - currentDeltaY;\r\n currentDeltaX = e.deltaX;\r\n currentDeltaY = e.deltaY;\r\n doPan(chartInstance, deltaX, deltaY);\r\n }\r\n };\r\n\r\n\t\t\tmc.on('panstart', function(e) {\r\n currentDeltaX = 0;\r\n currentDeltaY = 0;\r\n handlePan(e);\r\n });\r\n\t\t\tmc.on('panmove', handlePan);\r\n\t\t\tmc.on('panend', function(e) {\r\n currentDeltaX = null;\r\n currentDeltaY = null;\r\n zoomNS.panCumulativeDelta = 0;\r\n\t\t\t\tsetTimeout(function() { panning = false; }, 500);\r\n });\r\n\r\n chartInstance.zoom._ghostClickHandler = function (e) {\r\n if (panning) {\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n }\r\n };\r\n\t\t\tnode.addEventListener('click', chartInstance.zoom._ghostClickHandler);\r\n\r\n chartInstance._mc = mc;\r\n }\r\n },\r\n\r\n beforeDatasetsDraw: function (chartInstance) {\r\n var ctx = chartInstance.chart.ctx;\r\n var chartArea = chartInstance.chartArea;\r\n ctx.save();\r\n ctx.beginPath();\r\n\r\n if (chartInstance.zoom._dragZoomEnd) {\r\n var yAxis = getYAxis(chartInstance);\r\n var beginPoint = chartInstance.zoom._dragZoomStart;\r\n var endPoint = chartInstance.zoom._dragZoomEnd;\r\n var offsetX = beginPoint.target.getBoundingClientRect().left;\r\n var startX = Math.min(beginPoint.clientX, endPoint.clientX) - offsetX;\r\n var endX = Math.max(beginPoint.clientX, endPoint.clientX) - offsetX;\r\n var rectWidth = endX - startX;\r\n\r\n\r\n\t\t\tctx.fillStyle = 'rgba(225,225,225,0.3)';\r\n ctx.lineWidth = 5;\r\n ctx.fillRect(startX, yAxis.top, rectWidth, yAxis.bottom - yAxis.top);\r\n }\r\n\r\n ctx.rect(chartArea.left, chartArea.top, chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n ctx.clip();\r\n },\r\n\r\n afterDatasetsDraw: function (chartInstance) {\r\n chartInstance.chart.ctx.restore();\r\n },\r\n\r\n destroy: function (chartInstance) {\r\n if (chartInstance.zoom) {\r\n var options = chartInstance.options;\r\n var node = chartInstance.zoom.node;\r\n\r\n if (options.zoom && options.zoom.drag) {\r\n\t\t\t\tnode.removeEventListener('mousedown', chartInstance.zoom._mouseDownHandler);\r\n\t\t\t\tnode.removeEventListener('mousemove', chartInstance.zoom._mouseMoveHandler);\r\n\t\t\t\tnode.removeEventListener('mouseup', chartInstance.zoom._mouseUpHandler);\r\n } else {\r\n\t\t\t\tnode.removeEventListener('wheel', chartInstance.zoom._wheelHandler);\r\n }\r\n\r\n if (Hammer) {\r\n\t\t\t\tnode.removeEventListener('click', chartInstance.zoom._ghostClickHandler);\r\n }\r\n\r\n delete chartInstance.zoom;\r\n\r\n var mc = chartInstance._mc;\r\n if (mc) {\r\n\t\t\t\tmc.remove('pinchstart');\r\n\t\t\t\tmc.remove('pinch');\r\n\t\t\t\tmc.remove('pinchend');\r\n\t\t\t\tmc.remove('panstart');\r\n\t\t\t\tmc.remove('pan');\r\n\t\t\t\tmc.remove('panend');\r\n }\r\n }\r\n }\r\n};\r\n\r\nmodule.exports = zoomPlugin;\r\nChart.pluginService.register(zoomPlugin);\r\n","/*!\n * jQuery UI Widget 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Widget\n//>>group: Core\n//>>description: Provides a factory for creating stateful widgets with a common API.\n//>>docs: http://api.jqueryui.com/jQuery.widget/\n//>>demos: http://jqueryui.com/widget/\n\n( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}( function( $ ) {\n\nvar widgetUuid = 0;\nvar widgetSlice = Array.prototype.slice;\n\n$.cleanData = ( function( orig ) {\n\treturn function( elems ) {\n\t\tvar events, elem, i;\n\t\tfor ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\ttry {\n\n\t\t\t\t// Only trigger remove when necessary to save time\n\t\t\t\tevents = $._data( elem, \"events\" );\n\t\t\t\tif ( events && events.remove ) {\n\t\t\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t\t\t}\n\n\t\t\t// Http://bugs.jquery.com/ticket/8235\n\t\t\t} catch ( e ) {}\n\t\t}\n\t\torig( elems );\n\t};\n} )( $.cleanData );\n\n$.widget = function( name, base, prototype ) {\n\tvar existingConstructor, constructor, basePrototype;\n\n\t// ProxiedPrototype allows the provided prototype to remain unmodified\n\t// so that it can be used as a mixin for multiple widgets (#8876)\n\tvar proxiedPrototype = {};\n\n\tvar namespace = name.split( \".\" )[ 0 ];\n\tname = name.split( \".\" )[ 1 ];\n\tvar fullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\tif ( $.isArray( prototype ) ) {\n\t\tprototype = $.extend.apply( null, [ {} ].concat( prototype ) );\n\t}\n\n\t// Create selector for plugin\n\t$.expr[ \":\" ][ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\n\t\t// Allow instantiation without \"new\" keyword\n\t\tif ( !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// Allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\n\t// Extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\n\t\t// Copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\n\t\t// Track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t} );\n\n\tbasePrototype = new base();\n\n\t// We need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( !$.isFunction( value ) ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = ( function() {\n\t\t\tfunction _super() {\n\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t}\n\n\t\t\tfunction _superApply( args ) {\n\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t}\n\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super;\n\t\t\t\tvar __superApply = this._superApply;\n\t\t\t\tvar returnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t} )();\n\t} );\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t} );\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// Redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor,\n\t\t\t\tchild._proto );\n\t\t} );\n\n\t\t// Remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n\n\treturn constructor;\n};\n\n$.widget.extend = function( target ) {\n\tvar input = widgetSlice.call( arguments, 1 );\n\tvar inputIndex = 0;\n\tvar inputLength = input.length;\n\tvar key;\n\tvar value;\n\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\n\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\";\n\t\tvar args = widgetSlice.call( arguments, 1 );\n\t\tvar returnValue = this;\n\n\t\tif ( isMethodCall ) {\n\n\t\t\t// If this is an empty collection, we need to have the instance method\n\t\t\t// return undefined instead of the jQuery instance\n\t\t\tif ( !this.length && options === \"instance\" ) {\n\t\t\t\treturnValue = undefined;\n\t\t\t} else {\n\t\t\t\tthis.each( function() {\n\t\t\t\t\tvar methodValue;\n\t\t\t\t\tvar instance = $.data( this, fullName );\n\n\t\t\t\t\tif ( options === \"instance\" ) {\n\t\t\t\t\t\treturnValue = instance;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !instance ) {\n\t\t\t\t\t\treturn $.error( \"cannot call methods on \" + name +\n\t\t\t\t\t\t\t\" prior to initialization; \" +\n\t\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name +\n\t\t\t\t\t\t\t\" widget instance\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\n\t\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\t\tmethodValue;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Allow multiple hashes to be passed on init\n\t\t\tif ( args.length ) {\n\t\t\t\toptions = $.widget.extend.apply( null, [ options ].concat( args ) );\n\t\t\t}\n\n\t\t\tthis.each( function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} );\n\t\t\t\t\tif ( instance._init ) {\n\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"<div>\",\n\n\toptions: {\n\t\tclasses: {},\n\t\tdisabled: false,\n\n\t\t// Callbacks\n\t\tcreate: null\n\t},\n\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = widgetUuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\t\tthis.classesElementLookup = {};\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.document = $( element.style ?\n\n\t\t\t\t// Element within the document\n\t\t\t\telement.ownerDocument :\n\n\t\t\t\t// Element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );\n\t\t}\n\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis._create();\n\n\t\tif ( this.options.disabled ) {\n\t\t\tthis._setOptionDisabled( this.options.disabled );\n\t\t}\n\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\n\t_getCreateOptions: function() {\n\t\treturn {};\n\t},\n\n\t_getCreateEventData: $.noop,\n\n\t_create: $.noop,\n\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tvar that = this;\n\n\t\tthis._destroy();\n\t\t$.each( this.classesElementLookup, function( key, value ) {\n\t\t\tthat._removeClass( value, key );\n\t\t} );\n\n\t\t// We can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.off( this.eventNamespace )\n\t\t\t.removeData( this.widgetFullName );\n\t\tthis.widget()\n\t\t\t.off( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" );\n\n\t\t// Clean up events and states\n\t\tthis.bindings.off( this.eventNamespace );\n\t},\n\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key;\n\t\tvar parts;\n\t\tvar curOption;\n\t\tvar i;\n\n\t\tif ( arguments.length === 0 ) {\n\n\t\t\t// Don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\n\t\t\t// Handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"classes\" ) {\n\t\t\tthis._setOptionClasses( value );\n\t\t}\n\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis._setOptionDisabled( value );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOptionClasses: function( value ) {\n\t\tvar classKey, elements, currentElements;\n\n\t\tfor ( classKey in value ) {\n\t\t\tcurrentElements = this.classesElementLookup[ classKey ];\n\t\t\tif ( value[ classKey ] === this.options.classes[ classKey ] ||\n\t\t\t\t\t!currentElements ||\n\t\t\t\t\t!currentElements.length ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// We are doing this to create a new jQuery object because the _removeClass() call\n\t\t\t// on the next line is going to destroy the reference to the current elements being\n\t\t\t// tracked. We need to save a copy of this collection so that we can add the new classes\n\t\t\t// below.\n\t\t\telements = $( currentElements.get() );\n\t\t\tthis._removeClass( currentElements, classKey );\n\n\t\t\t// We don't use _addClass() here, because that uses this.options.classes\n\t\t\t// for generating the string of classes. We want to use the value passed in from\n\t\t\t// _setOption(), this is the new value of the classes option which was passed to\n\t\t\t// _setOption(). We pass this value directly to _classes().\n\t\t\telements.addClass( this._classes( {\n\t\t\t\telement: elements,\n\t\t\t\tkeys: classKey,\n\t\t\t\tclasses: value,\n\t\t\t\tadd: true\n\t\t\t} ) );\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._toggleClass( this.widget(), this.widgetFullName + \"-disabled\", null, !!value );\n\n\t\t// If the widget is becoming disabled, then nothing is interactive\n\t\tif ( value ) {\n\t\t\tthis._removeClass( this.hoverable, null, \"ui-state-hover\" );\n\t\t\tthis._removeClass( this.focusable, null, \"ui-state-focus\" );\n\t\t}\n\t},\n\n\tenable: function() {\n\t\treturn this._setOptions( { disabled: false } );\n\t},\n\n\tdisable: function() {\n\t\treturn this._setOptions( { disabled: true } );\n\t},\n\n\t_classes: function( options ) {\n\t\tvar full = [];\n\t\tvar that = this;\n\n\t\toptions = $.extend( {\n\t\t\telement: this.element,\n\t\t\tclasses: this.options.classes || {}\n\t\t}, options );\n\n\t\tfunction processClassString( classes, checkOption ) {\n\t\t\tvar current, i;\n\t\t\tfor ( i = 0; i < classes.length; i++ ) {\n\t\t\t\tcurrent = that.classesElementLookup[ classes[ i ] ] || $();\n\t\t\t\tif ( options.add ) {\n\t\t\t\t\tcurrent = $( $.unique( current.get().concat( options.element.get() ) ) );\n\t\t\t\t} else {\n\t\t\t\t\tcurrent = $( current.not( options.element ).get() );\n\t\t\t\t}\n\t\t\t\tthat.classesElementLookup[ classes[ i ] ] = current;\n\t\t\t\tfull.push( classes[ i ] );\n\t\t\t\tif ( checkOption && options.classes[ classes[ i ] ] ) {\n\t\t\t\t\tfull.push( options.classes[ classes[ i ] ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis._on( options.element, {\n\t\t\t\"remove\": \"_untrackClassesElement\"\n\t\t} );\n\n\t\tif ( options.keys ) {\n\t\t\tprocessClassString( options.keys.match( /\\S+/g ) || [], true );\n\t\t}\n\t\tif ( options.extra ) {\n\t\t\tprocessClassString( options.extra.match( /\\S+/g ) || [] );\n\t\t}\n\n\t\treturn full.join( \" \" );\n\t},\n\n\t_untrackClassesElement: function( event ) {\n\t\tvar that = this;\n\t\t$.each( that.classesElementLookup, function( key, value ) {\n\t\t\tif ( $.inArray( event.target, value ) !== -1 ) {\n\t\t\t\tthat.classesElementLookup[ key ] = $( value.not( event.target ).get() );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_removeClass: function( element, keys, extra ) {\n\t\treturn this._toggleClass( element, keys, extra, false );\n\t},\n\n\t_addClass: function( element, keys, extra ) {\n\t\treturn this._toggleClass( element, keys, extra, true );\n\t},\n\n\t_toggleClass: function( element, keys, extra, add ) {\n\t\tadd = ( typeof add === \"boolean\" ) ? add : extra;\n\t\tvar shift = ( typeof element === \"string\" || element === null ),\n\t\t\toptions = {\n\t\t\t\textra: shift ? keys : extra,\n\t\t\t\tkeys: shift ? element : keys,\n\t\t\t\telement: shift ? this.element : element,\n\t\t\t\tadd: add\n\t\t\t};\n\t\toptions.element.toggleClass( this._classes( options ), add );\n\t\treturn this;\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement;\n\t\tvar instance = this;\n\n\t\t// No suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// No element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\n\t\t\t\t// Allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// Copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^([\\w:-]*)\\s*(.*)$/ );\n\t\t\tvar eventName = match[ 1 ] + instance.eventNamespace;\n\t\t\tvar selector = match[ 2 ];\n\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.on( eventName, selector, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.on( eventName, handlerProxy );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = ( eventName || \"\" ).split( \" \" ).join( this.eventNamespace + \" \" ) +\n\t\t\tthis.eventNamespace;\n\t\telement.off( eventName ).off( eventName );\n\n\t\t// Clear the stack to avoid memory leaks (#10056)\n\t\tthis.bindings = $( this.bindings.not( element ).get() );\n\t\tthis.focusable = $( this.focusable.not( element ).get() );\n\t\tthis.hoverable = $( this.hoverable.not( element ).get() );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\tthis._addClass( $( event.currentTarget ), null, \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\tthis._removeClass( $( event.currentTarget ), null, \"ui-state-hover\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\tthis._addClass( $( event.currentTarget ), null, \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\tthis._removeClass( $( event.currentTarget ), null, \"ui-state-focus\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig;\n\t\tvar callback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\n\t\t// The original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// Copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( $.isFunction( callback ) &&\n\t\t\tcallback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\n\t\tvar hasOptions;\n\t\tvar effectName = !options ?\n\t\t\tmethod :\n\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\tdefaultEffect :\n\t\t\t\toptions.effect || defaultEffect;\n\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t}\n\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue( function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t} );\n\t\t}\n\t};\n} );\n\nreturn $.widget;\n\n} ) );\n","// jscs:disable maximumLineLength\n/* jscs:disable requireCamelCaseOrUpperCaseIdentifiers */\n/*!\n * jQuery UI Datepicker 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Datepicker\n//>>group: Widgets\n//>>description: Displays a calendar from an input or inline for selecting dates.\n//>>docs: http://api.jqueryui.com/datepicker/\n//>>demos: http://jqueryui.com/datepicker/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/datepicker.css\n//>>css.theme: ../../themes/base/theme.css\n\n( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [\n\t\t\t\"jquery\",\n\t\t\t\"../version\",\n\t\t\t\"../keycode\"\n\t\t], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}( function( $ ) {\n\n$.extend( $.ui, { datepicker: { version: \"1.12.1\" } } );\n\nvar datepicker_instActive;\n\nfunction datepicker_getZindex( elem ) {\n\tvar position, value;\n\twhile ( elem.length && elem[ 0 ] !== document ) {\n\n\t\t// Ignore z-index if position is set to a value where z-index is ignored by the browser\n\t\t// This makes behavior of this function consistent across browsers\n\t\t// WebKit always returns auto if the element is positioned\n\t\tposition = elem.css( \"position\" );\n\t\tif ( position === \"absolute\" || position === \"relative\" || position === \"fixed\" ) {\n\n\t\t\t// IE returns 0 when zIndex is not specified\n\t\t\t// other browsers return a string\n\t\t\t// we ignore the case of nested elements with an explicit value of 0\n\t\t\t// <div style=\"z-index: -10;\"><div style=\"z-index: 0;\"></div></div>\n\t\t\tvalue = parseInt( elem.css( \"zIndex\" ), 10 );\n\t\t\tif ( !isNaN( value ) && value !== 0 ) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t\telem = elem.parent();\n\t}\n\n\treturn 0;\n}\n/* Date picker manager.\n Use the singleton instance of this class, $.datepicker, to interact with the date picker.\n Settings for (groups of) date pickers are maintained in an instance object,\n allowing multiple different settings on the same page. */\n\nfunction Datepicker() {\n\tthis._curInst = null; // The current instance in use\n\tthis._keyEvent = false; // If the last event was a key event\n\tthis._disabledInputs = []; // List of date picker inputs that have been disabled\n\tthis._datepickerShowing = false; // True if the popup picker is showing , false if not\n\tthis._inDialog = false; // True if showing within a \"dialog\", false if not\n\tthis._mainDivId = \"ui-datepicker-div\"; // The ID of the main datepicker division\n\tthis._inlineClass = \"ui-datepicker-inline\"; // The name of the inline marker class\n\tthis._appendClass = \"ui-datepicker-append\"; // The name of the append marker class\n\tthis._triggerClass = \"ui-datepicker-trigger\"; // The name of the trigger marker class\n\tthis._dialogClass = \"ui-datepicker-dialog\"; // The name of the dialog marker class\n\tthis._disableClass = \"ui-datepicker-disabled\"; // The name of the disabled covering marker class\n\tthis._unselectableClass = \"ui-datepicker-unselectable\"; // The name of the unselectable cell marker class\n\tthis._currentClass = \"ui-datepicker-current-day\"; // The name of the current day marker class\n\tthis._dayOverClass = \"ui-datepicker-days-cell-over\"; // The name of the day hover marker class\n\tthis.regional = []; // Available regional settings, indexed by language code\n\tthis.regional[ \"\" ] = { // Default regional settings\n\t\tcloseText: \"Done\", // Display text for close link\n\t\tprevText: \"Prev\", // Display text for previous month link\n\t\tnextText: \"Next\", // Display text for next month link\n\t\tcurrentText: \"Today\", // Display text for current month link\n\t\tmonthNames: [ \"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\n\t\t\t\"July\",\"August\",\"September\",\"October\",\"November\",\"December\" ], // Names of months for drop-down and formatting\n\t\tmonthNamesShort: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\" ], // For formatting\n\t\tdayNames: [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ], // For formatting\n\t\tdayNamesShort: [ \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\" ], // For formatting\n\t\tdayNamesMin: [ \"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\" ], // Column headings for days starting at Sunday\n\t\tweekHeader: \"Wk\", // Column header for week of the year\n\t\tdateFormat: \"mm/dd/yy\", // See format options on parseDate\n\t\tfirstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...\n\t\tisRTL: false, // True if right-to-left language, false if left-to-right\n\t\tshowMonthAfterYear: false, // True if the year select precedes month, false for month then year\n\t\tyearSuffix: \"\" // Additional text to append to the year in the month headers\n\t};\n\tthis._defaults = { // Global defaults for all the date picker instances\n\t\tshowOn: \"focus\", // \"focus\" for popup on focus,\n\t\t\t// \"button\" for trigger button, or \"both\" for either\n\t\tshowAnim: \"fadeIn\", // Name of jQuery animation for popup\n\t\tshowOptions: {}, // Options for enhanced animations\n\t\tdefaultDate: null, // Used when field is blank: actual date,\n\t\t\t// +/-number for offset from today, null for today\n\t\tappendText: \"\", // Display text following the input box, e.g. showing the format\n\t\tbuttonText: \"...\", // Text for trigger button\n\t\tbuttonImage: \"\", // URL for trigger button image\n\t\tbuttonImageOnly: false, // True if the image appears alone, false if it appears on a button\n\t\thideIfNoPrevNext: false, // True to hide next/previous month links\n\t\t\t// if not applicable, false to just disable them\n\t\tnavigationAsDateFormat: false, // True if date formatting applied to prev/today/next links\n\t\tgotoCurrent: false, // True if today link goes back to current selection instead\n\t\tchangeMonth: false, // True if month can be selected directly, false if only prev/next\n\t\tchangeYear: false, // True if year can be selected directly, false if only prev/next\n\t\tyearRange: \"c-10:c+10\", // Range of years to display in drop-down,\n\t\t\t// either relative to today's year (-nn:+nn), relative to currently displayed year\n\t\t\t// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)\n\t\tshowOtherMonths: false, // True to show dates in other months, false to leave blank\n\t\tselectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable\n\t\tshowWeek: false, // True to show week of the year, false to not show it\n\t\tcalculateWeek: this.iso8601Week, // How to calculate the week of the year,\n\t\t\t// takes a Date and returns the number of the week for it\n\t\tshortYearCutoff: \"+10\", // Short year values < this are in the current century,\n\t\t\t// > this are in the previous century,\n\t\t\t// string value starting with \"+\" for current year + value\n\t\tminDate: null, // The earliest selectable date, or null for no limit\n\t\tmaxDate: null, // The latest selectable date, or null for no limit\n\t\tduration: \"fast\", // Duration of display/closure\n\t\tbeforeShowDay: null, // Function that takes a date and returns an array with\n\t\t\t// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or \"\",\n\t\t\t// [2] = cell title (optional), e.g. $.datepicker.noWeekends\n\t\tbeforeShow: null, // Function that takes an input field and\n\t\t\t// returns a set of custom settings for the date picker\n\t\tonSelect: null, // Define a callback function when a date is selected\n\t\tonChangeMonthYear: null, // Define a callback function when the month or year is changed\n\t\tonClose: null, // Define a callback function when the datepicker is closed\n\t\tnumberOfMonths: 1, // Number of months to show at a time\n\t\tshowCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)\n\t\tstepMonths: 1, // Number of months to step back/forward\n\t\tstepBigMonths: 12, // Number of months to step back/forward for the big links\n\t\taltField: \"\", // Selector for an alternate field to store selected dates into\n\t\taltFormat: \"\", // The date format to use for the alternate field\n\t\tconstrainInput: true, // The input is constrained by the current date format\n\t\tshowButtonPanel: false, // True to show button panel, false to not show it\n\t\tautoSize: false, // True to size the input for the date format, false to leave as is\n\t\tdisabled: false // The initial disabled state\n\t};\n\t$.extend( this._defaults, this.regional[ \"\" ] );\n\tthis.regional.en = $.extend( true, {}, this.regional[ \"\" ] );\n\tthis.regional[ \"en-US\" ] = $.extend( true, {}, this.regional.en );\n\tthis.dpDiv = datepicker_bindHover( $( \"<div id='\" + this._mainDivId + \"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>\" ) );\n}\n\n$.extend( Datepicker.prototype, {\n\t/* Class name added to elements to indicate already configured with a date picker. */\n\tmarkerClassName: \"hasDatepicker\",\n\n\t//Keep track of the maximum number of rows displayed (see #7043)\n\tmaxRows: 4,\n\n\t// TODO rename to \"widget\" when switching to widget factory\n\t_widgetDatepicker: function() {\n\t\treturn this.dpDiv;\n\t},\n\n\t/* Override the default settings for all instances of the date picker.\n\t * @param settings object - the new settings to use as defaults (anonymous object)\n\t * @return the manager object\n\t */\n\tsetDefaults: function( settings ) {\n\t\tdatepicker_extendRemove( this._defaults, settings || {} );\n\t\treturn this;\n\t},\n\n\t/* Attach the date picker to a jQuery selection.\n\t * @param target\telement - the target input field or division or span\n\t * @param settings object - the new settings to use for this date picker instance (anonymous)\n\t */\n\t_attachDatepicker: function( target, settings ) {\n\t\tvar nodeName, inline, inst;\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\tinline = ( nodeName === \"div\" || nodeName === \"span\" );\n\t\tif ( !target.id ) {\n\t\t\tthis.uuid += 1;\n\t\t\ttarget.id = \"dp\" + this.uuid;\n\t\t}\n\t\tinst = this._newInst( $( target ), inline );\n\t\tinst.settings = $.extend( {}, settings || {} );\n\t\tif ( nodeName === \"input\" ) {\n\t\t\tthis._connectDatepicker( target, inst );\n\t\t} else if ( inline ) {\n\t\t\tthis._inlineDatepicker( target, inst );\n\t\t}\n\t},\n\n\t/* Create a new instance object. */\n\t_newInst: function( target, inline ) {\n\t\tvar id = target[ 0 ].id.replace( /([^A-Za-z0-9_\\-])/g, \"\\\\\\\\$1\" ); // escape jQuery meta chars\n\t\treturn { id: id, input: target, // associated target\n\t\t\tselectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection\n\t\t\tdrawMonth: 0, drawYear: 0, // month being drawn\n\t\t\tinline: inline, // is datepicker inline or not\n\t\t\tdpDiv: ( !inline ? this.dpDiv : // presentation div\n\t\t\tdatepicker_bindHover( $( \"<div class='\" + this._inlineClass + \" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>\" ) ) ) };\n\t},\n\n\t/* Attach the date picker to an input field. */\n\t_connectDatepicker: function( target, inst ) {\n\t\tvar input = $( target );\n\t\tinst.append = $( [] );\n\t\tinst.trigger = $( [] );\n\t\tif ( input.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\t\tthis._attachments( input, inst );\n\t\tinput.addClass( this.markerClassName ).on( \"keydown\", this._doKeyDown ).\n\t\t\ton( \"keypress\", this._doKeyPress ).on( \"keyup\", this._doKeyUp );\n\t\tthis._autoSize( inst );\n\t\t$.data( target, \"datepicker\", inst );\n\n\t\t//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)\n\t\tif ( inst.settings.disabled ) {\n\t\t\tthis._disableDatepicker( target );\n\t\t}\n\t},\n\n\t/* Make attachments based on settings. */\n\t_attachments: function( input, inst ) {\n\t\tvar showOn, buttonText, buttonImage,\n\t\t\tappendText = this._get( inst, \"appendText\" ),\n\t\t\tisRTL = this._get( inst, \"isRTL\" );\n\n\t\tif ( inst.append ) {\n\t\t\tinst.append.remove();\n\t\t}\n\t\tif ( appendText ) {\n\t\t\tinst.append = $( \"<span class='\" + this._appendClass + \"'>\" + appendText + \"</span>\" );\n\t\t\tinput[ isRTL ? \"before\" : \"after\" ]( inst.append );\n\t\t}\n\n\t\tinput.off( \"focus\", this._showDatepicker );\n\n\t\tif ( inst.trigger ) {\n\t\t\tinst.trigger.remove();\n\t\t}\n\n\t\tshowOn = this._get( inst, \"showOn\" );\n\t\tif ( showOn === \"focus\" || showOn === \"both\" ) { // pop-up date picker when in the marked field\n\t\t\tinput.on( \"focus\", this._showDatepicker );\n\t\t}\n\t\tif ( showOn === \"button\" || showOn === \"both\" ) { // pop-up date picker when button clicked\n\t\t\tbuttonText = this._get( inst, \"buttonText\" );\n\t\t\tbuttonImage = this._get( inst, \"buttonImage\" );\n\t\t\tinst.trigger = $( this._get( inst, \"buttonImageOnly\" ) ?\n\t\t\t\t$( \"<img/>\" ).addClass( this._triggerClass ).\n\t\t\t\t\tattr( { src: buttonImage, alt: buttonText, title: buttonText } ) :\n\t\t\t\t$( \"<button type='button'></button>\" ).addClass( this._triggerClass ).\n\t\t\t\t\thtml( !buttonImage ? buttonText : $( \"<img/>\" ).attr(\n\t\t\t\t\t{ src:buttonImage, alt:buttonText, title:buttonText } ) ) );\n\t\t\tinput[ isRTL ? \"before\" : \"after\" ]( inst.trigger );\n\t\t\tinst.trigger.on( \"click\", function() {\n\t\t\t\tif ( $.datepicker._datepickerShowing && $.datepicker._lastInput === input[ 0 ] ) {\n\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t} else if ( $.datepicker._datepickerShowing && $.datepicker._lastInput !== input[ 0 ] ) {\n\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t\t$.datepicker._showDatepicker( input[ 0 ] );\n\t\t\t\t} else {\n\t\t\t\t\t$.datepicker._showDatepicker( input[ 0 ] );\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t} );\n\t\t}\n\t},\n\n\t/* Apply the maximum length for the date format. */\n\t_autoSize: function( inst ) {\n\t\tif ( this._get( inst, \"autoSize\" ) && !inst.inline ) {\n\t\t\tvar findMax, max, maxI, i,\n\t\t\t\tdate = new Date( 2009, 12 - 1, 20 ), // Ensure double digits\n\t\t\t\tdateFormat = this._get( inst, \"dateFormat\" );\n\n\t\t\tif ( dateFormat.match( /[DM]/ ) ) {\n\t\t\t\tfindMax = function( names ) {\n\t\t\t\t\tmax = 0;\n\t\t\t\t\tmaxI = 0;\n\t\t\t\t\tfor ( i = 0; i < names.length; i++ ) {\n\t\t\t\t\t\tif ( names[ i ].length > max ) {\n\t\t\t\t\t\t\tmax = names[ i ].length;\n\t\t\t\t\t\t\tmaxI = i;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn maxI;\n\t\t\t\t};\n\t\t\t\tdate.setMonth( findMax( this._get( inst, ( dateFormat.match( /MM/ ) ?\n\t\t\t\t\t\"monthNames\" : \"monthNamesShort\" ) ) ) );\n\t\t\t\tdate.setDate( findMax( this._get( inst, ( dateFormat.match( /DD/ ) ?\n\t\t\t\t\t\"dayNames\" : \"dayNamesShort\" ) ) ) + 20 - date.getDay() );\n\t\t\t}\n\t\t\tinst.input.attr( \"size\", this._formatDate( inst, date ).length );\n\t\t}\n\t},\n\n\t/* Attach an inline date picker to a div. */\n\t_inlineDatepicker: function( target, inst ) {\n\t\tvar divSpan = $( target );\n\t\tif ( divSpan.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\t\tdivSpan.addClass( this.markerClassName ).append( inst.dpDiv );\n\t\t$.data( target, \"datepicker\", inst );\n\t\tthis._setDate( inst, this._getDefaultDate( inst ), true );\n\t\tthis._updateDatepicker( inst );\n\t\tthis._updateAlternate( inst );\n\n\t\t//If disabled option is true, disable the datepicker before showing it (see ticket #5665)\n\t\tif ( inst.settings.disabled ) {\n\t\t\tthis._disableDatepicker( target );\n\t\t}\n\n\t\t// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements\n\t\t// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height\n\t\tinst.dpDiv.css( \"display\", \"block\" );\n\t},\n\n\t/* Pop-up the date picker in a \"dialog\" box.\n\t * @param input element - ignored\n\t * @param date\tstring or Date - the initial date to display\n\t * @param onSelect function - the function to call when a date is selected\n\t * @param settings object - update the dialog date picker instance's settings (anonymous object)\n\t * @param pos int[2] - coordinates for the dialog's position within the screen or\n\t *\t\t\t\t\tevent - with x/y coordinates or\n\t *\t\t\t\t\tleave empty for default (screen centre)\n\t * @return the manager object\n\t */\n\t_dialogDatepicker: function( input, date, onSelect, settings, pos ) {\n\t\tvar id, browserWidth, browserHeight, scrollX, scrollY,\n\t\t\tinst = this._dialogInst; // internal instance\n\n\t\tif ( !inst ) {\n\t\t\tthis.uuid += 1;\n\t\t\tid = \"dp\" + this.uuid;\n\t\t\tthis._dialogInput = $( \"<input type='text' id='\" + id +\n\t\t\t\t\"' style='position: absolute; top: -100px; width: 0px;'/>\" );\n\t\t\tthis._dialogInput.on( \"keydown\", this._doKeyDown );\n\t\t\t$( \"body\" ).append( this._dialogInput );\n\t\t\tinst = this._dialogInst = this._newInst( this._dialogInput, false );\n\t\t\tinst.settings = {};\n\t\t\t$.data( this._dialogInput[ 0 ], \"datepicker\", inst );\n\t\t}\n\t\tdatepicker_extendRemove( inst.settings, settings || {} );\n\t\tdate = ( date && date.constructor === Date ? this._formatDate( inst, date ) : date );\n\t\tthis._dialogInput.val( date );\n\n\t\tthis._pos = ( pos ? ( pos.length ? pos : [ pos.pageX, pos.pageY ] ) : null );\n\t\tif ( !this._pos ) {\n\t\t\tbrowserWidth = document.documentElement.clientWidth;\n\t\t\tbrowserHeight = document.documentElement.clientHeight;\n\t\t\tscrollX = document.documentElement.scrollLeft || document.body.scrollLeft;\n\t\t\tscrollY = document.documentElement.scrollTop || document.body.scrollTop;\n\t\t\tthis._pos = // should use actual width/height below\n\t\t\t\t[ ( browserWidth / 2 ) - 100 + scrollX, ( browserHeight / 2 ) - 150 + scrollY ];\n\t\t}\n\n\t\t// Move input on screen for focus, but hidden behind dialog\n\t\tthis._dialogInput.css( \"left\", ( this._pos[ 0 ] + 20 ) + \"px\" ).css( \"top\", this._pos[ 1 ] + \"px\" );\n\t\tinst.settings.onSelect = onSelect;\n\t\tthis._inDialog = true;\n\t\tthis.dpDiv.addClass( this._dialogClass );\n\t\tthis._showDatepicker( this._dialogInput[ 0 ] );\n\t\tif ( $.blockUI ) {\n\t\t\t$.blockUI( this.dpDiv );\n\t\t}\n\t\t$.data( this._dialogInput[ 0 ], \"datepicker\", inst );\n\t\treturn this;\n\t},\n\n\t/* Detach a datepicker from its control.\n\t * @param target\telement - the target input field or division or span\n\t */\n\t_destroyDatepicker: function( target ) {\n\t\tvar nodeName,\n\t\t\t$target = $( target ),\n\t\t\tinst = $.data( target, \"datepicker\" );\n\n\t\tif ( !$target.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\t$.removeData( target, \"datepicker\" );\n\t\tif ( nodeName === \"input\" ) {\n\t\t\tinst.append.remove();\n\t\t\tinst.trigger.remove();\n\t\t\t$target.removeClass( this.markerClassName ).\n\t\t\t\toff( \"focus\", this._showDatepicker ).\n\t\t\t\toff( \"keydown\", this._doKeyDown ).\n\t\t\t\toff( \"keypress\", this._doKeyPress ).\n\t\t\t\toff( \"keyup\", this._doKeyUp );\n\t\t} else if ( nodeName === \"div\" || nodeName === \"span\" ) {\n\t\t\t$target.removeClass( this.markerClassName ).empty();\n\t\t}\n\n\t\tif ( datepicker_instActive === inst ) {\n\t\t\tdatepicker_instActive = null;\n\t\t}\n\t},\n\n\t/* Enable the date picker to a jQuery selection.\n\t * @param target\telement - the target input field or division or span\n\t */\n\t_enableDatepicker: function( target ) {\n\t\tvar nodeName, inline,\n\t\t\t$target = $( target ),\n\t\t\tinst = $.data( target, \"datepicker\" );\n\n\t\tif ( !$target.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\tif ( nodeName === \"input\" ) {\n\t\t\ttarget.disabled = false;\n\t\t\tinst.trigger.filter( \"button\" ).\n\t\t\t\teach( function() { this.disabled = false; } ).end().\n\t\t\t\tfilter( \"img\" ).css( { opacity: \"1.0\", cursor: \"\" } );\n\t\t} else if ( nodeName === \"div\" || nodeName === \"span\" ) {\n\t\t\tinline = $target.children( \".\" + this._inlineClass );\n\t\t\tinline.children().removeClass( \"ui-state-disabled\" );\n\t\t\tinline.find( \"select.ui-datepicker-month, select.ui-datepicker-year\" ).\n\t\t\t\tprop( \"disabled\", false );\n\t\t}\n\t\tthis._disabledInputs = $.map( this._disabledInputs,\n\t\t\tfunction( value ) { return ( value === target ? null : value ); } ); // delete entry\n\t},\n\n\t/* Disable the date picker to a jQuery selection.\n\t * @param target\telement - the target input field or division or span\n\t */\n\t_disableDatepicker: function( target ) {\n\t\tvar nodeName, inline,\n\t\t\t$target = $( target ),\n\t\t\tinst = $.data( target, \"datepicker\" );\n\n\t\tif ( !$target.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\tif ( nodeName === \"input\" ) {\n\t\t\ttarget.disabled = true;\n\t\t\tinst.trigger.filter( \"button\" ).\n\t\t\t\teach( function() { this.disabled = true; } ).end().\n\t\t\t\tfilter( \"img\" ).css( { opacity: \"0.5\", cursor: \"default\" } );\n\t\t} else if ( nodeName === \"div\" || nodeName === \"span\" ) {\n\t\t\tinline = $target.children( \".\" + this._inlineClass );\n\t\t\tinline.children().addClass( \"ui-state-disabled\" );\n\t\t\tinline.find( \"select.ui-datepicker-month, select.ui-datepicker-year\" ).\n\t\t\t\tprop( \"disabled\", true );\n\t\t}\n\t\tthis._disabledInputs = $.map( this._disabledInputs,\n\t\t\tfunction( value ) { return ( value === target ? null : value ); } ); // delete entry\n\t\tthis._disabledInputs[ this._disabledInputs.length ] = target;\n\t},\n\n\t/* Is the first field in a jQuery collection disabled as a datepicker?\n\t * @param target\telement - the target input field or division or span\n\t * @return boolean - true if disabled, false if enabled\n\t */\n\t_isDisabledDatepicker: function( target ) {\n\t\tif ( !target ) {\n\t\t\treturn false;\n\t\t}\n\t\tfor ( var i = 0; i < this._disabledInputs.length; i++ ) {\n\t\t\tif ( this._disabledInputs[ i ] === target ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\n\t/* Retrieve the instance data for the target control.\n\t * @param target element - the target input field or division or span\n\t * @return object - the associated instance data\n\t * @throws error if a jQuery problem getting data\n\t */\n\t_getInst: function( target ) {\n\t\ttry {\n\t\t\treturn $.data( target, \"datepicker\" );\n\t\t}\n\t\tcatch ( err ) {\n\t\t\tthrow \"Missing instance data for this datepicker\";\n\t\t}\n\t},\n\n\t/* Update or retrieve the settings for a date picker attached to an input field or division.\n\t * @param target element - the target input field or division or span\n\t * @param name\tobject - the new settings to update or\n\t *\t\t\t\tstring - the name of the setting to change or retrieve,\n\t *\t\t\t\twhen retrieving also \"all\" for all instance settings or\n\t *\t\t\t\t\"defaults\" for all global defaults\n\t * @param value any - the new value for the setting\n\t *\t\t\t\t(omit if above is an object or to retrieve a value)\n\t */\n\t_optionDatepicker: function( target, name, value ) {\n\t\tvar settings, date, minDate, maxDate,\n\t\t\tinst = this._getInst( target );\n\n\t\tif ( arguments.length === 2 && typeof name === \"string\" ) {\n\t\t\treturn ( name === \"defaults\" ? $.extend( {}, $.datepicker._defaults ) :\n\t\t\t\t( inst ? ( name === \"all\" ? $.extend( {}, inst.settings ) :\n\t\t\t\tthis._get( inst, name ) ) : null ) );\n\t\t}\n\n\t\tsettings = name || {};\n\t\tif ( typeof name === \"string\" ) {\n\t\t\tsettings = {};\n\t\t\tsettings[ name ] = value;\n\t\t}\n\n\t\tif ( inst ) {\n\t\t\tif ( this._curInst === inst ) {\n\t\t\t\tthis._hideDatepicker();\n\t\t\t}\n\n\t\t\tdate = this._getDateDatepicker( target, true );\n\t\t\tminDate = this._getMinMaxDate( inst, \"min\" );\n\t\t\tmaxDate = this._getMinMaxDate( inst, \"max\" );\n\t\t\tdatepicker_extendRemove( inst.settings, settings );\n\n\t\t\t// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided\n\t\t\tif ( minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined ) {\n\t\t\t\tinst.settings.minDate = this._formatDate( inst, minDate );\n\t\t\t}\n\t\t\tif ( maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined ) {\n\t\t\t\tinst.settings.maxDate = this._formatDate( inst, maxDate );\n\t\t\t}\n\t\t\tif ( \"disabled\" in settings ) {\n\t\t\t\tif ( settings.disabled ) {\n\t\t\t\t\tthis._disableDatepicker( target );\n\t\t\t\t} else {\n\t\t\t\t\tthis._enableDatepicker( target );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._attachments( $( target ), inst );\n\t\t\tthis._autoSize( inst );\n\t\t\tthis._setDate( inst, date );\n\t\t\tthis._updateAlternate( inst );\n\t\t\tthis._updateDatepicker( inst );\n\t\t}\n\t},\n\n\t// Change method deprecated\n\t_changeDatepicker: function( target, name, value ) {\n\t\tthis._optionDatepicker( target, name, value );\n\t},\n\n\t/* Redraw the date picker attached to an input field or division.\n\t * @param target element - the target input field or division or span\n\t */\n\t_refreshDatepicker: function( target ) {\n\t\tvar inst = this._getInst( target );\n\t\tif ( inst ) {\n\t\t\tthis._updateDatepicker( inst );\n\t\t}\n\t},\n\n\t/* Set the dates for a jQuery selection.\n\t * @param target element - the target input field or division or span\n\t * @param date\tDate - the new date\n\t */\n\t_setDateDatepicker: function( target, date ) {\n\t\tvar inst = this._getInst( target );\n\t\tif ( inst ) {\n\t\t\tthis._setDate( inst, date );\n\t\t\tthis._updateDatepicker( inst );\n\t\t\tthis._updateAlternate( inst );\n\t\t}\n\t},\n\n\t/* Get the date(s) for the first entry in a jQuery selection.\n\t * @param target element - the target input field or division or span\n\t * @param noDefault boolean - true if no default date is to be used\n\t * @return Date - the current date\n\t */\n\t_getDateDatepicker: function( target, noDefault ) {\n\t\tvar inst = this._getInst( target );\n\t\tif ( inst && !inst.inline ) {\n\t\t\tthis._setDateFromField( inst, noDefault );\n\t\t}\n\t\treturn ( inst ? this._getDate( inst ) : null );\n\t},\n\n\t/* Handle keystrokes. */\n\t_doKeyDown: function( event ) {\n\t\tvar onSelect, dateStr, sel,\n\t\t\tinst = $.datepicker._getInst( event.target ),\n\t\t\thandled = true,\n\t\t\tisRTL = inst.dpDiv.is( \".ui-datepicker-rtl\" );\n\n\t\tinst._keyEvent = true;\n\t\tif ( $.datepicker._datepickerShowing ) {\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\tcase 9: $.datepicker._hideDatepicker();\n\t\t\t\t\t\thandled = false;\n\t\t\t\t\t\tbreak; // hide on tab out\n\t\t\t\tcase 13: sel = $( \"td.\" + $.datepicker._dayOverClass + \":not(.\" +\n\t\t\t\t\t\t\t\t\t$.datepicker._currentClass + \")\", inst.dpDiv );\n\t\t\t\t\t\tif ( sel[ 0 ] ) {\n\t\t\t\t\t\t\t$.datepicker._selectDay( event.target, inst.selectedMonth, inst.selectedYear, sel[ 0 ] );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonSelect = $.datepicker._get( inst, \"onSelect\" );\n\t\t\t\t\t\tif ( onSelect ) {\n\t\t\t\t\t\t\tdateStr = $.datepicker._formatDate( inst );\n\n\t\t\t\t\t\t\t// Trigger custom callback\n\t\t\t\t\t\t\tonSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn false; // don't submit the form\n\t\t\t\tcase 27: $.datepicker._hideDatepicker();\n\t\t\t\t\t\tbreak; // hide on escape\n\t\t\t\tcase 33: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?\n\t\t\t\t\t\t\t-$.datepicker._get( inst, \"stepBigMonths\" ) :\n\t\t\t\t\t\t\t-$.datepicker._get( inst, \"stepMonths\" ) ), \"M\" );\n\t\t\t\t\t\tbreak; // previous month/year on page up/+ ctrl\n\t\t\t\tcase 34: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?\n\t\t\t\t\t\t\t+$.datepicker._get( inst, \"stepBigMonths\" ) :\n\t\t\t\t\t\t\t+$.datepicker._get( inst, \"stepMonths\" ) ), \"M\" );\n\t\t\t\t\t\tbreak; // next month/year on page down/+ ctrl\n\t\t\t\tcase 35: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._clearDate( event.target );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // clear on ctrl or command +end\n\t\t\t\tcase 36: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._gotoToday( event.target );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // current on ctrl or command +home\n\t\t\t\tcase 37: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, ( isRTL ? +1 : -1 ), \"D\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\n\t\t\t\t\t\t// -1 day on ctrl or command +left\n\t\t\t\t\t\tif ( event.originalEvent.altKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, ( event.ctrlKey ?\n\t\t\t\t\t\t\t\t-$.datepicker._get( inst, \"stepBigMonths\" ) :\n\t\t\t\t\t\t\t\t-$.datepicker._get( inst, \"stepMonths\" ) ), \"M\" );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// next month/year on alt +left on Mac\n\t\t\t\t\t\tbreak;\n\t\t\t\tcase 38: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, -7, \"D\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // -1 week on ctrl or command +up\n\t\t\t\tcase 39: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, ( isRTL ? -1 : +1 ), \"D\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\n\t\t\t\t\t\t// +1 day on ctrl or command +right\n\t\t\t\t\t\tif ( event.originalEvent.altKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, ( event.ctrlKey ?\n\t\t\t\t\t\t\t\t+$.datepicker._get( inst, \"stepBigMonths\" ) :\n\t\t\t\t\t\t\t\t+$.datepicker._get( inst, \"stepMonths\" ) ), \"M\" );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// next month/year on alt +right\n\t\t\t\t\t\tbreak;\n\t\t\t\tcase 40: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, +7, \"D\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // +1 week on ctrl or command +down\n\t\t\t\tdefault: handled = false;\n\t\t\t}\n\t\t} else if ( event.keyCode === 36 && event.ctrlKey ) { // display the date picker on ctrl+home\n\t\t\t$.datepicker._showDatepicker( this );\n\t\t} else {\n\t\t\thandled = false;\n\t\t}\n\n\t\tif ( handled ) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t},\n\n\t/* Filter entered characters - based on date format. */\n\t_doKeyPress: function( event ) {\n\t\tvar chars, chr,\n\t\t\tinst = $.datepicker._getInst( event.target );\n\n\t\tif ( $.datepicker._get( inst, \"constrainInput\" ) ) {\n\t\t\tchars = $.datepicker._possibleChars( $.datepicker._get( inst, \"dateFormat\" ) );\n\t\t\tchr = String.fromCharCode( event.charCode == null ? event.keyCode : event.charCode );\n\t\t\treturn event.ctrlKey || event.metaKey || ( chr < \" \" || !chars || chars.indexOf( chr ) > -1 );\n\t\t}\n\t},\n\n\t/* Synchronise manual entry and field/alternate field. */\n\t_doKeyUp: function( event ) {\n\t\tvar date,\n\t\t\tinst = $.datepicker._getInst( event.target );\n\n\t\tif ( inst.input.val() !== inst.lastVal ) {\n\t\t\ttry {\n\t\t\t\tdate = $.datepicker.parseDate( $.datepicker._get( inst, \"dateFormat\" ),\n\t\t\t\t\t( inst.input ? inst.input.val() : null ),\n\t\t\t\t\t$.datepicker._getFormatConfig( inst ) );\n\n\t\t\t\tif ( date ) { // only if valid\n\t\t\t\t\t$.datepicker._setDateFromField( inst );\n\t\t\t\t\t$.datepicker._updateAlternate( inst );\n\t\t\t\t\t$.datepicker._updateDatepicker( inst );\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch ( err ) {\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t},\n\n\t/* Pop-up the date picker for a given input field.\n\t * If false returned from beforeShow event handler do not show.\n\t * @param input element - the input field attached to the date picker or\n\t *\t\t\t\t\tevent - if triggered by focus\n\t */\n\t_showDatepicker: function( input ) {\n\t\tinput = input.target || input;\n\t\tif ( input.nodeName.toLowerCase() !== \"input\" ) { // find from button/image trigger\n\t\t\tinput = $( \"input\", input.parentNode )[ 0 ];\n\t\t}\n\n\t\tif ( $.datepicker._isDisabledDatepicker( input ) || $.datepicker._lastInput === input ) { // already here\n\t\t\treturn;\n\t\t}\n\n\t\tvar inst, beforeShow, beforeShowSettings, isFixed,\n\t\t\toffset, showAnim, duration;\n\n\t\tinst = $.datepicker._getInst( input );\n\t\tif ( $.datepicker._curInst && $.datepicker._curInst !== inst ) {\n\t\t\t$.datepicker._curInst.dpDiv.stop( true, true );\n\t\t\tif ( inst && $.datepicker._datepickerShowing ) {\n\t\t\t\t$.datepicker._hideDatepicker( $.datepicker._curInst.input[ 0 ] );\n\t\t\t}\n\t\t}\n\n\t\tbeforeShow = $.datepicker._get( inst, \"beforeShow\" );\n\t\tbeforeShowSettings = beforeShow ? beforeShow.apply( input, [ input, inst ] ) : {};\n\t\tif ( beforeShowSettings === false ) {\n\t\t\treturn;\n\t\t}\n\t\tdatepicker_extendRemove( inst.settings, beforeShowSettings );\n\n\t\tinst.lastVal = null;\n\t\t$.datepicker._lastInput = input;\n\t\t$.datepicker._setDateFromField( inst );\n\n\t\tif ( $.datepicker._inDialog ) { // hide cursor\n\t\t\tinput.value = \"\";\n\t\t}\n\t\tif ( !$.datepicker._pos ) { // position below input\n\t\t\t$.datepicker._pos = $.datepicker._findPos( input );\n\t\t\t$.datepicker._pos[ 1 ] += input.offsetHeight; // add the height\n\t\t}\n\n\t\tisFixed = false;\n\t\t$( input ).parents().each( function() {\n\t\t\tisFixed |= $( this ).css( \"position\" ) === \"fixed\";\n\t\t\treturn !isFixed;\n\t\t} );\n\n\t\toffset = { left: $.datepicker._pos[ 0 ], top: $.datepicker._pos[ 1 ] };\n\t\t$.datepicker._pos = null;\n\n\t\t//to avoid flashes on Firefox\n\t\tinst.dpDiv.empty();\n\n\t\t// determine sizing offscreen\n\t\tinst.dpDiv.css( { position: \"absolute\", display: \"block\", top: \"-1000px\" } );\n\t\t$.datepicker._updateDatepicker( inst );\n\n\t\t// fix width for dynamic number of date pickers\n\t\t// and adjust position before showing\n\t\toffset = $.datepicker._checkOffset( inst, offset, isFixed );\n\t\tinst.dpDiv.css( { position: ( $.datepicker._inDialog && $.blockUI ?\n\t\t\t\"static\" : ( isFixed ? \"fixed\" : \"absolute\" ) ), display: \"none\",\n\t\t\tleft: offset.left + \"px\", top: offset.top + \"px\" } );\n\n\t\tif ( !inst.inline ) {\n\t\t\tshowAnim = $.datepicker._get( inst, \"showAnim\" );\n\t\t\tduration = $.datepicker._get( inst, \"duration\" );\n\t\t\tinst.dpDiv.css( \"z-index\", datepicker_getZindex( $( input ) ) + 1 );\n\t\t\t$.datepicker._datepickerShowing = true;\n\n\t\t\tif ( $.effects && $.effects.effect[ showAnim ] ) {\n\t\t\t\tinst.dpDiv.show( showAnim, $.datepicker._get( inst, \"showOptions\" ), duration );\n\t\t\t} else {\n\t\t\t\tinst.dpDiv[ showAnim || \"show\" ]( showAnim ? duration : null );\n\t\t\t}\n\n\t\t\tif ( $.datepicker._shouldFocusInput( inst ) ) {\n\t\t\t\tinst.input.trigger( \"focus\" );\n\t\t\t}\n\n\t\t\t$.datepicker._curInst = inst;\n\t\t}\n\t},\n\n\t/* Generate the date picker content. */\n\t_updateDatepicker: function( inst ) {\n\t\tthis.maxRows = 4; //Reset the max number of rows being displayed (see #7043)\n\t\tdatepicker_instActive = inst; // for delegate hover events\n\t\tinst.dpDiv.empty().append( this._generateHTML( inst ) );\n\t\tthis._attachHandlers( inst );\n\n\t\tvar origyearshtml,\n\t\t\tnumMonths = this._getNumberOfMonths( inst ),\n\t\t\tcols = numMonths[ 1 ],\n\t\t\twidth = 17,\n\t\t\tactiveCell = inst.dpDiv.find( \".\" + this._dayOverClass + \" a\" );\n\n\t\tif ( activeCell.length > 0 ) {\n\t\t\tdatepicker_handleMouseover.apply( activeCell.get( 0 ) );\n\t\t}\n\n\t\tinst.dpDiv.removeClass( \"ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4\" ).width( \"\" );\n\t\tif ( cols > 1 ) {\n\t\t\tinst.dpDiv.addClass( \"ui-datepicker-multi-\" + cols ).css( \"width\", ( width * cols ) + \"em\" );\n\t\t}\n\t\tinst.dpDiv[ ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ? \"add\" : \"remove\" ) +\n\t\t\t\"Class\" ]( \"ui-datepicker-multi\" );\n\t\tinst.dpDiv[ ( this._get( inst, \"isRTL\" ) ? \"add\" : \"remove\" ) +\n\t\t\t\"Class\" ]( \"ui-datepicker-rtl\" );\n\n\t\tif ( inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) {\n\t\t\tinst.input.trigger( \"focus\" );\n\t\t}\n\n\t\t// Deffered render of the years select (to avoid flashes on Firefox)\n\t\tif ( inst.yearshtml ) {\n\t\t\torigyearshtml = inst.yearshtml;\n\t\t\tsetTimeout( function() {\n\n\t\t\t\t//assure that inst.yearshtml didn't change.\n\t\t\t\tif ( origyearshtml === inst.yearshtml && inst.yearshtml ) {\n\t\t\t\t\tinst.dpDiv.find( \"select.ui-datepicker-year:first\" ).replaceWith( inst.yearshtml );\n\t\t\t\t}\n\t\t\t\torigyearshtml = inst.yearshtml = null;\n\t\t\t}, 0 );\n\t\t}\n\t},\n\n\t// #6694 - don't focus the input if it's already focused\n\t// this breaks the change event in IE\n\t// Support: IE and jQuery <1.9\n\t_shouldFocusInput: function( inst ) {\n\t\treturn inst.input && inst.input.is( \":visible\" ) && !inst.input.is( \":disabled\" ) && !inst.input.is( \":focus\" );\n\t},\n\n\t/* Check positioning to remain on screen. */\n\t_checkOffset: function( inst, offset, isFixed ) {\n\t\tvar dpWidth = inst.dpDiv.outerWidth(),\n\t\t\tdpHeight = inst.dpDiv.outerHeight(),\n\t\t\tinputWidth = inst.input ? inst.input.outerWidth() : 0,\n\t\t\tinputHeight = inst.input ? inst.input.outerHeight() : 0,\n\t\t\tviewWidth = document.documentElement.clientWidth + ( isFixed ? 0 : $( document ).scrollLeft() ),\n\t\t\tviewHeight = document.documentElement.clientHeight + ( isFixed ? 0 : $( document ).scrollTop() );\n\n\t\toffset.left -= ( this._get( inst, \"isRTL\" ) ? ( dpWidth - inputWidth ) : 0 );\n\t\toffset.left -= ( isFixed && offset.left === inst.input.offset().left ) ? $( document ).scrollLeft() : 0;\n\t\toffset.top -= ( isFixed && offset.top === ( inst.input.offset().top + inputHeight ) ) ? $( document ).scrollTop() : 0;\n\n\t\t// Now check if datepicker is showing outside window viewport - move to a better place if so.\n\t\toffset.left -= Math.min( offset.left, ( offset.left + dpWidth > viewWidth && viewWidth > dpWidth ) ?\n\t\t\tMath.abs( offset.left + dpWidth - viewWidth ) : 0 );\n\t\toffset.top -= Math.min( offset.top, ( offset.top + dpHeight > viewHeight && viewHeight > dpHeight ) ?\n\t\t\tMath.abs( dpHeight + inputHeight ) : 0 );\n\n\t\treturn offset;\n\t},\n\n\t/* Find an object's position on the screen. */\n\t_findPos: function( obj ) {\n\t\tvar position,\n\t\t\tinst = this._getInst( obj ),\n\t\t\tisRTL = this._get( inst, \"isRTL\" );\n\n\t\twhile ( obj && ( obj.type === \"hidden\" || obj.nodeType !== 1 || $.expr.filters.hidden( obj ) ) ) {\n\t\t\tobj = obj[ isRTL ? \"previousSibling\" : \"nextSibling\" ];\n\t\t}\n\n\t\tposition = $( obj ).offset();\n\t\treturn [ position.left, position.top ];\n\t},\n\n\t/* Hide the date picker from view.\n\t * @param input element - the input field attached to the date picker\n\t */\n\t_hideDatepicker: function( input ) {\n\t\tvar showAnim, duration, postProcess, onClose,\n\t\t\tinst = this._curInst;\n\n\t\tif ( !inst || ( input && inst !== $.data( input, \"datepicker\" ) ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this._datepickerShowing ) {\n\t\t\tshowAnim = this._get( inst, \"showAnim\" );\n\t\t\tduration = this._get( inst, \"duration\" );\n\t\t\tpostProcess = function() {\n\t\t\t\t$.datepicker._tidyDialog( inst );\n\t\t\t};\n\n\t\t\t// DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed\n\t\t\tif ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) {\n\t\t\t\tinst.dpDiv.hide( showAnim, $.datepicker._get( inst, \"showOptions\" ), duration, postProcess );\n\t\t\t} else {\n\t\t\t\tinst.dpDiv[ ( showAnim === \"slideDown\" ? \"slideUp\" :\n\t\t\t\t\t( showAnim === \"fadeIn\" ? \"fadeOut\" : \"hide\" ) ) ]( ( showAnim ? duration : null ), postProcess );\n\t\t\t}\n\n\t\t\tif ( !showAnim ) {\n\t\t\t\tpostProcess();\n\t\t\t}\n\t\t\tthis._datepickerShowing = false;\n\n\t\t\tonClose = this._get( inst, \"onClose\" );\n\t\t\tif ( onClose ) {\n\t\t\t\tonClose.apply( ( inst.input ? inst.input[ 0 ] : null ), [ ( inst.input ? inst.input.val() : \"\" ), inst ] );\n\t\t\t}\n\n\t\t\tthis._lastInput = null;\n\t\t\tif ( this._inDialog ) {\n\t\t\t\tthis._dialogInput.css( { position: \"absolute\", left: \"0\", top: \"-100px\" } );\n\t\t\t\tif ( $.blockUI ) {\n\t\t\t\t\t$.unblockUI();\n\t\t\t\t\t$( \"body\" ).append( this.dpDiv );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._inDialog = false;\n\t\t}\n\t},\n\n\t/* Tidy up after a dialog display. */\n\t_tidyDialog: function( inst ) {\n\t\tinst.dpDiv.removeClass( this._dialogClass ).off( \".ui-datepicker-calendar\" );\n\t},\n\n\t/* Close date picker if clicked elsewhere. */\n\t_checkExternalClick: function( event ) {\n\t\tif ( !$.datepicker._curInst ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar $target = $( event.target ),\n\t\t\tinst = $.datepicker._getInst( $target[ 0 ] );\n\n\t\tif ( ( ( $target[ 0 ].id !== $.datepicker._mainDivId &&\n\t\t\t\t$target.parents( \"#\" + $.datepicker._mainDivId ).length === 0 &&\n\t\t\t\t!$target.hasClass( $.datepicker.markerClassName ) &&\n\t\t\t\t!$target.closest( \".\" + $.datepicker._triggerClass ).length &&\n\t\t\t\t$.datepicker._datepickerShowing && !( $.datepicker._inDialog && $.blockUI ) ) ) ||\n\t\t\t( $target.hasClass( $.datepicker.markerClassName ) && $.datepicker._curInst !== inst ) ) {\n\t\t\t\t$.datepicker._hideDatepicker();\n\t\t}\n\t},\n\n\t/* Adjust one of the date sub-fields. */\n\t_adjustDate: function( id, offset, period ) {\n\t\tvar target = $( id ),\n\t\t\tinst = this._getInst( target[ 0 ] );\n\n\t\tif ( this._isDisabledDatepicker( target[ 0 ] ) ) {\n\t\t\treturn;\n\t\t}\n\t\tthis._adjustInstDate( inst, offset +\n\t\t\t( period === \"M\" ? this._get( inst, \"showCurrentAtPos\" ) : 0 ), // undo positioning\n\t\t\tperiod );\n\t\tthis._updateDatepicker( inst );\n\t},\n\n\t/* Action for current link. */\n\t_gotoToday: function( id ) {\n\t\tvar date,\n\t\t\ttarget = $( id ),\n\t\t\tinst = this._getInst( target[ 0 ] );\n\n\t\tif ( this._get( inst, \"gotoCurrent\" ) && inst.currentDay ) {\n\t\t\tinst.selectedDay = inst.currentDay;\n\t\t\tinst.drawMonth = inst.selectedMonth = inst.currentMonth;\n\t\t\tinst.drawYear = inst.selectedYear = inst.currentYear;\n\t\t} else {\n\t\t\tdate = new Date();\n\t\t\tinst.selectedDay = date.getDate();\n\t\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\n\t\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\n\t\t}\n\t\tthis._notifyChange( inst );\n\t\tthis._adjustDate( target );\n\t},\n\n\t/* Action for selecting a new month/year. */\n\t_selectMonthYear: function( id, select, period ) {\n\t\tvar target = $( id ),\n\t\t\tinst = this._getInst( target[ 0 ] );\n\n\t\tinst[ \"selected\" + ( period === \"M\" ? \"Month\" : \"Year\" ) ] =\n\t\tinst[ \"draw\" + ( period === \"M\" ? \"Month\" : \"Year\" ) ] =\n\t\t\tparseInt( select.options[ select.selectedIndex ].value, 10 );\n\n\t\tthis._notifyChange( inst );\n\t\tthis._adjustDate( target );\n\t},\n\n\t/* Action for selecting a day. */\n\t_selectDay: function( id, month, year, td ) {\n\t\tvar inst,\n\t\t\ttarget = $( id );\n\n\t\tif ( $( td ).hasClass( this._unselectableClass ) || this._isDisabledDatepicker( target[ 0 ] ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tinst = this._getInst( target[ 0 ] );\n\t\tinst.selectedDay = inst.currentDay = $( \"a\", td ).html();\n\t\tinst.selectedMonth = inst.currentMonth = month;\n\t\tinst.selectedYear = inst.currentYear = year;\n\t\tthis._selectDate( id, this._formatDate( inst,\n\t\t\tinst.currentDay, inst.currentMonth, inst.currentYear ) );\n\t},\n\n\t/* Erase the input field and hide the date picker. */\n\t_clearDate: function( id ) {\n\t\tvar target = $( id );\n\t\tthis._selectDate( target, \"\" );\n\t},\n\n\t/* Update the input field with the selected date. */\n\t_selectDate: function( id, dateStr ) {\n\t\tvar onSelect,\n\t\t\ttarget = $( id ),\n\t\t\tinst = this._getInst( target[ 0 ] );\n\n\t\tdateStr = ( dateStr != null ? dateStr : this._formatDate( inst ) );\n\t\tif ( inst.input ) {\n\t\t\tinst.input.val( dateStr );\n\t\t}\n\t\tthis._updateAlternate( inst );\n\n\t\tonSelect = this._get( inst, \"onSelect\" );\n\t\tif ( onSelect ) {\n\t\t\tonSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] ); // trigger custom callback\n\t\t} else if ( inst.input ) {\n\t\t\tinst.input.trigger( \"change\" ); // fire the change event\n\t\t}\n\n\t\tif ( inst.inline ) {\n\t\t\tthis._updateDatepicker( inst );\n\t\t} else {\n\t\t\tthis._hideDatepicker();\n\t\t\tthis._lastInput = inst.input[ 0 ];\n\t\t\tif ( typeof( inst.input[ 0 ] ) !== \"object\" ) {\n\t\t\t\tinst.input.trigger( \"focus\" ); // restore focus\n\t\t\t}\n\t\t\tthis._lastInput = null;\n\t\t}\n\t},\n\n\t/* Update any alternate field to synchronise with the main field. */\n\t_updateAlternate: function( inst ) {\n\t\tvar altFormat, date, dateStr,\n\t\t\taltField = this._get( inst, \"altField\" );\n\n\t\tif ( altField ) { // update alternate field too\n\t\t\taltFormat = this._get( inst, \"altFormat\" ) || this._get( inst, \"dateFormat\" );\n\t\t\tdate = this._getDate( inst );\n\t\t\tdateStr = this.formatDate( altFormat, date, this._getFormatConfig( inst ) );\n\t\t\t$( altField ).val( dateStr );\n\t\t}\n\t},\n\n\t/* Set as beforeShowDay function to prevent selection of weekends.\n\t * @param date Date - the date to customise\n\t * @return [boolean, string] - is this date selectable?, what is its CSS class?\n\t */\n\tnoWeekends: function( date ) {\n\t\tvar day = date.getDay();\n\t\treturn [ ( day > 0 && day < 6 ), \"\" ];\n\t},\n\n\t/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.\n\t * @param date Date - the date to get the week for\n\t * @return number - the number of the week within the year that contains this date\n\t */\n\tiso8601Week: function( date ) {\n\t\tvar time,\n\t\t\tcheckDate = new Date( date.getTime() );\n\n\t\t// Find Thursday of this week starting on Monday\n\t\tcheckDate.setDate( checkDate.getDate() + 4 - ( checkDate.getDay() || 7 ) );\n\n\t\ttime = checkDate.getTime();\n\t\tcheckDate.setMonth( 0 ); // Compare with Jan 1\n\t\tcheckDate.setDate( 1 );\n\t\treturn Math.floor( Math.round( ( time - checkDate ) / 86400000 ) / 7 ) + 1;\n\t},\n\n\t/* Parse a string value into a date object.\n\t * See formatDate below for the possible formats.\n\t *\n\t * @param format string - the expected format of the date\n\t * @param value string - the date in the above format\n\t * @param settings Object - attributes include:\n\t *\t\t\t\t\tshortYearCutoff number - the cutoff year for determining the century (optional)\n\t *\t\t\t\t\tdayNamesShort\tstring[7] - abbreviated names of the days from Sunday (optional)\n\t *\t\t\t\t\tdayNames\t\tstring[7] - names of the days from Sunday (optional)\n\t *\t\t\t\t\tmonthNamesShort string[12] - abbreviated names of the months (optional)\n\t *\t\t\t\t\tmonthNames\t\tstring[12] - names of the months (optional)\n\t * @return Date - the extracted date value or null if value is blank\n\t */\n\tparseDate: function( format, value, settings ) {\n\t\tif ( format == null || value == null ) {\n\t\t\tthrow \"Invalid arguments\";\n\t\t}\n\n\t\tvalue = ( typeof value === \"object\" ? value.toString() : value + \"\" );\n\t\tif ( value === \"\" ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar iFormat, dim, extra,\n\t\t\tiValue = 0,\n\t\t\tshortYearCutoffTemp = ( settings ? settings.shortYearCutoff : null ) || this._defaults.shortYearCutoff,\n\t\t\tshortYearCutoff = ( typeof shortYearCutoffTemp !== \"string\" ? shortYearCutoffTemp :\n\t\t\t\tnew Date().getFullYear() % 100 + parseInt( shortYearCutoffTemp, 10 ) ),\n\t\t\tdayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,\n\t\t\tdayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,\n\t\t\tmonthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,\n\t\t\tmonthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,\n\t\t\tyear = -1,\n\t\t\tmonth = -1,\n\t\t\tday = -1,\n\t\t\tdoy = -1,\n\t\t\tliteral = false,\n\t\t\tdate,\n\n\t\t\t// Check whether a format character is doubled\n\t\t\tlookAhead = function( match ) {\n\t\t\t\tvar matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );\n\t\t\t\tif ( matches ) {\n\t\t\t\t\tiFormat++;\n\t\t\t\t}\n\t\t\t\treturn matches;\n\t\t\t},\n\n\t\t\t// Extract a number from the string value\n\t\t\tgetNumber = function( match ) {\n\t\t\t\tvar isDoubled = lookAhead( match ),\n\t\t\t\t\tsize = ( match === \"@\" ? 14 : ( match === \"!\" ? 20 :\n\t\t\t\t\t( match === \"y\" && isDoubled ? 4 : ( match === \"o\" ? 3 : 2 ) ) ) ),\n\t\t\t\t\tminSize = ( match === \"y\" ? size : 1 ),\n\t\t\t\t\tdigits = new RegExp( \"^\\\\d{\" + minSize + \",\" + size + \"}\" ),\n\t\t\t\t\tnum = value.substring( iValue ).match( digits );\n\t\t\t\tif ( !num ) {\n\t\t\t\t\tthrow \"Missing number at position \" + iValue;\n\t\t\t\t}\n\t\t\t\tiValue += num[ 0 ].length;\n\t\t\t\treturn parseInt( num[ 0 ], 10 );\n\t\t\t},\n\n\t\t\t// Extract a name from the string value and convert to an index\n\t\t\tgetName = function( match, shortNames, longNames ) {\n\t\t\t\tvar index = -1,\n\t\t\t\t\tnames = $.map( lookAhead( match ) ? longNames : shortNames, function( v, k ) {\n\t\t\t\t\t\treturn [ [ k, v ] ];\n\t\t\t\t\t} ).sort( function( a, b ) {\n\t\t\t\t\t\treturn -( a[ 1 ].length - b[ 1 ].length );\n\t\t\t\t\t} );\n\n\t\t\t\t$.each( names, function( i, pair ) {\n\t\t\t\t\tvar name = pair[ 1 ];\n\t\t\t\t\tif ( value.substr( iValue, name.length ).toLowerCase() === name.toLowerCase() ) {\n\t\t\t\t\t\tindex = pair[ 0 ];\n\t\t\t\t\t\tiValue += name.length;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tif ( index !== -1 ) {\n\t\t\t\t\treturn index + 1;\n\t\t\t\t} else {\n\t\t\t\t\tthrow \"Unknown name at position \" + iValue;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Confirm that a literal character matches the string value\n\t\t\tcheckLiteral = function() {\n\t\t\t\tif ( value.charAt( iValue ) !== format.charAt( iFormat ) ) {\n\t\t\t\t\tthrow \"Unexpected literal at position \" + iValue;\n\t\t\t\t}\n\t\t\t\tiValue++;\n\t\t\t};\n\n\t\tfor ( iFormat = 0; iFormat < format.length; iFormat++ ) {\n\t\t\tif ( literal ) {\n\t\t\t\tif ( format.charAt( iFormat ) === \"'\" && !lookAhead( \"'\" ) ) {\n\t\t\t\t\tliteral = false;\n\t\t\t\t} else {\n\t\t\t\t\tcheckLiteral();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch ( format.charAt( iFormat ) ) {\n\t\t\t\t\tcase \"d\":\n\t\t\t\t\t\tday = getNumber( \"d\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"D\":\n\t\t\t\t\t\tgetName( \"D\", dayNamesShort, dayNames );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"o\":\n\t\t\t\t\t\tdoy = getNumber( \"o\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"m\":\n\t\t\t\t\t\tmonth = getNumber( \"m\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"M\":\n\t\t\t\t\t\tmonth = getName( \"M\", monthNamesShort, monthNames );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"y\":\n\t\t\t\t\t\tyear = getNumber( \"y\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"@\":\n\t\t\t\t\t\tdate = new Date( getNumber( \"@\" ) );\n\t\t\t\t\t\tyear = date.getFullYear();\n\t\t\t\t\t\tmonth = date.getMonth() + 1;\n\t\t\t\t\t\tday = date.getDate();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"!\":\n\t\t\t\t\t\tdate = new Date( ( getNumber( \"!\" ) - this._ticksTo1970 ) / 10000 );\n\t\t\t\t\t\tyear = date.getFullYear();\n\t\t\t\t\t\tmonth = date.getMonth() + 1;\n\t\t\t\t\t\tday = date.getDate();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"'\":\n\t\t\t\t\t\tif ( lookAhead( \"'\" ) ) {\n\t\t\t\t\t\t\tcheckLiteral();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tliteral = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcheckLiteral();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( iValue < value.length ) {\n\t\t\textra = value.substr( iValue );\n\t\t\tif ( !/^\\s+/.test( extra ) ) {\n\t\t\t\tthrow \"Extra/unparsed characters found in date: \" + extra;\n\t\t\t}\n\t\t}\n\n\t\tif ( year === -1 ) {\n\t\t\tyear = new Date().getFullYear();\n\t\t} else if ( year < 100 ) {\n\t\t\tyear += new Date().getFullYear() - new Date().getFullYear() % 100 +\n\t\t\t\t( year <= shortYearCutoff ? 0 : -100 );\n\t\t}\n\n\t\tif ( doy > -1 ) {\n\t\t\tmonth = 1;\n\t\t\tday = doy;\n\t\t\tdo {\n\t\t\t\tdim = this._getDaysInMonth( year, month - 1 );\n\t\t\t\tif ( day <= dim ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tmonth++;\n\t\t\t\tday -= dim;\n\t\t\t} while ( true );\n\t\t}\n\n\t\tdate = this._daylightSavingAdjust( new Date( year, month - 1, day ) );\n\t\tif ( date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day ) {\n\t\t\tthrow \"Invalid date\"; // E.g. 31/02/00\n\t\t}\n\t\treturn date;\n\t},\n\n\t/* Standard date formats. */\n\tATOM: \"yy-mm-dd\", // RFC 3339 (ISO 8601)\n\tCOOKIE: \"D, dd M yy\",\n\tISO_8601: \"yy-mm-dd\",\n\tRFC_822: \"D, d M y\",\n\tRFC_850: \"DD, dd-M-y\",\n\tRFC_1036: \"D, d M y\",\n\tRFC_1123: \"D, d M yy\",\n\tRFC_2822: \"D, d M yy\",\n\tRSS: \"D, d M y\", // RFC 822\n\tTICKS: \"!\",\n\tTIMESTAMP: \"@\",\n\tW3C: \"yy-mm-dd\", // ISO 8601\n\n\t_ticksTo1970: ( ( ( 1970 - 1 ) * 365 + Math.floor( 1970 / 4 ) - Math.floor( 1970 / 100 ) +\n\t\tMath.floor( 1970 / 400 ) ) * 24 * 60 * 60 * 10000000 ),\n\n\t/* Format a date object into a string value.\n\t * The format can be combinations of the following:\n\t * d - day of month (no leading zero)\n\t * dd - day of month (two digit)\n\t * o - day of year (no leading zeros)\n\t * oo - day of year (three digit)\n\t * D - day name short\n\t * DD - day name long\n\t * m - month of year (no leading zero)\n\t * mm - month of year (two digit)\n\t * M - month name short\n\t * MM - month name long\n\t * y - year (two digit)\n\t * yy - year (four digit)\n\t * @ - Unix timestamp (ms since 01/01/1970)\n\t * ! - Windows ticks (100ns since 01/01/0001)\n\t * \"...\" - literal text\n\t * '' - single quote\n\t *\n\t * @param format string - the desired format of the date\n\t * @param date Date - the date value to format\n\t * @param settings Object - attributes include:\n\t *\t\t\t\t\tdayNamesShort\tstring[7] - abbreviated names of the days from Sunday (optional)\n\t *\t\t\t\t\tdayNames\t\tstring[7] - names of the days from Sunday (optional)\n\t *\t\t\t\t\tmonthNamesShort string[12] - abbreviated names of the months (optional)\n\t *\t\t\t\t\tmonthNames\t\tstring[12] - names of the months (optional)\n\t * @return string - the date in the above format\n\t */\n\tformatDate: function( format, date, settings ) {\n\t\tif ( !date ) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tvar iFormat,\n\t\t\tdayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,\n\t\t\tdayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,\n\t\t\tmonthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,\n\t\t\tmonthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,\n\n\t\t\t// Check whether a format character is doubled\n\t\t\tlookAhead = function( match ) {\n\t\t\t\tvar matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );\n\t\t\t\tif ( matches ) {\n\t\t\t\t\tiFormat++;\n\t\t\t\t}\n\t\t\t\treturn matches;\n\t\t\t},\n\n\t\t\t// Format a number, with leading zero if necessary\n\t\t\tformatNumber = function( match, value, len ) {\n\t\t\t\tvar num = \"\" + value;\n\t\t\t\tif ( lookAhead( match ) ) {\n\t\t\t\t\twhile ( num.length < len ) {\n\t\t\t\t\t\tnum = \"0\" + num;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn num;\n\t\t\t},\n\n\t\t\t// Format a name, short or long as requested\n\t\t\tformatName = function( match, value, shortNames, longNames ) {\n\t\t\t\treturn ( lookAhead( match ) ? longNames[ value ] : shortNames[ value ] );\n\t\t\t},\n\t\t\toutput = \"\",\n\t\t\tliteral = false;\n\n\t\tif ( date ) {\n\t\t\tfor ( iFormat = 0; iFormat < format.length; iFormat++ ) {\n\t\t\t\tif ( literal ) {\n\t\t\t\t\tif ( format.charAt( iFormat ) === \"'\" && !lookAhead( \"'\" ) ) {\n\t\t\t\t\t\tliteral = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\toutput += format.charAt( iFormat );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tswitch ( format.charAt( iFormat ) ) {\n\t\t\t\t\t\tcase \"d\":\n\t\t\t\t\t\t\toutput += formatNumber( \"d\", date.getDate(), 2 );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"D\":\n\t\t\t\t\t\t\toutput += formatName( \"D\", date.getDay(), dayNamesShort, dayNames );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"o\":\n\t\t\t\t\t\t\toutput += formatNumber( \"o\",\n\t\t\t\t\t\t\t\tMath.round( ( new Date( date.getFullYear(), date.getMonth(), date.getDate() ).getTime() - new Date( date.getFullYear(), 0, 0 ).getTime() ) / 86400000 ), 3 );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"m\":\n\t\t\t\t\t\t\toutput += formatNumber( \"m\", date.getMonth() + 1, 2 );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"M\":\n\t\t\t\t\t\t\toutput += formatName( \"M\", date.getMonth(), monthNamesShort, monthNames );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"y\":\n\t\t\t\t\t\t\toutput += ( lookAhead( \"y\" ) ? date.getFullYear() :\n\t\t\t\t\t\t\t\t( date.getFullYear() % 100 < 10 ? \"0\" : \"\" ) + date.getFullYear() % 100 );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"@\":\n\t\t\t\t\t\t\toutput += date.getTime();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"!\":\n\t\t\t\t\t\t\toutput += date.getTime() * 10000 + this._ticksTo1970;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"'\":\n\t\t\t\t\t\t\tif ( lookAhead( \"'\" ) ) {\n\t\t\t\t\t\t\t\toutput += \"'\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tliteral = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\toutput += format.charAt( iFormat );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t},\n\n\t/* Extract all possible characters from the date format. */\n\t_possibleChars: function( format ) {\n\t\tvar iFormat,\n\t\t\tchars = \"\",\n\t\t\tliteral = false,\n\n\t\t\t// Check whether a format character is doubled\n\t\t\tlookAhead = function( match ) {\n\t\t\t\tvar matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );\n\t\t\t\tif ( matches ) {\n\t\t\t\t\tiFormat++;\n\t\t\t\t}\n\t\t\t\treturn matches;\n\t\t\t};\n\n\t\tfor ( iFormat = 0; iFormat < format.length; iFormat++ ) {\n\t\t\tif ( literal ) {\n\t\t\t\tif ( format.charAt( iFormat ) === \"'\" && !lookAhead( \"'\" ) ) {\n\t\t\t\t\tliteral = false;\n\t\t\t\t} else {\n\t\t\t\t\tchars += format.charAt( iFormat );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch ( format.charAt( iFormat ) ) {\n\t\t\t\t\tcase \"d\": case \"m\": case \"y\": case \"@\":\n\t\t\t\t\t\tchars += \"0123456789\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"D\": case \"M\":\n\t\t\t\t\t\treturn null; // Accept anything\n\t\t\t\t\tcase \"'\":\n\t\t\t\t\t\tif ( lookAhead( \"'\" ) ) {\n\t\t\t\t\t\t\tchars += \"'\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tliteral = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tchars += format.charAt( iFormat );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn chars;\n\t},\n\n\t/* Get a setting value, defaulting if necessary. */\n\t_get: function( inst, name ) {\n\t\treturn inst.settings[ name ] !== undefined ?\n\t\t\tinst.settings[ name ] : this._defaults[ name ];\n\t},\n\n\t/* Parse existing date and initialise date picker. */\n\t_setDateFromField: function( inst, noDefault ) {\n\t\tif ( inst.input.val() === inst.lastVal ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar dateFormat = this._get( inst, \"dateFormat\" ),\n\t\t\tdates = inst.lastVal = inst.input ? inst.input.val() : null,\n\t\t\tdefaultDate = this._getDefaultDate( inst ),\n\t\t\tdate = defaultDate,\n\t\t\tsettings = this._getFormatConfig( inst );\n\n\t\ttry {\n\t\t\tdate = this.parseDate( dateFormat, dates, settings ) || defaultDate;\n\t\t} catch ( event ) {\n\t\t\tdates = ( noDefault ? \"\" : dates );\n\t\t}\n\t\tinst.selectedDay = date.getDate();\n\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\n\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\n\t\tinst.currentDay = ( dates ? date.getDate() : 0 );\n\t\tinst.currentMonth = ( dates ? date.getMonth() : 0 );\n\t\tinst.currentYear = ( dates ? date.getFullYear() : 0 );\n\t\tthis._adjustInstDate( inst );\n\t},\n\n\t/* Retrieve the default date shown on opening. */\n\t_getDefaultDate: function( inst ) {\n\t\treturn this._restrictMinMax( inst,\n\t\t\tthis._determineDate( inst, this._get( inst, \"defaultDate\" ), new Date() ) );\n\t},\n\n\t/* A date may be specified as an exact value or a relative one. */\n\t_determineDate: function( inst, date, defaultDate ) {\n\t\tvar offsetNumeric = function( offset ) {\n\t\t\t\tvar date = new Date();\n\t\t\t\tdate.setDate( date.getDate() + offset );\n\t\t\t\treturn date;\n\t\t\t},\n\t\t\toffsetString = function( offset ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn $.datepicker.parseDate( $.datepicker._get( inst, \"dateFormat\" ),\n\t\t\t\t\t\toffset, $.datepicker._getFormatConfig( inst ) );\n\t\t\t\t}\n\t\t\t\tcatch ( e ) {\n\n\t\t\t\t\t// Ignore\n\t\t\t\t}\n\n\t\t\t\tvar date = ( offset.toLowerCase().match( /^c/ ) ?\n\t\t\t\t\t$.datepicker._getDate( inst ) : null ) || new Date(),\n\t\t\t\t\tyear = date.getFullYear(),\n\t\t\t\t\tmonth = date.getMonth(),\n\t\t\t\t\tday = date.getDate(),\n\t\t\t\t\tpattern = /([+\\-]?[0-9]+)\\s*(d|D|w|W|m|M|y|Y)?/g,\n\t\t\t\t\tmatches = pattern.exec( offset );\n\n\t\t\t\twhile ( matches ) {\n\t\t\t\t\tswitch ( matches[ 2 ] || \"d\" ) {\n\t\t\t\t\t\tcase \"d\" : case \"D\" :\n\t\t\t\t\t\t\tday += parseInt( matches[ 1 ], 10 ); break;\n\t\t\t\t\t\tcase \"w\" : case \"W\" :\n\t\t\t\t\t\t\tday += parseInt( matches[ 1 ], 10 ) * 7; break;\n\t\t\t\t\t\tcase \"m\" : case \"M\" :\n\t\t\t\t\t\t\tmonth += parseInt( matches[ 1 ], 10 );\n\t\t\t\t\t\t\tday = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"y\": case \"Y\" :\n\t\t\t\t\t\t\tyear += parseInt( matches[ 1 ], 10 );\n\t\t\t\t\t\t\tday = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tmatches = pattern.exec( offset );\n\t\t\t\t}\n\t\t\t\treturn new Date( year, month, day );\n\t\t\t},\n\t\t\tnewDate = ( date == null || date === \"\" ? defaultDate : ( typeof date === \"string\" ? offsetString( date ) :\n\t\t\t\t( typeof date === \"number\" ? ( isNaN( date ) ? defaultDate : offsetNumeric( date ) ) : new Date( date.getTime() ) ) ) );\n\n\t\tnewDate = ( newDate && newDate.toString() === \"Invalid Date\" ? defaultDate : newDate );\n\t\tif ( newDate ) {\n\t\t\tnewDate.setHours( 0 );\n\t\t\tnewDate.setMinutes( 0 );\n\t\t\tnewDate.setSeconds( 0 );\n\t\t\tnewDate.setMilliseconds( 0 );\n\t\t}\n\t\treturn this._daylightSavingAdjust( newDate );\n\t},\n\n\t/* Handle switch to/from daylight saving.\n\t * Hours may be non-zero on daylight saving cut-over:\n\t * > 12 when midnight changeover, but then cannot generate\n\t * midnight datetime, so jump to 1AM, otherwise reset.\n\t * @param date (Date) the date to check\n\t * @return (Date) the corrected date\n\t */\n\t_daylightSavingAdjust: function( date ) {\n\t\tif ( !date ) {\n\t\t\treturn null;\n\t\t}\n\t\tdate.setHours( date.getHours() > 12 ? date.getHours() + 2 : 0 );\n\t\treturn date;\n\t},\n\n\t/* Set the date(s) directly. */\n\t_setDate: function( inst, date, noChange ) {\n\t\tvar clear = !date,\n\t\t\torigMonth = inst.selectedMonth,\n\t\t\torigYear = inst.selectedYear,\n\t\t\tnewDate = this._restrictMinMax( inst, this._determineDate( inst, date, new Date() ) );\n\n\t\tinst.selectedDay = inst.currentDay = newDate.getDate();\n\t\tinst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();\n\t\tinst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();\n\t\tif ( ( origMonth !== inst.selectedMonth || origYear !== inst.selectedYear ) && !noChange ) {\n\t\t\tthis._notifyChange( inst );\n\t\t}\n\t\tthis._adjustInstDate( inst );\n\t\tif ( inst.input ) {\n\t\t\tinst.input.val( clear ? \"\" : this._formatDate( inst ) );\n\t\t}\n\t},\n\n\t/* Retrieve the date(s) directly. */\n\t_getDate: function( inst ) {\n\t\tvar startDate = ( !inst.currentYear || ( inst.input && inst.input.val() === \"\" ) ? null :\n\t\t\tthis._daylightSavingAdjust( new Date(\n\t\t\tinst.currentYear, inst.currentMonth, inst.currentDay ) ) );\n\t\t\treturn startDate;\n\t},\n\n\t/* Attach the onxxx handlers. These are declared statically so\n\t * they work with static code transformers like Caja.\n\t */\n\t_attachHandlers: function( inst ) {\n\t\tvar stepMonths = this._get( inst, \"stepMonths\" ),\n\t\t\tid = \"#\" + inst.id.replace( /\\\\\\\\/g, \"\\\\\" );\n\t\tinst.dpDiv.find( \"[data-handler]\" ).map( function() {\n\t\t\tvar handler = {\n\t\t\t\tprev: function() {\n\t\t\t\t\t$.datepicker._adjustDate( id, -stepMonths, \"M\" );\n\t\t\t\t},\n\t\t\t\tnext: function() {\n\t\t\t\t\t$.datepicker._adjustDate( id, +stepMonths, \"M\" );\n\t\t\t\t},\n\t\t\t\thide: function() {\n\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t},\n\t\t\t\ttoday: function() {\n\t\t\t\t\t$.datepicker._gotoToday( id );\n\t\t\t\t},\n\t\t\t\tselectDay: function() {\n\t\t\t\t\t$.datepicker._selectDay( id, +this.getAttribute( \"data-month\" ), +this.getAttribute( \"data-year\" ), this );\n\t\t\t\t\treturn false;\n\t\t\t\t},\n\t\t\t\tselectMonth: function() {\n\t\t\t\t\t$.datepicker._selectMonthYear( id, this, \"M\" );\n\t\t\t\t\treturn false;\n\t\t\t\t},\n\t\t\t\tselectYear: function() {\n\t\t\t\t\t$.datepicker._selectMonthYear( id, this, \"Y\" );\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t};\n\t\t\t$( this ).on( this.getAttribute( \"data-event\" ), handler[ this.getAttribute( \"data-handler\" ) ] );\n\t\t} );\n\t},\n\n\t/* Generate the HTML for the current state of the date picker. */\n\t_generateHTML: function( inst ) {\n\t\tvar maxDraw, prevText, prev, nextText, next, currentText, gotoDate,\n\t\t\tcontrols, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin,\n\t\t\tmonthNames, monthNamesShort, beforeShowDay, showOtherMonths,\n\t\t\tselectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate,\n\t\t\tcornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows,\n\t\t\tprintDate, dRow, tbody, daySettings, otherMonth, unselectable,\n\t\t\ttempDate = new Date(),\n\t\t\ttoday = this._daylightSavingAdjust(\n\t\t\t\tnew Date( tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate() ) ), // clear time\n\t\t\tisRTL = this._get( inst, \"isRTL\" ),\n\t\t\tshowButtonPanel = this._get( inst, \"showButtonPanel\" ),\n\t\t\thideIfNoPrevNext = this._get( inst, \"hideIfNoPrevNext\" ),\n\t\t\tnavigationAsDateFormat = this._get( inst, \"navigationAsDateFormat\" ),\n\t\t\tnumMonths = this._getNumberOfMonths( inst ),\n\t\t\tshowCurrentAtPos = this._get( inst, \"showCurrentAtPos\" ),\n\t\t\tstepMonths = this._get( inst, \"stepMonths\" ),\n\t\t\tisMultiMonth = ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ),\n\t\t\tcurrentDate = this._daylightSavingAdjust( ( !inst.currentDay ? new Date( 9999, 9, 9 ) :\n\t\t\t\tnew Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) ),\n\t\t\tminDate = this._getMinMaxDate( inst, \"min\" ),\n\t\t\tmaxDate = this._getMinMaxDate( inst, \"max\" ),\n\t\t\tdrawMonth = inst.drawMonth - showCurrentAtPos,\n\t\t\tdrawYear = inst.drawYear;\n\n\t\tif ( drawMonth < 0 ) {\n\t\t\tdrawMonth += 12;\n\t\t\tdrawYear--;\n\t\t}\n\t\tif ( maxDate ) {\n\t\t\tmaxDraw = this._daylightSavingAdjust( new Date( maxDate.getFullYear(),\n\t\t\t\tmaxDate.getMonth() - ( numMonths[ 0 ] * numMonths[ 1 ] ) + 1, maxDate.getDate() ) );\n\t\t\tmaxDraw = ( minDate && maxDraw < minDate ? minDate : maxDraw );\n\t\t\twhile ( this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 ) ) > maxDraw ) {\n\t\t\t\tdrawMonth--;\n\t\t\t\tif ( drawMonth < 0 ) {\n\t\t\t\t\tdrawMonth = 11;\n\t\t\t\t\tdrawYear--;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tinst.drawMonth = drawMonth;\n\t\tinst.drawYear = drawYear;\n\n\t\tprevText = this._get( inst, \"prevText\" );\n\t\tprevText = ( !navigationAsDateFormat ? prevText : this.formatDate( prevText,\n\t\t\tthis._daylightSavingAdjust( new Date( drawYear, drawMonth - stepMonths, 1 ) ),\n\t\t\tthis._getFormatConfig( inst ) ) );\n\n\t\tprev = ( this._canAdjustMonth( inst, -1, drawYear, drawMonth ) ?\n\t\t\t\"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'\" +\n\t\t\t\" title='\" + prevText + \"'><span class='ui-icon ui-icon-circle-triangle-\" + ( isRTL ? \"e\" : \"w\" ) + \"'>\" + prevText + \"</span></a>\" :\n\t\t\t( hideIfNoPrevNext ? \"\" : \"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='\" + prevText + \"'><span class='ui-icon ui-icon-circle-triangle-\" + ( isRTL ? \"e\" : \"w\" ) + \"'>\" + prevText + \"</span></a>\" ) );\n\n\t\tnextText = this._get( inst, \"nextText\" );\n\t\tnextText = ( !navigationAsDateFormat ? nextText : this.formatDate( nextText,\n\t\t\tthis._daylightSavingAdjust( new Date( drawYear, drawMonth + stepMonths, 1 ) ),\n\t\t\tthis._getFormatConfig( inst ) ) );\n\n\t\tnext = ( this._canAdjustMonth( inst, +1, drawYear, drawMonth ) ?\n\t\t\t\"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'\" +\n\t\t\t\" title='\" + nextText + \"'><span class='ui-icon ui-icon-circle-triangle-\" + ( isRTL ? \"w\" : \"e\" ) + \"'>\" + nextText + \"</span></a>\" :\n\t\t\t( hideIfNoPrevNext ? \"\" : \"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='\" + nextText + \"'><span class='ui-icon ui-icon-circle-triangle-\" + ( isRTL ? \"w\" : \"e\" ) + \"'>\" + nextText + \"</span></a>\" ) );\n\n\t\tcurrentText = this._get( inst, \"currentText\" );\n\t\tgotoDate = ( this._get( inst, \"gotoCurrent\" ) && inst.currentDay ? currentDate : today );\n\t\tcurrentText = ( !navigationAsDateFormat ? currentText :\n\t\t\tthis.formatDate( currentText, gotoDate, this._getFormatConfig( inst ) ) );\n\n\t\tcontrols = ( !inst.inline ? \"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>\" +\n\t\t\tthis._get( inst, \"closeText\" ) + \"</button>\" : \"\" );\n\n\t\tbuttonPanel = ( showButtonPanel ) ? \"<div class='ui-datepicker-buttonpane ui-widget-content'>\" + ( isRTL ? controls : \"\" ) +\n\t\t\t( this._isInRange( inst, gotoDate ) ? \"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'\" +\n\t\t\t\">\" + currentText + \"</button>\" : \"\" ) + ( isRTL ? \"\" : controls ) + \"</div>\" : \"\";\n\n\t\tfirstDay = parseInt( this._get( inst, \"firstDay\" ), 10 );\n\t\tfirstDay = ( isNaN( firstDay ) ? 0 : firstDay );\n\n\t\tshowWeek = this._get( inst, \"showWeek\" );\n\t\tdayNames = this._get( inst, \"dayNames\" );\n\t\tdayNamesMin = this._get( inst, \"dayNamesMin\" );\n\t\tmonthNames = this._get( inst, \"monthNames\" );\n\t\tmonthNamesShort = this._get( inst, \"monthNamesShort\" );\n\t\tbeforeShowDay = this._get( inst, \"beforeShowDay\" );\n\t\tshowOtherMonths = this._get( inst, \"showOtherMonths\" );\n\t\tselectOtherMonths = this._get( inst, \"selectOtherMonths\" );\n\t\tdefaultDate = this._getDefaultDate( inst );\n\t\thtml = \"\";\n\n\t\tfor ( row = 0; row < numMonths[ 0 ]; row++ ) {\n\t\t\tgroup = \"\";\n\t\t\tthis.maxRows = 4;\n\t\t\tfor ( col = 0; col < numMonths[ 1 ]; col++ ) {\n\t\t\t\tselectedDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, inst.selectedDay ) );\n\t\t\t\tcornerClass = \" ui-corner-all\";\n\t\t\t\tcalender = \"\";\n\t\t\t\tif ( isMultiMonth ) {\n\t\t\t\t\tcalender += \"<div class='ui-datepicker-group\";\n\t\t\t\t\tif ( numMonths[ 1 ] > 1 ) {\n\t\t\t\t\t\tswitch ( col ) {\n\t\t\t\t\t\t\tcase 0: calender += \" ui-datepicker-group-first\";\n\t\t\t\t\t\t\t\tcornerClass = \" ui-corner-\" + ( isRTL ? \"right\" : \"left\" ); break;\n\t\t\t\t\t\t\tcase numMonths[ 1 ] - 1: calender += \" ui-datepicker-group-last\";\n\t\t\t\t\t\t\t\tcornerClass = \" ui-corner-\" + ( isRTL ? \"left\" : \"right\" ); break;\n\t\t\t\t\t\t\tdefault: calender += \" ui-datepicker-group-middle\"; cornerClass = \"\"; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcalender += \"'>\";\n\t\t\t\t}\n\t\t\t\tcalender += \"<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix\" + cornerClass + \"'>\" +\n\t\t\t\t\t( /all|left/.test( cornerClass ) && row === 0 ? ( isRTL ? next : prev ) : \"\" ) +\n\t\t\t\t\t( /all|right/.test( cornerClass ) && row === 0 ? ( isRTL ? prev : next ) : \"\" ) +\n\t\t\t\t\tthis._generateMonthYearHeader( inst, drawMonth, drawYear, minDate, maxDate,\n\t\t\t\t\trow > 0 || col > 0, monthNames, monthNamesShort ) + // draw month headers\n\t\t\t\t\t\"</div><table class='ui-datepicker-calendar'><thead>\" +\n\t\t\t\t\t\"<tr>\";\n\t\t\t\tthead = ( showWeek ? \"<th class='ui-datepicker-week-col'>\" + this._get( inst, \"weekHeader\" ) + \"</th>\" : \"\" );\n\t\t\t\tfor ( dow = 0; dow < 7; dow++ ) { // days of the week\n\t\t\t\t\tday = ( dow + firstDay ) % 7;\n\t\t\t\t\tthead += \"<th scope='col'\" + ( ( dow + firstDay + 6 ) % 7 >= 5 ? \" class='ui-datepicker-week-end'\" : \"\" ) + \">\" +\n\t\t\t\t\t\t\"<span title='\" + dayNames[ day ] + \"'>\" + dayNamesMin[ day ] + \"</span></th>\";\n\t\t\t\t}\n\t\t\t\tcalender += thead + \"</tr></thead><tbody>\";\n\t\t\t\tdaysInMonth = this._getDaysInMonth( drawYear, drawMonth );\n\t\t\t\tif ( drawYear === inst.selectedYear && drawMonth === inst.selectedMonth ) {\n\t\t\t\t\tinst.selectedDay = Math.min( inst.selectedDay, daysInMonth );\n\t\t\t\t}\n\t\t\t\tleadDays = ( this._getFirstDayOfMonth( drawYear, drawMonth ) - firstDay + 7 ) % 7;\n\t\t\t\tcurRows = Math.ceil( ( leadDays + daysInMonth ) / 7 ); // calculate the number of rows to generate\n\t\t\t\tnumRows = ( isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows ); //If multiple months, use the higher number of rows (see #7043)\n\t\t\t\tthis.maxRows = numRows;\n\t\t\t\tprintDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 - leadDays ) );\n\t\t\t\tfor ( dRow = 0; dRow < numRows; dRow++ ) { // create date picker rows\n\t\t\t\t\tcalender += \"<tr>\";\n\t\t\t\t\ttbody = ( !showWeek ? \"\" : \"<td class='ui-datepicker-week-col'>\" +\n\t\t\t\t\t\tthis._get( inst, \"calculateWeek\" )( printDate ) + \"</td>\" );\n\t\t\t\t\tfor ( dow = 0; dow < 7; dow++ ) { // create date picker days\n\t\t\t\t\t\tdaySettings = ( beforeShowDay ?\n\t\t\t\t\t\t\tbeforeShowDay.apply( ( inst.input ? inst.input[ 0 ] : null ), [ printDate ] ) : [ true, \"\" ] );\n\t\t\t\t\t\totherMonth = ( printDate.getMonth() !== drawMonth );\n\t\t\t\t\t\tunselectable = ( otherMonth && !selectOtherMonths ) || !daySettings[ 0 ] ||\n\t\t\t\t\t\t\t( minDate && printDate < minDate ) || ( maxDate && printDate > maxDate );\n\t\t\t\t\t\ttbody += \"<td class='\" +\n\t\t\t\t\t\t\t( ( dow + firstDay + 6 ) % 7 >= 5 ? \" ui-datepicker-week-end\" : \"\" ) + // highlight weekends\n\t\t\t\t\t\t\t( otherMonth ? \" ui-datepicker-other-month\" : \"\" ) + // highlight days from other months\n\t\t\t\t\t\t\t( ( printDate.getTime() === selectedDate.getTime() && drawMonth === inst.selectedMonth && inst._keyEvent ) || // user pressed key\n\t\t\t\t\t\t\t( defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime() ) ?\n\n\t\t\t\t\t\t\t// or defaultDate is current printedDate and defaultDate is selectedDate\n\t\t\t\t\t\t\t\" \" + this._dayOverClass : \"\" ) + // highlight selected day\n\t\t\t\t\t\t\t( unselectable ? \" \" + this._unselectableClass + \" ui-state-disabled\" : \"\" ) + // highlight unselectable days\n\t\t\t\t\t\t\t( otherMonth && !showOtherMonths ? \"\" : \" \" + daySettings[ 1 ] + // highlight custom dates\n\t\t\t\t\t\t\t( printDate.getTime() === currentDate.getTime() ? \" \" + this._currentClass : \"\" ) + // highlight selected day\n\t\t\t\t\t\t\t( printDate.getTime() === today.getTime() ? \" ui-datepicker-today\" : \"\" ) ) + \"'\" + // highlight today (if different)\n\t\t\t\t\t\t\t( ( !otherMonth || showOtherMonths ) && daySettings[ 2 ] ? \" title='\" + daySettings[ 2 ].replace( /'/g, \"'\" ) + \"'\" : \"\" ) + // cell title\n\t\t\t\t\t\t\t( unselectable ? \"\" : \" data-handler='selectDay' data-event='click' data-month='\" + printDate.getMonth() + \"' data-year='\" + printDate.getFullYear() + \"'\" ) + \">\" + // actions\n\t\t\t\t\t\t\t( otherMonth && !showOtherMonths ? \" \" : // display for other months\n\t\t\t\t\t\t\t( unselectable ? \"<span class='ui-state-default'>\" + printDate.getDate() + \"</span>\" : \"<a class='ui-state-default\" +\n\t\t\t\t\t\t\t( printDate.getTime() === today.getTime() ? \" ui-state-highlight\" : \"\" ) +\n\t\t\t\t\t\t\t( printDate.getTime() === currentDate.getTime() ? \" ui-state-active\" : \"\" ) + // highlight selected day\n\t\t\t\t\t\t\t( otherMonth ? \" ui-priority-secondary\" : \"\" ) + // distinguish dates from other months\n\t\t\t\t\t\t\t\"' href='#'>\" + printDate.getDate() + \"</a>\" ) ) + \"</td>\"; // display selectable date\n\t\t\t\t\t\tprintDate.setDate( printDate.getDate() + 1 );\n\t\t\t\t\t\tprintDate = this._daylightSavingAdjust( printDate );\n\t\t\t\t\t}\n\t\t\t\t\tcalender += tbody + \"</tr>\";\n\t\t\t\t}\n\t\t\t\tdrawMonth++;\n\t\t\t\tif ( drawMonth > 11 ) {\n\t\t\t\t\tdrawMonth = 0;\n\t\t\t\t\tdrawYear++;\n\t\t\t\t}\n\t\t\t\tcalender += \"</tbody></table>\" + ( isMultiMonth ? \"</div>\" +\n\t\t\t\t\t\t\t( ( numMonths[ 0 ] > 0 && col === numMonths[ 1 ] - 1 ) ? \"<div class='ui-datepicker-row-break'></div>\" : \"\" ) : \"\" );\n\t\t\t\tgroup += calender;\n\t\t\t}\n\t\t\thtml += group;\n\t\t}\n\t\thtml += buttonPanel;\n\t\tinst._keyEvent = false;\n\t\treturn html;\n\t},\n\n\t/* Generate the month and year header. */\n\t_generateMonthYearHeader: function( inst, drawMonth, drawYear, minDate, maxDate,\n\t\t\tsecondary, monthNames, monthNamesShort ) {\n\n\t\tvar inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear,\n\t\t\tchangeMonth = this._get( inst, \"changeMonth\" ),\n\t\t\tchangeYear = this._get( inst, \"changeYear\" ),\n\t\t\tshowMonthAfterYear = this._get( inst, \"showMonthAfterYear\" ),\n\t\t\thtml = \"<div class='ui-datepicker-title'>\",\n\t\t\tmonthHtml = \"\";\n\n\t\t// Month selection\n\t\tif ( secondary || !changeMonth ) {\n\t\t\tmonthHtml += \"<span class='ui-datepicker-month'>\" + monthNames[ drawMonth ] + \"</span>\";\n\t\t} else {\n\t\t\tinMinYear = ( minDate && minDate.getFullYear() === drawYear );\n\t\t\tinMaxYear = ( maxDate && maxDate.getFullYear() === drawYear );\n\t\t\tmonthHtml += \"<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>\";\n\t\t\tfor ( month = 0; month < 12; month++ ) {\n\t\t\t\tif ( ( !inMinYear || month >= minDate.getMonth() ) && ( !inMaxYear || month <= maxDate.getMonth() ) ) {\n\t\t\t\t\tmonthHtml += \"<option value='\" + month + \"'\" +\n\t\t\t\t\t\t( month === drawMonth ? \" selected='selected'\" : \"\" ) +\n\t\t\t\t\t\t\">\" + monthNamesShort[ month ] + \"</option>\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tmonthHtml += \"</select>\";\n\t\t}\n\n\t\tif ( !showMonthAfterYear ) {\n\t\t\thtml += monthHtml + ( secondary || !( changeMonth && changeYear ) ? \" \" : \"\" );\n\t\t}\n\n\t\t// Year selection\n\t\tif ( !inst.yearshtml ) {\n\t\t\tinst.yearshtml = \"\";\n\t\t\tif ( secondary || !changeYear ) {\n\t\t\t\thtml += \"<span class='ui-datepicker-year'>\" + drawYear + \"</span>\";\n\t\t\t} else {\n\n\t\t\t\t// determine range of years to display\n\t\t\t\tyears = this._get( inst, \"yearRange\" ).split( \":\" );\n\t\t\t\tthisYear = new Date().getFullYear();\n\t\t\t\tdetermineYear = function( value ) {\n\t\t\t\t\tvar year = ( value.match( /c[+\\-].*/ ) ? drawYear + parseInt( value.substring( 1 ), 10 ) :\n\t\t\t\t\t\t( value.match( /[+\\-].*/ ) ? thisYear + parseInt( value, 10 ) :\n\t\t\t\t\t\tparseInt( value, 10 ) ) );\n\t\t\t\t\treturn ( isNaN( year ) ? thisYear : year );\n\t\t\t\t};\n\t\t\t\tyear = determineYear( years[ 0 ] );\n\t\t\t\tendYear = Math.max( year, determineYear( years[ 1 ] || \"\" ) );\n\t\t\t\tyear = ( minDate ? Math.max( year, minDate.getFullYear() ) : year );\n\t\t\t\tendYear = ( maxDate ? Math.min( endYear, maxDate.getFullYear() ) : endYear );\n\t\t\t\tinst.yearshtml += \"<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>\";\n\t\t\t\tfor ( ; year <= endYear; year++ ) {\n\t\t\t\t\tinst.yearshtml += \"<option value='\" + year + \"'\" +\n\t\t\t\t\t\t( year === drawYear ? \" selected='selected'\" : \"\" ) +\n\t\t\t\t\t\t\">\" + year + \"</option>\";\n\t\t\t\t}\n\t\t\t\tinst.yearshtml += \"</select>\";\n\n\t\t\t\thtml += inst.yearshtml;\n\t\t\t\tinst.yearshtml = null;\n\t\t\t}\n\t\t}\n\n\t\thtml += this._get( inst, \"yearSuffix\" );\n\t\tif ( showMonthAfterYear ) {\n\t\t\thtml += ( secondary || !( changeMonth && changeYear ) ? \" \" : \"\" ) + monthHtml;\n\t\t}\n\t\thtml += \"</div>\"; // Close datepicker_header\n\t\treturn html;\n\t},\n\n\t/* Adjust one of the date sub-fields. */\n\t_adjustInstDate: function( inst, offset, period ) {\n\t\tvar year = inst.selectedYear + ( period === \"Y\" ? offset : 0 ),\n\t\t\tmonth = inst.selectedMonth + ( period === \"M\" ? offset : 0 ),\n\t\t\tday = Math.min( inst.selectedDay, this._getDaysInMonth( year, month ) ) + ( period === \"D\" ? offset : 0 ),\n\t\t\tdate = this._restrictMinMax( inst, this._daylightSavingAdjust( new Date( year, month, day ) ) );\n\n\t\tinst.selectedDay = date.getDate();\n\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\n\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\n\t\tif ( period === \"M\" || period === \"Y\" ) {\n\t\t\tthis._notifyChange( inst );\n\t\t}\n\t},\n\n\t/* Ensure a date is within any min/max bounds. */\n\t_restrictMinMax: function( inst, date ) {\n\t\tvar minDate = this._getMinMaxDate( inst, \"min\" ),\n\t\t\tmaxDate = this._getMinMaxDate( inst, \"max\" ),\n\t\t\tnewDate = ( minDate && date < minDate ? minDate : date );\n\t\treturn ( maxDate && newDate > maxDate ? maxDate : newDate );\n\t},\n\n\t/* Notify change of month/year. */\n\t_notifyChange: function( inst ) {\n\t\tvar onChange = this._get( inst, \"onChangeMonthYear\" );\n\t\tif ( onChange ) {\n\t\t\tonChange.apply( ( inst.input ? inst.input[ 0 ] : null ),\n\t\t\t\t[ inst.selectedYear, inst.selectedMonth + 1, inst ] );\n\t\t}\n\t},\n\n\t/* Determine the number of months to show. */\n\t_getNumberOfMonths: function( inst ) {\n\t\tvar numMonths = this._get( inst, \"numberOfMonths\" );\n\t\treturn ( numMonths == null ? [ 1, 1 ] : ( typeof numMonths === \"number\" ? [ 1, numMonths ] : numMonths ) );\n\t},\n\n\t/* Determine the current maximum date - ensure no time components are set. */\n\t_getMinMaxDate: function( inst, minMax ) {\n\t\treturn this._determineDate( inst, this._get( inst, minMax + \"Date\" ), null );\n\t},\n\n\t/* Find the number of days in a given month. */\n\t_getDaysInMonth: function( year, month ) {\n\t\treturn 32 - this._daylightSavingAdjust( new Date( year, month, 32 ) ).getDate();\n\t},\n\n\t/* Find the day of the week of the first of a month. */\n\t_getFirstDayOfMonth: function( year, month ) {\n\t\treturn new Date( year, month, 1 ).getDay();\n\t},\n\n\t/* Determines if we should allow a \"next/prev\" month display change. */\n\t_canAdjustMonth: function( inst, offset, curYear, curMonth ) {\n\t\tvar numMonths = this._getNumberOfMonths( inst ),\n\t\t\tdate = this._daylightSavingAdjust( new Date( curYear,\n\t\t\tcurMonth + ( offset < 0 ? offset : numMonths[ 0 ] * numMonths[ 1 ] ), 1 ) );\n\n\t\tif ( offset < 0 ) {\n\t\t\tdate.setDate( this._getDaysInMonth( date.getFullYear(), date.getMonth() ) );\n\t\t}\n\t\treturn this._isInRange( inst, date );\n\t},\n\n\t/* Is the given date in the accepted range? */\n\t_isInRange: function( inst, date ) {\n\t\tvar yearSplit, currentYear,\n\t\t\tminDate = this._getMinMaxDate( inst, \"min\" ),\n\t\t\tmaxDate = this._getMinMaxDate( inst, \"max\" ),\n\t\t\tminYear = null,\n\t\t\tmaxYear = null,\n\t\t\tyears = this._get( inst, \"yearRange\" );\n\t\t\tif ( years ) {\n\t\t\t\tyearSplit = years.split( \":\" );\n\t\t\t\tcurrentYear = new Date().getFullYear();\n\t\t\t\tminYear = parseInt( yearSplit[ 0 ], 10 );\n\t\t\t\tmaxYear = parseInt( yearSplit[ 1 ], 10 );\n\t\t\t\tif ( yearSplit[ 0 ].match( /[+\\-].*/ ) ) {\n\t\t\t\t\tminYear += currentYear;\n\t\t\t\t}\n\t\t\t\tif ( yearSplit[ 1 ].match( /[+\\-].*/ ) ) {\n\t\t\t\t\tmaxYear += currentYear;\n\t\t\t\t}\n\t\t\t}\n\n\t\treturn ( ( !minDate || date.getTime() >= minDate.getTime() ) &&\n\t\t\t( !maxDate || date.getTime() <= maxDate.getTime() ) &&\n\t\t\t( !minYear || date.getFullYear() >= minYear ) &&\n\t\t\t( !maxYear || date.getFullYear() <= maxYear ) );\n\t},\n\n\t/* Provide the configuration settings for formatting/parsing. */\n\t_getFormatConfig: function( inst ) {\n\t\tvar shortYearCutoff = this._get( inst, \"shortYearCutoff\" );\n\t\tshortYearCutoff = ( typeof shortYearCutoff !== \"string\" ? shortYearCutoff :\n\t\t\tnew Date().getFullYear() % 100 + parseInt( shortYearCutoff, 10 ) );\n\t\treturn { shortYearCutoff: shortYearCutoff,\n\t\t\tdayNamesShort: this._get( inst, \"dayNamesShort\" ), dayNames: this._get( inst, \"dayNames\" ),\n\t\t\tmonthNamesShort: this._get( inst, \"monthNamesShort\" ), monthNames: this._get( inst, \"monthNames\" ) };\n\t},\n\n\t/* Format the given date for display. */\n\t_formatDate: function( inst, day, month, year ) {\n\t\tif ( !day ) {\n\t\t\tinst.currentDay = inst.selectedDay;\n\t\t\tinst.currentMonth = inst.selectedMonth;\n\t\t\tinst.currentYear = inst.selectedYear;\n\t\t}\n\t\tvar date = ( day ? ( typeof day === \"object\" ? day :\n\t\t\tthis._daylightSavingAdjust( new Date( year, month, day ) ) ) :\n\t\t\tthis._daylightSavingAdjust( new Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) );\n\t\treturn this.formatDate( this._get( inst, \"dateFormat\" ), date, this._getFormatConfig( inst ) );\n\t}\n} );\n\n/*\n * Bind hover events for datepicker elements.\n * Done via delegate so the binding only occurs once in the lifetime of the parent div.\n * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.\n */\nfunction datepicker_bindHover( dpDiv ) {\n\tvar selector = \"button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a\";\n\treturn dpDiv.on( \"mouseout\", selector, function() {\n\t\t\t$( this ).removeClass( \"ui-state-hover\" );\n\t\t\tif ( this.className.indexOf( \"ui-datepicker-prev\" ) !== -1 ) {\n\t\t\t\t$( this ).removeClass( \"ui-datepicker-prev-hover\" );\n\t\t\t}\n\t\t\tif ( this.className.indexOf( \"ui-datepicker-next\" ) !== -1 ) {\n\t\t\t\t$( this ).removeClass( \"ui-datepicker-next-hover\" );\n\t\t\t}\n\t\t} )\n\t\t.on( \"mouseover\", selector, datepicker_handleMouseover );\n}\n\nfunction datepicker_handleMouseover() {\n\tif ( !$.datepicker._isDisabledDatepicker( datepicker_instActive.inline ? datepicker_instActive.dpDiv.parent()[ 0 ] : datepicker_instActive.input[ 0 ] ) ) {\n\t\t$( this ).parents( \".ui-datepicker-calendar\" ).find( \"a\" ).removeClass( \"ui-state-hover\" );\n\t\t$( this ).addClass( \"ui-state-hover\" );\n\t\tif ( this.className.indexOf( \"ui-datepicker-prev\" ) !== -1 ) {\n\t\t\t$( this ).addClass( \"ui-datepicker-prev-hover\" );\n\t\t}\n\t\tif ( this.className.indexOf( \"ui-datepicker-next\" ) !== -1 ) {\n\t\t\t$( this ).addClass( \"ui-datepicker-next-hover\" );\n\t\t}\n\t}\n}\n\n/* jQuery extend now ignores nulls! */\nfunction datepicker_extendRemove( target, props ) {\n\t$.extend( target, props );\n\tfor ( var name in props ) {\n\t\tif ( props[ name ] == null ) {\n\t\t\ttarget[ name ] = props[ name ];\n\t\t}\n\t}\n\treturn target;\n}\n\n/* Invoke the datepicker functionality.\n @param options string - a command, optionally followed by additional parameters or\n\t\t\t\t\tObject - settings for attaching new datepicker functionality\n @return jQuery object */\n$.fn.datepicker = function( options ) {\n\n\t/* Verify an empty collection wasn't passed - Fixes #6976 */\n\tif ( !this.length ) {\n\t\treturn this;\n\t}\n\n\t/* Initialise the date picker. */\n\tif ( !$.datepicker.initialized ) {\n\t\t$( document ).on( \"mousedown\", $.datepicker._checkExternalClick );\n\t\t$.datepicker.initialized = true;\n\t}\n\n\t/* Append datepicker main container to body if not exist. */\n\tif ( $( \"#\" + $.datepicker._mainDivId ).length === 0 ) {\n\t\t$( \"body\" ).append( $.datepicker.dpDiv );\n\t}\n\n\tvar otherArgs = Array.prototype.slice.call( arguments, 1 );\n\tif ( typeof options === \"string\" && ( options === \"isDisabled\" || options === \"getDate\" || options === \"widget\" ) ) {\n\t\treturn $.datepicker[ \"_\" + options + \"Datepicker\" ].\n\t\t\tapply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );\n\t}\n\tif ( options === \"option\" && arguments.length === 2 && typeof arguments[ 1 ] === \"string\" ) {\n\t\treturn $.datepicker[ \"_\" + options + \"Datepicker\" ].\n\t\t\tapply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );\n\t}\n\treturn this.each( function() {\n\t\ttypeof options === \"string\" ?\n\t\t\t$.datepicker[ \"_\" + options + \"Datepicker\" ].\n\t\t\t\tapply( $.datepicker, [ this ].concat( otherArgs ) ) :\n\t\t\t$.datepicker._attachDatepicker( this, options );\n\t} );\n};\n\n$.datepicker = new Datepicker(); // singleton instance\n$.datepicker.initialized = false;\n$.datepicker.uuid = new Date().getTime();\n$.datepicker.version = \"1.12.1\";\n\nreturn $.datepicker;\n\n} ) );\n","/* English/UK initialisation for the jQuery UI date picker plugin. */\r\n/* Written by Stuart. */\r\nimport jQuery from \"jquery\";\r\n\r\njQuery.datepicker.regional[ \"en-GB\" ] = {\r\n\tcloseText: \"Done\",\r\n\tprevText: \"Prev\",\r\n\tnextText: \"Next\",\r\n\tcurrentText: \"Today\",\r\n\tmonthNames: [ \"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\r\n\t\"July\",\"August\",\"September\",\"October\",\"November\",\"December\" ],\r\n\tmonthNamesShort: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\",\r\n\t\"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\" ],\r\n\tdayNames: [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ],\r\n\tdayNamesShort: [ \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\" ],\r\n\tdayNamesMin: [ \"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\" ],\r\n\tweekHeader: \"Wk\",\r\n\tdateFormat: \"dd/mm/yy\",\r\n\tfirstDay: 1,\r\n\tisRTL: false,\r\n\tshowMonthAfterYear: false,\r\n\tyearSuffix: \"\" };\r\njQuery.datepicker.setDefaults( jQuery.datepicker.regional[ \"en-GB\" ] );\r\n\r\nexport default jQuery.datepicker.regional[ \"en-GB\" ];","/* Welsh/UK initialisation for the jQuery UI date picker plugin. */\r\n/* Written by William Griffiths. */\r\nimport jQuery from \"jquery\";\r\n\r\njQuery.datepicker.regional[ \"cy-GB\" ] = {\r\n\tcloseText: \"Wedi gorffen\",\r\n\tprevText: \"Yn ôl\",\r\n\tnextText: \"Nesaf\",\r\n\tcurrentText: \"Heddiw\",\r\n\tmonthNames: [ \"Ionawr\",\"Chwefror\",\"Mawrth\",\"Ebrill\",\"Mai\",\"Mehefin\",\r\n\t\"Gorffennaf\",\"Awst\",\"Medi\",\"Hydref\",\"Tachwedd\",\"Rhagfyr\" ],\r\n\tmonthNamesShort: [ \"Ion\", \"Chw\", \"Maw\", \"Ebr\", \"Mai\", \"Meh\",\r\n\t\"Gor\", \"Aws\", \"Med\", \"Hyd\", \"Tac\", \"Rha\" ],\r\n\tdayNames: [\r\n\t\t\"Dydd Sul\",\r\n\t\t\"Dydd Llun\",\r\n\t\t\"Dydd Mawrth\",\r\n\t\t\"Dydd Mercher\",\r\n\t\t\"Dydd Iau\",\r\n\t\t\"Dydd Gwener\",\r\n\t\t\"Dydd Sadwrn\"\r\n\t],\r\n\tdayNamesShort: [ \"Sul\", \"Llu\", \"Maw\", \"Mer\", \"Iau\", \"Gwe\", \"Sad\" ],\r\n\tdayNamesMin: [ \"Su\",\"Ll\",\"Ma\",\"Me\",\"Ia\",\"Gw\",\"Sa\" ],\r\n\tweekHeader: \"Wy\",\r\n\tdateFormat: \"dd/mm/yy\",\r\n\tfirstDay: 1,\r\n\tisRTL: false,\r\n\tshowMonthAfterYear: false,\r\n\tyearSuffix: \"\" };\r\njQuery.datepicker.setDefaults( jQuery.datepicker.regional[ \"cy-GB\" ] );\r\n\r\nexport default jQuery.datepicker.regional[ \"cy-GB\" ];","import \"jquery-ui/ui/widget\";\r\nimport \"jquery-ui/ui/widgets/datepicker\";\r\nimport datepicker_en_GB from \"jquery-ui-datepicker-locales/datepicker-en-GB\";\r\nimport datepicker_cy_GB from \"jquery-ui-datepicker-locales/datepicker-cy-GB\";\r\nimport Language from \"NRW/Util/Language\";\r\nimport { EventDispatcher } from \"@nrw.core/styles\";\r\nimport $ from \"jquery\";\r\n\r\n//#region Fix for defect #26290 (with the comments - point 3)\r\n// This code adds the ability for the \"today\" button to automatically\r\n// select today's date and close the datepicker afterwards,\r\n// just like clicking on a date within the datepicker\r\nconst gotoToday = $.datepicker._gotoToday;\r\n$.datepicker._gotoToday = function (id) {\r\n gotoToday.call(this, id);\r\n \r\n const target = $(id)[0];\r\n const inst = this._getInst(target);\r\n if (this._get(inst, \"gotoTodayChangesDate\"))\r\n {\r\n target.blur(); // Unfocus the input, similar to behaviour when clicking a specific date\r\n if (this._get(inst, \"gotoTodayChangesDate\")) {\r\n target.blur();\r\n this._selectDate(target, this._formatDate(inst));\r\n }\r\n }\r\n}\r\n//#endregion\r\n\r\nclass JQueryUiDatepickerComponent {\r\n constructor(element) {\r\n let config = $.extend(\r\n {},\r\n Language.text(null, () => datepicker_en_GB, () => datepicker_cy_GB),\r\n {\r\n changeMonth: true,\r\n showButtonPanel: true,\r\n gotoTodayChangesDate: true,\r\n beforeShow: (element, instance) => {\r\n setTimeout(() => {\r\n var zIndices =\r\n $(element)\r\n .parents() // Get all parents\r\n .get() // Convert to JS array\r\n .filter(e => $(e).css(\"position\") !== \"static\") // Filter out static elements, as z-indexing only applies to non-static elements.\r\n .map(e => $(e).css(\"z-index\")) // Get z-indices\r\n .map(z => parseInt(z, 10)) // Convert to int\r\n .filter(z => !isNaN(z)); // Filter out the \"auto\" values\r\n\r\n // Get the max z-index of the above z-indices\r\n var maxZIndex = Math.max.apply(Math, zIndices);\r\n\r\n // Passing empty array into Math.max will result in -Infinity, so make sure it's a min of 0 too.\r\n maxZIndex = Math.max(maxZIndex, 0);\r\n\r\n // Now add 1 to make sure we're above the max z-index\r\n maxZIndex++;\r\n\r\n // Get jquery's guess for the z-index\r\n var datepickerZIndex = parseInt($(instance.dpDiv).css(\"z-index\"), 10);\r\n\r\n if (maxZIndex > datepickerZIndex) {\r\n $(instance.dpDiv).css(\"z-index\", maxZIndex);\r\n }\r\n\r\n $(instance.dpDiv).find(\".ui-datepicker-buttonpane button\")\r\n .toggleClass(\"button\", true)\r\n .toggleClass(\"button--primary\", true);\r\n // get the aria label from the input. that creates this component\r\n $(instance.dpDiv).find(\".ui-datepicker-month\")[0].ariaLabel = element.ariaLabel;\r\n }, 0);\r\n }\r\n }\r\n );\r\n\r\n this.$element = $(element).datepicker(config);\r\n\r\n this.$element.attr(\"placeholder\", this.$element.datepicker('option', 'dateFormat'));\r\n\r\n this.onChange = new EventDispatcher();\r\n\r\n let _this = this;\r\n this.$element.on(\"change\", function (e) {\r\n _this.onChange.invokeListeners([_this.getDate()], this);\r\n })\r\n }\r\n\r\n getDate() {\r\n return this.$element.datepicker(\"getDate\");\r\n }\r\n\r\n setDate(date) {\r\n let result = this.$element.datepicker(\"setDate\", date);\r\n this.onChange.invokeListeners([this.getDate()], this); // native \"change\" event not called by jquery when this is called...\r\n return result;\r\n }\r\n\r\n setMinDate(date) {\r\n return this.$element.datepicker(\"option\", {\r\n minDate: date\r\n });\r\n }\r\n\r\n setMaxDate(date) {\r\n return this.$element.datepicker(\"option\", {\r\n maxDate: date\r\n });\r\n }\r\n}\r\n\r\nexport default JQueryUiDatepickerComponent;","import JQueryUiDatepickerComponent from \"./JQueryUiDatepickerComponent\";\r\nimport ModalHelper from \"Helpers/ModalHelper\";\r\nimport moment from \"moment\";\r\nclass ExportDataModalComponent {\r\n static modalName() {\r\n return \"exportdata\";\r\n }\r\n \r\n constructor(modalElement) {\r\n this.$modalElement = $(modalElement);\r\n \r\n this.fromField = this.$modalElement.find(\"[name=\\\"from\\\"]\");\r\n this.fromDatepicker = new JQueryUiDatepickerComponent(this.$modalElement.find(\".export-data-modal__from\"));\r\n this.fromDatepicker.onChange.addListener((newDate) => {\r\n this.validateFromField();\r\n this.swapDatepickersIfNeeded();\r\n this.updateFromField();\r\n })\r\n \r\n this.toField = this.$modalElement.find(\"[name=\\\"to\\\"]\");\r\n this.toDatepicker = new JQueryUiDatepickerComponent(this.$modalElement.find(\".export-data-modal__to\"));\r\n this.toDatepicker.onChange.addListener((newDate) => {\r\n this.validateToField();\r\n this.swapDatepickersIfNeeded();\r\n this.updateToField();\r\n })\r\n \r\n this.$modalElement.find(\".export-data-modal__cancel\").click(function (e) {\r\n ModalHelper.Close();\r\n return false;\r\n });\r\n \r\n let _this = this;\r\n this.$modalElement.find(\"form\").on(\"submit\", function (e) {\r\n let valid = _this.validateForm();\r\n \r\n if (!valid) {\r\n return false;\r\n }\r\n });\r\n }\r\n \r\n validateFromField() {\r\n let fromValid = this.fromDatepicker.getDate() !== null;\r\n this.fromDatepicker.$element.closest(\"label\").toggleClass(\"label--validation-error\", !fromValid);\r\n return fromValid;\r\n }\r\n \r\n validateToField() {\r\n let toValid = this.toDatepicker.getDate() !== null;\r\n this.toDatepicker.$element.closest(\"label\").toggleClass(\"label--validation-error\", !toValid);\r\n return toValid;\r\n }\r\n \r\n validateForm() {\r\n return this.validateFromField() && this.validateToField();\r\n }\r\n \r\n updateFromField(date) {\r\n if (!(date instanceof Date)) {\r\n date = this.fromDatepicker.getDate();\r\n }\r\n \r\n this.fromField.val(moment(date).format(\"Y-MM-DD\"));\r\n }\r\n \r\n updateToField(date) {\r\n if (!(date instanceof Date)) {\r\n date = this.toDatepicker.getDate();\r\n }\r\n \r\n this.toField.val(moment(date).add(1, \"day\").format(\"Y-MM-DD\"));\r\n }\r\n \r\n swapDatepickersIfNeeded() {\r\n let fromDate = this.fromDatepicker.getDate();\r\n let toDate = this.toDatepicker.getDate();\r\n \r\n if (toDate && fromDate && toDate < fromDate) {\r\n this.fromDatepicker.setDate(toDate);\r\n this.toDatepicker.setDate(fromDate);\r\n }\r\n }\r\n \r\n useDateRangeLimit(range) {\r\n this.fromDatepicker.setMinDate(new Date(range.start));\r\n this.fromDatepicker.setMaxDate(new Date(range.end));\r\n this.toDatepicker.setMinDate(new Date(range.start));\r\n this.toDatepicker.setMaxDate(new Date(range.end));\r\n return this;\r\n }\r\n \r\n useDateRange(range) {\r\n this.fromDatepicker.setDate(new Date(range.start));\r\n this.toDatepicker.setDate(new Date(range.end));\r\n return this;\r\n }\r\n \r\n useParameterId(parameterId) {\r\n this.$modalElement.find(\"[name=\\\"parameter\\\"]\").val(parameterId);\r\n return this;\r\n }\r\n \r\n useLocation(stationId) {\r\n this.$modalElement.find(\"[name=\\\"location\\\"]\").val(stationId);\r\n return this;\r\n }\r\n \r\n open() {\r\n ModalHelper.Open(ExportDataModalComponent.modalName(), false);\r\n }\r\n}\r\n\r\nexport default ExportDataModalComponent;","class ViewType {\r\n constructor(key) {\r\n this.key = key;\r\n }\r\n}\r\nexport default ViewType;\r\n","import ViewType from \"./ViewType\";\r\nclass ParameterViewType extends ViewType {\r\n constructor(parameterType) {\r\n super(\"parameter:\" + parameterType);\r\n this.parameterType = parameterType;\r\n }\r\n}\r\nexport default ParameterViewType;\r\n","class StationDataMapper {\r\n static map(station) {\r\n for (let i = 0; i < station.parameters.length; i++) {\r\n let parameter = station.parameters[i];\r\n parameter.latestTime = new Date(parameter.latestTime);\r\n }\r\n return station;\r\n }\r\n}\r\nexport default StationDataMapper;\r\n","class StationDataService {\r\n getStation(id, withParameters) {\r\n withParameters = !!withParameters;\r\n let query = new URLSearchParams();\r\n query.set(\"includeStationParameters\", withParameters);\r\n let url = `/Station/GetData/${id}?${query.toString()}`;\r\n return $.ajax(url, {\r\n context: this\r\n });\r\n }\r\n}\r\nexport default StationDataService;\r\n","class Range {\r\n constructor(start, end) {\r\n this.start = start;\r\n this.end = end;\r\n }\r\n\r\n split(value) {\r\n if (value <= this.start || value >= this.end) {\r\n return [this];\r\n }\r\n\r\n return [new Range(this.start, value), new Range(value, this.end)];\r\n }\r\n\r\n getRangePositionWithinRange(range) {\r\n let result = {\r\n inside: false,\r\n outside: false,\r\n intersects: false,\r\n bordering: false,\r\n partialSize: 0,\r\n partialDirection: 0\r\n };\r\n\r\n // this: | |\r\n // range: * *\r\n\r\n if (range.start >= this.start && range.end <= this.end) {\r\n // range inside this\r\n // |* *|\r\n result.inside = true;\r\n result.intersects = true;\r\n } else if (range.start < this.start && range.end > this.end) {\r\n // range outside this\r\n // *| |*\r\n result.outside = true;\r\n result.intersects = true;\r\n return result;\r\n } else if (range.start >= this.start && range.start <= this.end && range.end >= this.end) {\r\n // range starts within this, ends beyond this\r\n // | * |<>* with <> = partialSize\r\n result.partialSize = (range.end - range.start) - (range.end - this.end);\r\n result.partialDirection = 1;\r\n result.intersects = true;\r\n } else if (range.start <= this.start && range.end >= this.start && range.end <= this.end) {\r\n // range starts before this, ends within this\r\n // *<>| * | with <> = partialSize\r\n result.partialSize = (range.end - range.start) - (this.start - range.start);\r\n result.partialDirection = -1;\r\n result.intersects = true;\r\n }\r\n\r\n if (result.partialDirection !== 0 && result.partialSize === 0) {\r\n // range borders this\r\n // | |\r\n // * *\r\n // * *\r\n result.bordering = true;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\nexport default Range;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nimport Range from \"NRW/Util/Range\";\r\nclass DataAvailabilityPlugin {\r\n constructor(dataSet) {\r\n this.dataSet = dataSet;\r\n this.onChange = new EventDispatcher();\r\n }\r\n\r\n afterDatasetsUpdate(chart) {\r\n let state = {\r\n loading: false,\r\n hasDataInView: false\r\n };\r\n let {\r\n xAxisID\r\n } = chart.getDatasetMeta(0);\r\n\r\n let min = chart.scales[xAxisID].min;\r\n let max = chart.scales[xAxisID].max;\r\n\r\n let datasets = chart.data.datasets;\r\n\r\n for (let i = 0; i < datasets.length; i++) {\r\n\r\n let dataset = datasets[i];\r\n\r\n for (let j = 0; j < dataset.data.length; j++) {\r\n\r\n let data = dataset.data[j];\r\n let x = typeof data === \"object\" ? data.x : +chart.data.labels[j];\r\n let y = typeof data === \"object\" ? data.y : +data;\r\n\r\n if (x >= min) {\r\n if (x > max) {\r\n break;\r\n }\r\n\r\n if (!isNaN(y)) {\r\n state.hasDataInView = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (state.hasDataInView) {\r\n break;\r\n }\r\n }\r\n\r\n let chunks = this.dataSet.getChunksForRange(new Range(new Date(min), new Date(max)))\r\n\r\n for (let i = 0; i < chunks.length; i++) {\r\n let chunk = chunks[i];\r\n\r\n if (chunk.loading) {\r\n state.loading = true;\r\n break;\r\n }\r\n }\r\n\r\n this.onChange.invokeListeners([state], this);\r\n }\r\n}\r\n\r\nexport default DataAvailabilityPlugin;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nclass CanvasResizeNotifierPlugin {\r\n constructor() {\r\n this.onChange = new EventDispatcher();\r\n this.hasChangedState = false;\r\n\r\n this.state = {\r\n left: 0,\r\n top: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n }\r\n\r\n set left(value) {\r\n this.setValue(\"left\", value);\r\n }\r\n\r\n set top(value) {\r\n this.setValue(\"top\", value);\r\n }\r\n\r\n set width(value) {\r\n this.setValue(\"width\", value);\r\n }\r\n\r\n set height(value) {\r\n this.setValue(\"height\", value);\r\n }\r\n\r\n setValue(key, value) {\r\n if (this.state[key] === value) {\r\n return;\r\n }\r\n\r\n this.state[key] = value;\r\n this.hasChangedState = true;\r\n }\r\n\r\n beforeDraw(chart, options) {\r\n\r\n this.left = chart.chartArea.left;\r\n this.top = chart.chartArea.top;\r\n this.width = chart.width - chart.chartArea.left;\r\n this.height = chart.chartArea.bottom - chart.chartArea.top;\r\n\r\n if (this.hasChangedState) {\r\n this.onChange.invokeListeners([this.state], this);\r\n this.hasChangedState = false;\r\n }\r\n }\r\n}\r\n\r\nexport default CanvasResizeNotifierPlugin;","import { Breakpoint } from \"@nrw.core/styles\";\r\nimport moment from \"moment\";\r\nclass AnnotationManager {\r\n constructor(chartInstance, annotationKeyComponent, graphKeyComponent) {\r\n this.chart = chartInstance;\r\n\r\n this.annotationKeyComponent = annotationKeyComponent;\r\n this.graphKeyComponent = graphKeyComponent;\r\n\r\n this._alphaLabelsEnabled = false;\r\n\r\n this._graphKeyItemsByAnnotationId = {};\r\n \r\n Breakpoint.onChange.addListener(((n, o) => this.onBreakpointChange(n, o)));\r\n this.onBreakpointChange(Breakpoint.getCurrentBreakpoint());\r\n }\r\n\r\n onBreakpointChange(newBreakpoint, oldBreakpoint) {\r\n if (newBreakpoint === Breakpoint.mobile || newBreakpoint === Breakpoint.tablet) {\r\n this.useAlphaLabels();\r\n } else {\r\n this.useLabels();\r\n }\r\n }\r\n\r\n useAlphaLabels() {\r\n let annotations = this.chart.options.annotation.annotations.slice(0).filter(a => a.type === \"line\" && a.drawTime && a.label).sort((a, b) => {\r\n return b.value - a.value;\r\n });\r\n\r\n let keys = [];\r\n\r\n for (let i = 0; i < annotations.length; i++) {\r\n let annotation = annotations[i];\r\n let newLabel = this.intToAlpha(i + 1);\r\n\r\n this.patchAnnotationById(annotation.id, (annotation) => {\r\n if (typeof annotation._nonAlpha === typeof undefined) {\r\n annotation._nonAlpha = {\r\n label: {\r\n content: annotation.label.content,\r\n cornerRadius: annotation.label.cornerRadius || 0,\r\n yAdjust: annotation.label.yAdjust || 0,\r\n fontSize: annotation.label.fontSize || 0,\r\n xPadding: annotation.label.xPadding || 0,\r\n yPadding: annotation.label.yPadding || 0,\r\n }\r\n };\r\n }\r\n\r\n $.extend(true, annotation, {\r\n label: {\r\n cornerRadius: -1, // Handled by AnnotationPositionFixPlugin\r\n content: newLabel,\r\n yAdjust: 0,\r\n fontSize: 12,\r\n xPadding: 3,\r\n yPadding: 3\r\n }\r\n });\r\n });\r\n\r\n keys.push([newLabel, annotation.alphaLabel]);\r\n }\r\n\r\n this.annotationKeyComponent.setItems(keys);\r\n this.annotationKeyComponent.setVisibility(true);\r\n\r\n this._alphaLabelsEnabled = true;\r\n }\r\n\r\n useLabels() {\r\n let annotations = this.chart.options.annotation.annotations.filter(a => a.type === \"line\" && a.drawTime && a.label);\r\n\r\n for (let i = 0; i < annotations.length; i++) {\r\n let annotation = annotations[i];\r\n\r\n this.patchAnnotationById(annotation.id, (annotation) => {\r\n if (annotation._nonAlpha) {\r\n $.extend(true, annotation, annotation._nonAlpha);\r\n delete annotation._nonAlpha;\r\n }\r\n })\r\n \r\n }\r\n\r\n this.annotationKeyComponent.setVisibility(false);\r\n\r\n this._alphaLabelsEnabled = false;\r\n }\r\n\r\n intToAlpha(int) {\r\n let alpha = \"\";\r\n\r\n while (int > 0) {\r\n let t = (int - 1) % 26;\r\n alpha = String.fromCharCode(65 + t) + alpha;\r\n int = (int - t) / 26 | 0;\r\n }\r\n\r\n return alpha;\r\n }\r\n\r\n add(annotation) {\r\n annotation._drawTime = annotation.drawTime || \"afterDatasetsDraw\";\r\n\r\n if (\"drawTime\" in annotation) {\r\n // Store drawTime in another property, then delete it to \"hide\" the annotation\r\n delete annotation.drawTime;\r\n }\r\n\r\n if (annotation.type === \"line\") {\r\n this.attachTooltip(annotation);\r\n } else {\r\n annotation.nonInteractive = true; // Modified annotation plugin method getNearestItems filters this\r\n\r\n // References on the annotation object get cloned, which turns the GraphKeyItemComponent instance into an Object\r\n // , so we use a mapping to store it instead\r\n this._graphKeyItemsByAnnotationId[annotation.id] = this.graphKeyComponent.add(annotation.backgroundColor, annotation.label.content);\r\n this._graphKeyItemsByAnnotationId[annotation.id].setVisibility(false);\r\n }\r\n\r\n this.chart.options.annotation.annotations.push(annotation);\r\n }\r\n\r\n setVisibility(annotationId, toggle) {\r\n this.patchAnnotationById(annotationId, (annotation) => {\r\n this.toggleDrawTime(annotation, toggle);\r\n });\r\n \r\n if (annotationId in this._graphKeyItemsByAnnotationId) {\r\n this._graphKeyItemsByAnnotationId[annotationId].setVisibility(toggle);\r\n }\r\n\r\n if (this._alphaLabelsEnabled) {\r\n this.useAlphaLabels();\r\n }\r\n }\r\n\r\n patchAnnotationById(annotationId, updateFn) {\r\n if (annotationId in this.chart.annotation.elements) {\r\n updateFn(this.chart.annotation.elements[annotationId].options);\r\n }\r\n\r\n let config = this.findAnnotationInConfigById(annotationId);\r\n\r\n if (config) {\r\n updateFn(config);\r\n }\r\n }\r\n\r\n findAnnotationInConfigById(id) {\r\n for (let i = 0; i < this.chart.options.annotation.annotations.length; i++) {\r\n let annotation = this.chart.options.annotation.annotations[i];\r\n if (annotation.id === id) {\r\n return annotation;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n attachTooltip(annotation) {\r\n let _this = this;\r\n\r\n annotation.onMouseenter = function (ev) {\r\n $.extend(_this.chart.customTooltip, {\r\n lines: [],\r\n enabled: true,\r\n caretPosition: {\r\n x: _this.chart.chartArea.right,\r\n y: this._model.labelY,\r\n topCaretYOffset: this._model.labelHeight\r\n }\r\n });\r\n\r\n if (this.options._nonAlpha && this.options._nonAlpha.label.content) {\r\n _this.chart.customTooltip.lines.push({\r\n text: this.options._nonAlpha.label.content,\r\n style: {\r\n bold: true\r\n }\r\n });\r\n }\r\n\r\n if (annotation.tooltip) {\r\n _this.chart.customTooltip.lines.push(moment(annotation.tooltip).format(this.chartInstance.config.dateFormat));\r\n }\r\n\r\n this.chartInstance.render(0);\r\n };\r\n\r\n annotation.onMouseleave = function (ev) {\r\n $.extend(_this.chart.customTooltip, {\r\n enabled: false\r\n });\r\n\r\n this.chartInstance.render(0);\r\n };\r\n }\r\n\r\n toggleDrawTime(annotationOptions, toggle) {\r\n if (!annotationOptions) {\r\n return;\r\n }\r\n\r\n if (toggle) {\r\n annotationOptions.drawTime = annotationOptions._drawTime;\r\n } else if (\"drawTime\" in annotationOptions) {\r\n delete annotationOptions.drawTime;\r\n }\r\n }\r\n}\r\n\r\nexport default AnnotationManager;","import Resource from \"NRW/Util/Resource\";\r\n\r\nclass DataAvailabilityComponent {\r\n constructor(element) {\r\n this.element = element;\r\n this.$element = $(element);\r\n this.$spinner = this.$element.find(\".graph-loading-modal__loading-spinner\");\r\n this.$info = this.$element.find(\".graph-loading-modal__info\");\r\n this.state = {\r\n hasData: false\r\n };\r\n }\r\n \r\n onDataAvailibilityChange(state) {\r\n this.state = $.extend(this.state, state);\r\n \r\n if (this.state.hasDataInView) {\r\n this.state.hasData = true;\r\n }\r\n \r\n if (this.state.loading) {\r\n this.$element.show();\r\n this.$spinner.show();\r\n this.$info.hide();\r\n } else if (!this.state.hasData || !this.state.hasDataInView) {\r\n this.$element.show();\r\n this.$spinner.hide();\r\n this.$info.show();\r\n \r\n let message = \"\";\r\n if (this.state.hasData) {\r\n message = Resource.NoDataAvailableForCurrentRange;\r\n } else {\r\n message = Resource.NoDataAvailable;\r\n }\r\n \r\n this.$info.text(message);\r\n } else {\r\n this.$element.hide();\r\n this.$spinner.hide();\r\n this.$info.hide();\r\n }\r\n }\r\n \r\n onAnyDataLoaded() {\r\n this.state.hasData = true;\r\n }\r\n \r\n onCanvasSizeChange(styles) {\r\n this.$element.css({\r\n left: styles.left + \"px\",\r\n top: styles.top + \"px\",\r\n width: styles.width + \"px\",\r\n height: styles.height + \"px\"\r\n })\r\n }\r\n}\r\n\r\nexport default DataAvailabilityComponent;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nclass MobileControlsComponent {\r\n constructor(container) {\r\n this.container = container;\r\n this.panButtons = container.querySelectorAll('[data-pan]');\r\n this.zoomButtons = container.querySelectorAll('[data-zoom]');\r\n\r\n this.onZoom = new EventDispatcher();\r\n this.onPan = new EventDispatcher();\r\n\r\n $(this.panButtons).on(\"click\", ev => {\r\n ev.preventDefault();\r\n let direction = ev.target.dataset.pan;\r\n let event = {\r\n direction: direction\r\n }\r\n this.onPan.invokeListeners([event], this)\r\n })\r\n\r\n $(this.zoomButtons).on(\"click\", ev => {\r\n ev.preventDefault();\r\n let direction = ev.target.dataset.zoom;\r\n let event = {\r\n direction: direction\r\n }\r\n this.onZoom.invokeListeners([event], this)\r\n })\r\n }\r\n}\r\n\r\nexport default MobileControlsComponent;","const TimeFormatId = \"timeFormat24Hours\";\r\n\r\nconst GraphOptionsEvents = Object.freeze({\r\n isTimeFormat: function (event) {\r\n const { type, name } = event;\r\n\r\n if (type !== \"\") {\r\n return false;\r\n }\r\n\r\n if (name === TimeFormatId) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n isAnnotation: function (event) {\r\n const { type, name } = event;\r\n\r\n if (type === \"annotation\") {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n});\r\n\r\nexport default GraphOptionsEvents;","import DataAvailabilityPlugin from \"./Configuration/Plugins/DataAvailabilityPlugin\";\r\nimport CanvasResizeNotifierPlugin from \"./Configuration/Plugins/CanvasResizeNotifierPlugin\";\r\nimport AnnotationManager from \"./Annotations/AnnotationManager\";\r\nimport DataAvailabilityComponent from \"./DataAvailabilityComponent\";\r\nimport MobileControlsComponent from \"./MobileControlsComponent\";\r\nimport GraphOptionsEvents from \"./GraphOptionsEvents\";\r\nimport Range from \"NRW/Util/Range\";\r\nimport { Throttler } from \"@nrw.core/styles\";\r\nimport Chart from \"chartjs\";\r\nimport moment from \"moment\";\r\nclass StationParameterGraphComponent {\r\n static defaultRangeSizeMs() {\r\n return 4 /*days*/ * 24 /*hours*/ * 60 /*minutes*/ * 60 /*seconds*/ * 1000 /*milliseconds*/ ;\r\n }\r\n\r\n constructor(canvas, station, parameter, graphOptionsComponent, annotationKeyComponent, rangeSelectorComponent, loadingModal, serviceContainer, graphKeyComponent) {\r\n this.canvas = canvas;\r\n this.station = station;\r\n this.parameter = parameter;\r\n this.graphOptionsComponent = graphOptionsComponent;\r\n this.rangeSelectorComponent = rangeSelectorComponent;\r\n this.graphKeyComponent = graphKeyComponent;\r\n\r\n this.initialChunksLoaded = false;\r\n this.rangeSelectorUpdateThrottler = new Throttler(500);\r\n\r\n this.services = serviceContainer;\r\n\r\n this.dataAvailabilityComponent = this.buildDataAvailabilityComponent(loadingModal);\r\n\r\n this.setXAxisMin(this.services.graphConfig.options.pan.rangeMin.x);\r\n\r\n let defaultRangeSizeMs = StationParameterGraphComponent.defaultRangeSizeMs();\r\n\r\n //#region Initial view range\r\n let defaultEndDate = new Date();\r\n defaultEndDate.setHours(defaultEndDate.getHours() + 4);\r\n let defaultStartDate = new Date(defaultEndDate.getTime() - defaultRangeSizeMs);\r\n let defaultRange = new Range(defaultStartDate, defaultEndDate);\r\n this.setGraphRange(defaultRange);\r\n this.rangeSelectorComponent.setRange(defaultRange);\r\n //#endregion\r\n\r\n this.services.dataSetView.dataUpdated.addListener((range) => {\r\n this.services.graphConfig.data = this.services.dataSetAdapter.convert(this.services.dataSetView.startChunk);\r\n this.updateGraph();\r\n });\r\n\r\n this.graphOptionsComponent.onChange.addListener((event) => {\r\n this.onGraphOptionsComponentUpdate(event);\r\n });\r\n\r\n this.rangeSelectorComponent.onChange.addListener((range) => {\r\n this.setGraphRange(range);\r\n this.updateGraph();\r\n });\r\n\r\n this.rangeSelectorComponent.onReset.addListener(() => {\r\n let range = this.rangeSelectorComponent.getRangeForDate(moment(this.parameter.latestTime).add(4, 'hours'));\r\n this.rangeSelectorComponent.setRange(range);\r\n this.setGraphRange(range);\r\n this.updateGraph();\r\n });\r\n\r\n this.services.graphConfig.onBeforePanOrZoomUpdate.addListener(() => {\r\n this.updateGraphRange();\r\n });\r\n\r\n this.graph = new Chart(this.canvas, this.services.graphConfig);\r\n\r\n this.buildMobileControlsComponent();\r\n this.annotationKeyComponent = annotationKeyComponent;\r\n this.annotationManager = new AnnotationManager(this.graph, this.annotationKeyComponent, this.graphKeyComponent);\r\n\r\n let annotations = this.services.graphConfig.getAllAnnotations();\r\n\r\n for (let i = 0; i < annotations.length; i++) {\r\n this.annotationManager.add(annotations[i]);\r\n }\r\n }\r\n\r\n updateGraphRange() {\r\n let range = this.getGraphRange();\r\n this.updateDataSetViewRange(range);\r\n this.deferredRangeSelectorComponentSetChange(range);\r\n }\r\n\r\n setXAxisMin(value) {\r\n let hasValidMin = typeof value === \"number\" && !isNaN(value) && value > 1;\r\n\r\n this.services.graphConfig.options.pan.rangeMin.x = hasValidMin ? value : 1;\r\n\r\n this.rangeSelectorComponent.setMinDate(new Date(value));\r\n this.dataAvailabilityComponent.onDataAvailibilityChange({\r\n hasData: hasValidMin\r\n });\r\n }\r\n\r\n buildMobileControlsComponent() {\r\n this.mobileControlsComponent = new MobileControlsComponent(document.querySelector(\".graph-controls\"))\r\n this.mobileControlsComponent.onZoom.addListener((event) => {\r\n let chartArea = this.graph.chart.chartArea;\r\n let scale = this.graph.scales[\"x-axis-0\"];\r\n let options = this.graph.options.zoom;\r\n let center = {\r\n x: (chartArea.left + chartArea.right) / 2,\r\n y: (chartArea.top + chartArea.bottom) / 2,\r\n };\r\n\r\n let zoom = 1.5;\r\n if (event.direction === \"out\") {\r\n zoom = 0.5;\r\n }\r\n\r\n options.scaleAxes = \"x\";\r\n Chart.Zoom.zoomFunctions.linear(scale, zoom, center, options);\r\n\r\n this.updateGraph();\r\n this.updateGraphRange();\r\n });\r\n\r\n this.mobileControlsComponent.onPan.addListener((event) => {\r\n let scale = this.graph.scales[\"x-axis-0\"];\r\n let options = this.graph.options.pan;\r\n let delta = (this.graph.width - this.graph.chartArea.left) / 2;\r\n\r\n if (event.direction === \"right\") {\r\n delta = -delta;\r\n }\r\n\r\n options.scaleAxes = \"x\";\r\n Chart.Zoom.panFunctions.linear(scale, delta, options);\r\n\r\n this.updateGraph();\r\n this.updateGraphRange();\r\n\r\n });\r\n }\r\n\r\n buildDataAvailabilityComponent(loadingModal) {\r\n let dataAvailabilityComponent = new DataAvailabilityComponent(loadingModal);\r\n\r\n let dataAvailabilityPlugin = new DataAvailabilityPlugin(this.services.dataSet);\r\n\r\n dataAvailabilityPlugin.onChange.addListener((state) => {\r\n this.dataAvailabilityComponent.onDataAvailibilityChange(state);\r\n });\r\n\r\n this.services.graphConfig.addPlugin(dataAvailabilityPlugin);\r\n\r\n let canvasResizeNotifierPlugin = new CanvasResizeNotifierPlugin();\r\n\r\n canvasResizeNotifierPlugin.onChange.addListener((styles) => {\r\n this.dataAvailabilityComponent.onCanvasSizeChange(styles);\r\n });\r\n\r\n this.services.graphConfig.addPlugin(canvasResizeNotifierPlugin);\r\n\r\n return dataAvailabilityComponent;\r\n }\r\n\r\n updateGraph() {\r\n if (this.graph) {\r\n this.graph.update({\r\n duration: 0\r\n });\r\n }\r\n }\r\n\r\n resizeGraph() {\r\n if (this.graph) {\r\n this.graph.aspectRatio = this.graph.options.aspectRatio;\r\n this.graph.resize();\r\n }\r\n }\r\n\r\n deferredRangeSelectorComponentSetChange(range) {\r\n this.rangeSelectorUpdateThrottler.executeSoon(() => {\r\n this.rangeSelectorComponent.setRange(range);\r\n })\r\n }\r\n\r\n getGraphRange() {\r\n return new Range(this.services.graphConfig.options.scales.xAxes[0].ticks.min, this.services.graphConfig.options.scales.xAxes[0].ticks.max);\r\n }\r\n\r\n setGraphRange(range) {\r\n this.services.graphConfig.options.scales.xAxes[0].ticks.min = moment(range.start).valueOf();\r\n this.services.graphConfig.options.scales.xAxes[0].ticks.max = moment(range.end).valueOf();\r\n this.updateDataSetViewRange(range);\r\n }\r\n\r\n updateDataSetViewRange(range) {\r\n this.services.dataSetView.range = range;\r\n }\r\n\r\n onGraphOptionsComponentUpdate(event) {\r\n const { type, name, value } = event;\r\n\r\n if (GraphOptionsEvents.isTimeFormat(event)) {\r\n this.services.graphConfig.setTimeFormatTo24Hours(value);\r\n this.updateGraph();\r\n } else if (GraphOptionsEvents.isAnnotation(event)) {\r\n this.annotationManager.setVisibility(name, event.value);\r\n this.updateGraph();\r\n }\r\n }\r\n}\r\n\r\nexport default StationParameterGraphComponent;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nimport AccordionHelper from \"Helpers/AccordionHelper\";\r\nclass GraphOptionsComponent {\r\n constructor(element) {\r\n this.element = element;\r\n this.titleElement = this.element.querySelector(\".graph-options__title\");\r\n this.$optionCheckboxes = $(this.element).find(\".graph-options__list-item\");\r\n this.$optionCheckboxes.change((event) => this.optionChanged(event));\r\n this.onChange = new EventDispatcher();\r\n this._applyingChangeEvent = false;\r\n \r\n this.accordionHelper = new AccordionHelper();\r\n \r\n $(this.titleElement).on(\"click\", () => {\r\n this.toggleState();\r\n return false;\r\n });\r\n \r\n $(this.element).on(\"keyup\", e => {\r\n if (e.keyCode === 27) {\r\n this.toggleState(false);\r\n return false;\r\n }\r\n });\r\n \r\n this.addWindowMouseInteractivityListener();\r\n }\r\n \r\n toggleState(force) {\r\n this.accordionHelper.ToggleState(this.element, force);\r\n }\r\n \r\n addWindowMouseInteractivityListener() {\r\n window.addEventListener(\"pointerdown\", (ev) => {\r\n if ($(ev.target).closest(this.element).length === 0) {\r\n this.accordionHelper.Close(this.element);\r\n }\r\n });\r\n }\r\n \r\n optionChanged(event) {\r\n if (this._applyingChangeEvent) {\r\n return;\r\n }\r\n \r\n let optionChanged = event.target.dataset.optionId;\r\n let [type, name] = optionChanged.split(\":\");\r\n let isActive = event.target.checked;\r\n \r\n let optionChangedEvent = {\r\n type,\r\n name,\r\n value: isActive,\r\n };\r\n \r\n this.onChange.invokeListeners([optionChangedEvent], this);\r\n }\r\n \r\n applyOptionChangedEvent(event) {\r\n this._applyingChangeEvent = true;\r\n this.$optionCheckboxes.find(`[data-option-id='${event.key}']`).prop(\"checked\", event.value);\r\n this._applyingChangeEvent = false;\r\n }\r\n \r\n static syncAll(components){\r\n return new CompositeGraphOptionsComponent(components);\r\n }\r\n}\r\n\r\nclass CompositeGraphOptionsComponent {\r\n constructor(components) {\r\n this.onChange = new EventDispatcher();\r\n \r\n for (let i = 0; i < components.length; i++) {\r\n let component = components[i];\r\n \r\n component.onChange.addListener((event) => {\r\n for (let j = 0; j < components.length; j++) {\r\n let componentToUpdate = components[j];\r\n \r\n if (componentToUpdate === component) {\r\n continue;\r\n }\r\n \r\n componentToUpdate.applyOptionChangedEvent(event);\r\n }\r\n this.onChange.invokeListeners([event], component);\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default GraphOptionsComponent;","class AnnotationKeyComponent {\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n setVisibility(toggle) {\r\n $(this.element).toggleClass(\"display-none\", !toggle);\r\n }\r\n\r\n setItems(items) {\r\n // items: [[\"A\", \"Lowest recorded\"], [\"B\", \"...\"], ...]\r\n $(this.element).empty().append(items.map(i => this.buildItem(i[0], i[1])));\r\n }\r\n\r\n buildItem(alphaKey, text) {\r\n let $item = $(`<div class=\"threshold-keys__item\">\r\n <span class=\"threshold-keys__item-key\"></span>\r\n <span class=\"threshold-keys__item-value\"></span>\r\n </div>`);\r\n\r\n $item.find(\".threshold-keys__item-key\").text(alphaKey);\r\n $item.find(\".threshold-keys__item-value\").text(text);\r\n\r\n return $item;\r\n }\r\n}\r\n \r\nexport default AnnotationKeyComponent;","import Range from \"NRW/Util/Range\";\r\nimport { EventDispatcher } from \"@nrw.core/styles\";\r\nimport JQueryUiDatepickerComponent from \"../JQueryUiDatepickerComponent\";\r\nimport moment from \"moment\";\r\n\r\nconst rangeParseRegex = /([0-9]+)([a-zA-Z]+)/;\r\n\r\nclass DateRangeSelectorComponent {\r\n constructor(container) {\r\n this.container = container;\r\n \r\n this.rangePicker = container.querySelector(\".graph-filters__range-picker\");\r\n this.toDatePicker = new JQueryUiDatepickerComponent(container.querySelector(\".graph-filters__to-date-picker\"));\r\n this.toDatePicker.setMaxDate(0);\r\n this.applyButton = container.querySelector(\".graph-filters__apply\");\r\n \r\n this.resetButton = container.querySelector(\".graph-filters__reset\")\r\n this.possibleRangeOptions = this.rangePicker.querySelectorAll(\"option\");\r\n \r\n $(this.applyButton).on(\"click\", ev => {\r\n this.apply();\r\n return false;\r\n });\r\n \r\n $(this.resetButton).on(\"click\", ev => {\r\n this.onReset.invokeListeners([], this);\r\n return false;\r\n });\r\n \r\n this.onChange = new EventDispatcher();\r\n this.onReset = new EventDispatcher();\r\n }\r\n \r\n apply() {\r\n this.onChange.invokeListeners([this.getRange()], this);\r\n }\r\n \r\n setMinDate(date) {\r\n this.toDatePicker.setMinDate(date);\r\n }\r\n \r\n getRange() {\r\n return this.getRangeForDate(moment(this.toDatePicker.getDate()).startOf('day').add(1, 'day'));\r\n }\r\n \r\n getRangeForDate(datePickerDate) {\r\n datePickerDate = moment(datePickerDate);\r\n let fromDate = this.calculateFromDate(this.rangePicker.value, datePickerDate);\r\n return new Range(fromDate, datePickerDate.toDate());\r\n }\r\n \r\n calculateFromDate(range, toDate) {\r\n let rangeMatch = this.parseRange(range);\r\n let fromDate = moment(toDate).add(-rangeMatch.number, rangeMatch.unit);\r\n \r\n if (rangeMatch.unit === \"Y\") {\r\n // Fixes 12 month view being 11 months 30 days when using moment.duration(end - start)\r\n fromDate.subtract(1, 'day');\r\n }\r\n \r\n return fromDate.toDate();\r\n }\r\n \r\n parseRange(range) {\r\n // Match a number and a suffixed unit (m|w|d)\r\n let rangeMatch = rangeParseRegex.exec(range);\r\n return {\r\n number: +rangeMatch[1],\r\n unit: rangeMatch[2]\r\n };\r\n }\r\n \r\n setRange(range) {\r\n // Set range / view dropdown to range size rounded up to nearest view\r\n let duration = moment.duration(moment(range.end).diff(range.start));\r\n \r\n for (let i = 0; i < this.possibleRangeOptions.length; i++) {\r\n let option = this.possibleRangeOptions[i];\r\n \r\n let rangeMatch = this.parseRange(option.value);\r\n \r\n if (rangeMatch.number >= duration.as(rangeMatch.unit) || i === this.possibleRangeOptions.length - 1) { // Possible rounding error / inaccuracy error here\r\n this.rangePicker.selectedIndex = i;\r\n break;\r\n }\r\n }\r\n \r\n // Set to date\r\n this.setToDate(new Date(range.end));\r\n }\r\n \r\n setToDate(date) {\r\n if (date.getHours() === 0 && date.getMinutes() === 0 && date.getSeconds() === 0 && date.getMilliseconds() === 0) {\r\n date.setDate(date.getDate() - 1); // Round down to the previous day if 00:00:00\r\n }\r\n date.setHours(0, 0, 0, 0); // Clear the time component\r\n this.toDatePicker.setDate(date);\r\n }\r\n}\r\n\r\nexport default DateRangeSelectorComponent;","import Html from \"NRW/Util/Html\";\r\nimport Resource from \"NRW/Util/Resource\";\r\nimport ModalHelper from \"Helpers/ModalHelper\";\r\nlet NEXT_ID = 0;\r\n\r\nconst TEMPLATE_FN = function (modalName) { \r\n return `<div class=\"modal-container__modal modal long-term-comparison-modal\" data-modal-name=\"${modalName}\" role=\"dialog\" aria-modal=\"true\" aria-label=\"${Resource.LongTermComparison}\">\r\n <div class=\"long-term-comparison-modal__toolbar\">\r\n <button class=\"button button--icon-chev-left-centred button--secondary button--secondary-blue long-term-comparison-modal__back\">${Resource.Back}</button>\r\n <i data-component=\"mobileHelpIcon\"></i>\r\n </div>\r\n <div data-component=\"longTermComparison\"></div>\r\n </div>`;\r\n};\r\n\r\n\r\nclass LongTermComparisonModal {\r\n constructor(longTermComparisonComponent) {\r\n let $modalContainer = $(\".modal-container\");\r\n\r\n this.id = NEXT_ID++;\r\n this.modalName = `longtermcomparison${this.id}`;\r\n\r\n let template = TEMPLATE_FN(this.modalName);\r\n\r\n this.component = longTermComparisonComponent;\r\n this.modalDom = Html.renderTemplate(template, {\r\n longTermComparison: this.component,\r\n mobileHelpIcon: Html.staticComponent(\r\n $(`<p class=\"long-term-comparison-modal__mobile-help-icon info-icon\"></p>`)\r\n .attr(\"data-tooltip\", Resource.ContextualGraphHelpText)\r\n .attr(\"aria-label\", Resource.ContextualGraphHelpText)\r\n .get(0)\r\n )\r\n });\r\n\r\n let backButton = this.modalDom[0].querySelector(\".long-term-comparison-modal__back\"); \r\n $modalContainer.append(this.modalDom);\r\n \r\n let _this = this;\r\n $modalContainer.on(\"click\", function (e) {\r\n if ($(e.target).closest(_this.modalDom).length > 0) {\r\n // If click occured inside modal, don't worry\r\n return;\r\n }\r\n\r\n if (!$(_this.modalDom).hasClass(\"modal--visible\")) {\r\n // If modal isn't visible, don't worry\r\n return;\r\n }\r\n \r\n ModalHelper.Close();\r\n });\r\n $(backButton).click(function (e) {\r\n ModalHelper.Close();\r\n });\r\n }\r\n\r\n open() {\r\n ModalHelper.Open(this.modalName, true);\r\n }\r\n}\r\n\r\nexport default LongTermComparisonModal;","import moment from \"moment\";\r\n\r\nclass LongTermRainfallDataService {\r\n constructor() {\r\n\r\n }\r\n\r\n getData(parameterId) {\r\n let query = new URLSearchParams();\r\n query.set(\"parameterId\", parameterId);\r\n\r\n let date = moment().format();\r\n query.set(\"clientDate\", date);\r\n\r\n let url = `/graph/GetLongTermRainfallData?${query.toString()}`;\r\n\r\n return $.ajax(url, {context: this}).then(result => {\r\n result.data = result.data.map(d => {\r\n d.indexDate = new Date(d.indexDate);\r\n return d;\r\n });\r\n return result;\r\n });\r\n }\r\n}\r\n\r\nexport default LongTermRainfallDataService;","import Constants from \"NRW/Constants\";\r\nexport default Object.freeze({\r\n FONT_SIZE: {\r\n MOBILE: 12,\r\n DEFAULT: 16\r\n },\r\n FONT_COLOUR: \"#000000\",\r\n FONT_FAMILY: Constants.FONT_FAMILY,\r\n \r\n BORDER_COLOR: \"#dadada\",\r\n\r\n TIME_FORMAT_24_HOURS: \"HH:mm\",\r\n TIME_FORMAT_12_HOURS: \"h:mm a\",\r\n\r\n SHORT_TIME_FORMAT_24_HOURS: \"HH:00\",\r\n SHORT_TIME_FORMAT_12_HOURS: \"h a\",\r\n\r\n DATE_FORMAT: \"DD/MM/YY\",\r\n FULL_DATE_FORMAT: \"DD/MM/YYYY\",\r\n\r\n BLUE: \"#20C4F4\",\r\n GREY: \"#D6D6D6\",\r\n LIGHT_GREEN_1: \"#358728\", // from sass\r\n DARK_GREY: \"#58595B\",\r\n LINE_RED: \"#FF4600\",\r\n\r\n DEFAULT_TIME_FORMAT_24_HOURS: true\r\n});\r\n","import { EventDispatcher } from \"@nrw.core/styles\";\r\nconst LANDSCAPE = \"landscape\";\r\nconst PORTRAIT = \"portrait\";\r\nclass Orientation {\r\n constructor() {\r\n this.landscapeMediaQuery = window.matchMedia(\"screen and (orientation: landscape)\");\r\n this.landscapeMediaQuery.addListener(ev => this.onOrientationStateChange(ev));\r\n\r\n this.lastOrientation = this.getCurrentOrientation();\r\n this.onChange = new EventDispatcher();\r\n }\r\n\r\n get landscape() {\r\n return LANDSCAPE;\r\n }\r\n\r\n get portrait() {\r\n return PORTRAIT;\r\n }\r\n\r\n getCurrentOrientation() {\r\n let newOrientation = PORTRAIT;\r\n\r\n if (this.landscapeMediaQuery.matches) {\r\n newOrientation = LANDSCAPE;\r\n }\r\n\r\n return newOrientation;\r\n }\r\n\r\n onOrientationStateChange(ev) {\r\n let newOrientation = this.getCurrentOrientation();\r\n\r\n this.onChange.invokeListeners([newOrientation, this.lastOrientation], this);\r\n \r\n this.lastOrientation = newOrientation;\r\n }\r\n}\r\nexport default new Orientation();\r\n","import GraphConstants from \"./GraphConstants\";\r\nimport Orientation from \"NRW/Util/Orientation\";\r\nimport { EventDispatcher, Breakpoint } from \"@nrw.core/styles\";\r\nclass GraphConfigurationBase {\r\n constructor() {\r\n this.onConfigChanged = new EventDispatcher();\r\n\r\n $.extend(this, {\r\n // Base configuration structure here\r\n options: {\r\n aspectRatio: 2,\r\n legend: {\r\n display: false\r\n },\r\n animation: {\r\n duration: 0, // general animation time\r\n },\r\n hover: {\r\n intersect: false,\r\n animationDuration: 0,\r\n axis: 'x',\r\n mode: \"nearest-within-chart-area\"\r\n },\r\n responsiveAnimationDuration: 0,\r\n scales: {\r\n xAxes: [{\r\n id: \"x-axis-0\",\r\n gridLines: {\r\n drawOnChartArea: false,\r\n color: GraphConstants.BORDER_COLOR\r\n },\r\n ticks: {\r\n maxRotation: 0,\r\n minRotation: 0,\r\n fontColor: GraphConstants.FONT_COLOUR,\r\n fontFamily: GraphConstants.FONT_FAMILY,\r\n fontStyle: \"500\",\r\n major: {},\r\n minor: {},\r\n padding: 5,\r\n }\r\n \r\n }],\r\n yAxes: [{\r\n id: \"y-axis-0\",\r\n ticks: {\r\n fontColor: GraphConstants.FONT_COLOUR,\r\n fontFamily: GraphConstants.FONT_FAMILY,\r\n fontStyle: \"500\",\r\n major: {},\r\n minor: {},\r\n padding: 5,\r\n beginAtZero: false\r\n },\r\n gridLines: {\r\n drawOnChartArea: false,\r\n color: GraphConstants.BORDER_COLOR\r\n },\r\n scaleLabel: {\r\n fontColor: GraphConstants.FONT_COLOUR,\r\n fontFamily: GraphConstants.FONT_FAMILY,\r\n fontStyle: \"500\"\r\n }\r\n }]\r\n },\r\n elements: {\r\n line: {\r\n tension: 0\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n updateResponsiveProperties(breakpoint, orientation) {\r\n this.notifyOfNeededUpdates(this.updateResponsivePropertiesInternal(breakpoint, orientation));\r\n }\r\n\r\n updateResponsivePropertiesInternal(breakpoint, orientation) {\r\n this.lastBreakpoint = breakpoint;\r\n this.lastOrientation = orientation;\r\n\r\n let neededUpdates = {\r\n resize: false,\r\n update: false\r\n };\r\n\r\n // Set font sizes\r\n let fontSize = GraphConstants.FONT_SIZE.DEFAULT;\r\n if (breakpoint === Breakpoint.mobile) {\r\n fontSize = GraphConstants.FONT_SIZE.MOBILE;\r\n }\r\n \r\n neededUpdates.update |= this.updateFontSize(fontSize);\r\n\r\n return neededUpdates;\r\n }\r\n\r\n notifyOfNeededUpdates(neededUpdates) {\r\n if (neededUpdates.resize || neededUpdates.update) {\r\n this.onConfigChanged.invokeListeners([neededUpdates], this);\r\n }\r\n }\r\n\r\n updateAspectRatio(aspectRatio) {\r\n let hasUpdated = false;\r\n\r\n if (this.options.aspectRatio !== aspectRatio) {\r\n this.options.aspectRatio = aspectRatio;\r\n hasUpdated = true;\r\n }\r\n\r\n return hasUpdated;\r\n }\r\n\r\n updateFontSize(fontSize) {\r\n let xScale = this.findScaleByIndex(\"x\", 0);\r\n let yScale = this.findScaleByIndex(\"y\", 0);\r\n\r\n let hasUpdated = false;\r\n\r\n if (xScale.ticks.fontSize !== fontSize) {\r\n xScale.ticks.major.fontSize = xScale.ticks.minor.fontSize = xScale.ticks.fontSize = fontSize;\r\n hasUpdated = true;\r\n }\r\n\r\n if (yScale.ticks.fontSize !== fontSize) {\r\n yScale.ticks.major.fontSize = yScale.ticks.minor.fontSize = yScale.ticks.fontSize = fontSize;\r\n hasUpdated = true;\r\n }\r\n \r\n if (yScale.scaleLabel.fontSize !== fontSize) {\r\n yScale.scaleLabel.fontSize = fontSize;\r\n hasUpdated = true;\r\n }\r\n\r\n return hasUpdated;\r\n }\r\n\r\n listenForBreakpointChangesFrom(breakpointClass) {\r\n breakpointClass.onChange.addListener((newBreakpoint) => {\r\n this.updateResponsiveProperties(newBreakpoint, this.lastOrientation);\r\n });\r\n\r\n return this;\r\n }\r\n\r\n listenForOrientationChangesFrom(orientationClass) {\r\n orientationClass.onChange.addListener((newOrientation) => {\r\n this.updateResponsiveProperties(this.lastBreakpoint, newOrientation);\r\n });\r\n\r\n return this;\r\n }\r\n \r\n findScaleByIndex(dimension, index) {\r\n return this.options.scales[dimension + \"Axes\"][index];\r\n }\r\n\r\n addPlugin(plugin) {\r\n this.plugins.push(plugin);\r\n }\r\n\r\n findPluginInstance(PluginClass) {\r\n for (let i = 0; i < this.plugins.length; i++ ) {\r\n if (this.plugins[i] instanceof PluginClass) {\r\n return this.plugins[i];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nexport default GraphConfigurationBase;","import helpers from \"Chartjs/Plugins/Annotation/src/helpers\";\r\nimport Chart from \"chartjs\";\r\nclass RemovePaddingRightPlugin {\r\n constructor() {\r\n\r\n }\r\n\r\n afterLayout(chart) {\r\n chart.chartArea.right = chart.width;\r\n\r\n let xAxis = chart.scales[\"x-axis-0\"];\r\n \r\n let widthDiff = chart.width - xAxis.right;\r\n xAxis.width += widthDiff;\r\n xAxis.right = chart.width;\r\n\r\n // Chartjs' annotation plugin calls this in afterScaleUpdate, which is before afterLayout (this method)\r\n // This block of code essentially allows annotations to render with the new chart area box as defined above\r\n helpers(Chart).elements(chart).forEach((element) => {\r\n element.configure();\r\n });\r\n }\r\n}\r\n\r\nexport default RemovePaddingRightPlugin;","class LineThroughTooltipPlugin {\r\n constructor(options) {\r\n $.extend(true, this, {\r\n color: \"red\",\r\n width: 10,\r\n drawUnderDatasets: false\r\n }, options);\r\n }\r\n\r\n beforeDatasetsDraw(chart, easingValue) {\r\n if (this.drawUnderDatasets) {\r\n this.draw(chart, easingValue);\r\n }\r\n }\r\n\r\n afterDatasetsDraw(chart, easingValue) {\r\n if (!this.drawUnderDatasets) {\r\n this.draw(chart, easingValue);\r\n }\r\n } \r\n\r\n draw(chart, easingValue) {\r\n let ctx = chart.ctx;\r\n let area = chart.chartArea;\r\n\r\n let tooltip = chart.tooltip;\r\n let vm = tooltip._view;\r\n\r\n let hasTooltipContent = vm.opacity !== 0 && (vm.title.length || vm.beforeBody.length || vm.body.length || vm.afterBody.length || vm.footer.length);\r\n\r\n if (tooltip._options.enabled && hasTooltipContent) {\r\n ctx.save();\r\n\r\n ctx.strokeStyle = this.color;\r\n ctx.lineWidth = this.width;\r\n\r\n ctx.beginPath();\r\n\r\n ctx.moveTo(vm.caretX, area.top);\r\n ctx.lineTo(vm.caretX, area.bottom);\r\n ctx.stroke();\r\n\r\n ctx.restore();\r\n }\r\n }\r\n}\r\n\r\nexport default LineThroughTooltipPlugin;","class YAxisRangePlugin {\r\n beforeUpdate(chart) {\r\n const data = chart.data;\r\n const datasets = data.datasets;\r\n \r\n const yTicks = chart.scales[\"y-axis-0\"].options.ticks;\r\n\r\n this.ensureSetTicksMinMax(yTicks);\r\n this.ensureSetTicksOriginalMinMax(yTicks);\r\n\r\n yTicks.min = yTicks.originalMin;\r\n yTicks.max = yTicks.originalMax;\r\n\r\n const {\r\n min: yMin,\r\n max: yMax\r\n } = yTicks;\r\n\r\n let actualMin = null;\r\n let actualMax = null;\r\n\r\n let barWidth = null;\r\n\r\n const {\r\n min: xMin,\r\n max: xMax,\r\n } = chart.scales[\"x-axis-0\"].options.ticks; \r\n\r\n for (let i = 0; i < datasets.length; i++) {\r\n const dataset = datasets[i].data;\r\n\r\n for (let j = 0; j < dataset.length; j++) {\r\n const point = dataset[j];\r\n \r\n let y, left, right;\r\n \r\n if (typeof point === \"object\") {\r\n // Line chart\r\n y = point.y;\r\n\r\n // Get the prev/next dataset indices.\r\n // We use these instead of the current index so that\r\n // when the line appears to the appear on the chart,\r\n // then the y scale will adjust before the peak becomes visible.\r\n const prev = j > 0 ? j - 1 : j;\r\n const next = j < dataset.length - 1 ? j + 1 : j;\r\n \r\n left = dataset[prev].x;\r\n right = dataset[next].x;\r\n } else {\r\n // Bar chart\r\n y = point;\r\n left = right = data.labels[j];\r\n\r\n if (dataset.length >= 4) {\r\n if (barWidth === null) {\r\n barWidth = data.labels[2] - data.labels[1];\r\n }\r\n\r\n left -= barWidth / 2;\r\n right += barWidth / 2;\r\n }\r\n }\r\n\r\n if (right < xMin || left > xMax) {\r\n continue;\r\n }\r\n\r\n if (y > actualMax) {\r\n actualMax = y;\r\n } else if (y < actualMin || actualMin === null) {\r\n actualMin = y;\r\n }\r\n }\r\n }\r\n\r\n if (actualMin === null) {\r\n actualMin = NaN;\r\n }\r\n\r\n if (!isNaN(actualMin) && !isNaN(actualMax)) {\r\n var rangeBuffer = (actualMax - actualMin) * 0.1;\r\n var paddedMax = actualMax + rangeBuffer;\r\n var paddedMin = actualMin - rangeBuffer;\r\n\r\n if (yMax < paddedMax){\r\n yTicks.max = paddedMax;\r\n }\r\n \r\n if (((yMin === 0 && actualMin < 0) || (yMin !== 0 && paddedMin < yMin))) {\r\n yTicks.min = paddedMin;\r\n }\r\n }\r\n }\r\n\r\n validify(value) {\r\n if (typeof value !== \"number\" || isNaN(value)) {\r\n return 0;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n ensureSetTicksMinMax(ticks) {\r\n ticks.min = this.validify(ticks.min);\r\n ticks.max = this.validify(ticks.max);\r\n }\r\n\r\n ensureSetTicksOriginalMinMax(ticks) {\r\n if (!(\"originalMin\" in ticks)) {\r\n ticks.originalMin = ticks.min;\r\n }\r\n if (!(\"originalMax\" in ticks)) {\r\n ticks.originalMax = ticks.max;\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\nexport default YAxisRangePlugin;","import GraphConstants from \"./GraphConstants\";\r\nimport moment from \"moment\";\r\nclass TooltipConfigurationBase {\r\n constructor() {\r\n $.extend(true, this, {\r\n backgroundColor: '#ffffff',\r\n xAlign: 'center',\r\n titleFontColor: '#000000',\r\n titleFontFamily: GraphConstants.FONT_FAMILY,\r\n titleFontSize: 16,\r\n titleFontStyle: \"normal\",\r\n bodyFontFamily: GraphConstants.FONT_FAMILY,\r\n bodyFontColor: \"#000000\",\r\n bodyFontSize: 16,\r\n bodyFontStyle: \"500\",\r\n footerFontFamily: GraphConstants.FONT_FAMILY,\r\n footerFontColor: \"#000000\",\r\n footerFontSize: 16,\r\n footerFontStyle: \"500\",\r\n displayColors: false,\r\n borderWidth: 1,\r\n borderColor: \"#047687\",\r\n xPadding: 10,\r\n yPadding: 10,\r\n cornerRadius: 2,\r\n caretSize: 10,\r\n \r\n });\r\n }\r\n\r\n applyTooltipOnRailsPositioning(position) {\r\n $.extend(true, this, {\r\n custom: function (model) {\r\n model.yAlign = model.newYAlign || model.yAlign;\r\n },\r\n position: position + \"-on-rails\"\r\n });\r\n }\r\n}\r\n\r\nexport default TooltipConfigurationBase;","import TooltipConfigurationBase from \"../../Configuration/TooltipConfigurationBase\";\r\nimport GraphConstants from \"../../Configuration/GraphConstants\";\r\nimport moment from \"moment\";\r\nclass CumulativeDailyGraphTooltipConfiguration extends TooltipConfigurationBase {\r\n constructor(station, parameter) {\r\n super();\r\n\r\n this.parameter = parameter;\r\n\r\n $.extend(true, this, {\r\n mode: \"index\",\r\n intersect: false\r\n });\r\n\r\n this.applyTooltipOnRailsPositioning(\"average\");\r\n\r\n let existingCustom = this.custom;\r\n\r\n $.extend(true, this, {\r\n callbacks: {\r\n title: (function (_this) {\r\n return function (tooltipItems, data) {\r\n let firstItem = tooltipItems[0];\r\n let index = firstItem.index;\r\n\r\n let date = data.labels[index];\r\n\r\n return moment(date).format(\"MMMM D YYYY\");\r\n }\r\n })(this),\r\n label: (function (_this) {\r\n return function (tooltipItem, data) {\r\n let roundedVal = Math.round(+(tooltipItem.yLabel) * 1000) / 1000;\r\n\r\n return `${data.datasets[tooltipItem.datasetIndex].label}: ${roundedVal}${_this.parameter.unit}`\r\n }\r\n })(this),\r\n footer: (function (_this) {\r\n return function (tooltipItems, data) {\r\n if (tooltipItems.length < 2) {\r\n return null;\r\n }\r\n\r\n let actualDatasetIndex = data.datasets.map((a, b) => a.id === \"actual\" ? b : null).filter(a => a !== null)[0];\r\n let averageDatasetIndex = data.datasets.map((a, b) => a.id === \"average\" ? b : null).filter(a => a !== null)[0];\r\n\r\n let actualValueIndex = tooltipItems.filter(a => a.datasetIndex === actualDatasetIndex)[0].index;\r\n let averageValueIndex = tooltipItems.filter(a => a.datasetIndex === averageDatasetIndex)[0].index;\r\n\r\n let actualValue = data.datasets[actualDatasetIndex].data[actualValueIndex];\r\n let averageValue = data.datasets[averageDatasetIndex].data[averageValueIndex];\r\n\r\n let percentage = (100 * ((actualValue / averageValue) - 1)).toFixed(0);\r\n _this.isPercentPositive = percentage > 0;\r\n\r\n if (percentage > 0) {\r\n percentage = \"+\" + percentage;\r\n }\r\n\r\n percentage = \"\" + percentage + \"%\";\r\n return percentage;\r\n }\r\n })(this),\r\n },\r\n custom: (function (_this) {\r\n return function (model) {\r\n existingCustom.call(this, model);\r\n \r\n if (_this.isPercentPositive) {\r\n model.footerFontColor = GraphConstants.LIGHT_GREEN_1;\r\n } else {\r\n model.footerFontColor = GraphConstants.DARK_GREY;\r\n }\r\n }\r\n })(this)\r\n });\r\n }\r\n}\r\n\r\nexport default CumulativeDailyGraphTooltipConfiguration;","import Chart from \"chartjs\";\r\nclass ScaleConsistentTicksFix {\r\n static afterBuildTicks(scale) {\r\n if (scale.ticks.length >= 3) {\r\n // https://github.com/chartjs/Chart.js/blob/637c2176ecad70b674ffe8802bde070136785a45/src/scales/scale.linearbase.js#L26\r\n // This code uses the same code as Chartjs so that we can work out the step size\r\n // as Chartjs' tick generator doesn't save the step size after it has done its work\r\n let niceRange = Chart.helpers.niceNum(scale.max - scale.min, false);\r\n let step = Chart.helpers.niceNum(niceRange / (Math.max(2, scale.getTickLimit()) - 1), true);\r\n // End\r\n\r\n scale.ticks[0] = scale.ticks[1] + step;\r\n scale.ticks[scale.ticks.length - 1] = scale.ticks[scale.ticks.length - 2] - step;\r\n\r\n if (scale.ticks[0] > scale.max) {\r\n scale.ticks.splice(0, 1);\r\n }\r\n\r\n if (scale.ticks[scale.ticks.length - 1] < scale.min) {\r\n scale.ticks.splice(scale.ticks.length - 1, 1);\r\n }\r\n }\r\n }\r\n}\r\n \r\nexport default ScaleConsistentTicksFix;","import GraphConfigurationBase from \"../../Configuration/GraphConfigurationBase\";\r\nimport GraphConstants from \"../../Configuration/GraphConstants\";\r\nimport moment from \"moment\";\r\nimport RemovePaddingRightPlugin from \"../../Configuration/Plugins/RemovePaddingRightPlugin\";\r\nimport LineThroughTooltipPlugin from \"../../Configuration/Plugins/LineThroughTooltipPlugin\";\r\nimport YAxisRangePlugin from \"../../Configuration/Plugins/YAxisRangePlugin\";\r\nimport CumulativeDailyGraphTooltipConfiguration from \"./CumulativeDailyGraphTooltipConfiguration\";\r\nimport Language from \"NRW/Util/Language\";\r\nimport ScaleConsistentTicksFix from \"../../Configuration/ScaleConsistentTicksFix\";\r\nclass CumulativeDailyGraphConfiguration extends GraphConfigurationBase {\r\n constructor(station, parameter) {\r\n super();\r\n\r\n this.tooltipConfig = new CumulativeDailyGraphTooltipConfiguration(station, parameter);\r\n \r\n $.extend(true, this, {\r\n type: 'line',\r\n options: {\r\n aspectRatio: 1,\r\n tooltips: this.tooltipConfig,\r\n hover: {\r\n mode: \"index\"\r\n }\r\n },\r\n plugins: [\r\n new RemovePaddingRightPlugin(),\r\n new LineThroughTooltipPlugin({\r\n color: GraphConstants.LINE_RED,\r\n width: 1\r\n }),\r\n new YAxisRangePlugin()\r\n ]\r\n });\r\n\r\n $.extend(true, this.findScaleByIndex(\"x\", 0), {\r\n type: 'category',\r\n ticks: {\r\n callback: function (value, index, values) {\r\n let momentifiedDate = moment(values[index]);\r\n\r\n return [momentifiedDate.format(\"D\")];\r\n }\r\n }\r\n });\r\n\r\n $.extend(true, this.findScaleByIndex(\"y\", 0), {\r\n type: 'linear',\r\n scaleLabel: {\r\n display: true,\r\n labelString: `${Language.text(parameter.typeText)} (${parameter.unit})`\r\n },\r\n ticks: {\r\n \r\n },\r\n afterBuildTicks: function (scale) {\r\n ScaleConsistentTicksFix.afterBuildTicks(scale);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default CumulativeDailyGraphConfiguration;","import Html from \"NRW/Util/Html\";\r\nimport Chart from \"chartjs\";\r\nimport CumulativeDailyGraphConfiguration from \"./CumulativeDailyGraphConfiguration\";\r\nimport Orientation from \"NRW/Util/Orientation\";\r\nimport { Breakpoint } from \"@nrw.core/styles\";\r\nimport Resource from \"NRW/Util/Resource\";\r\nconst TEMPLATE = `\r\n <canvas class=\"long-term-comparison__graph-canvas\"></canvas>\r\n`;\r\n\r\nclass CumulativeDailyGraphComponent {\r\n constructor(station, parameter) {\r\n this.canvas = null;\r\n this.graphConfig = new CumulativeDailyGraphConfiguration(station, parameter)\r\n .listenForBreakpointChangesFrom(Breakpoint)\r\n .listenForOrientationChangesFrom(Orientation);\r\n this.graphConfig.updateResponsiveProperties(Breakpoint.getCurrentBreakpoint(), Orientation.getCurrentOrientation());\r\n\r\n this.graphConfig.onConfigChanged.addListener((neededChanges) => {\r\n if (neededChanges.resize) {\r\n if (this.graph) {\r\n this.graph.resize();\r\n }\r\n } else {\r\n this.update();\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n let renderedComponents = Html.renderTemplate(TEMPLATE, {});\r\n\r\n this.canvas = $(renderedComponents).filter(\"canvas\")[0];\r\n\r\n const title = Resource.GraphAccessibilityLabel.replace(\"{0}\", Resource.CumulativeDailyHeading);\r\n this.canvas.setAttribute(\"title\", title);\r\n\r\n this.buildGraph();\r\n\r\n return renderedComponents;\r\n }\r\n\r\n setData(data) {\r\n this.graphConfig.data = data;\r\n }\r\n\r\n update() {\r\n if (this.graph) {\r\n this.graph.update({duration: 0, animate: false});\r\n }\r\n }\r\n\r\n resetYAxisScale() {\r\n this.graphConfig.findScaleByIndex(\"y\", 0).ticks.max = 0;\r\n }\r\n\r\n buildGraph() {\r\n this.graph = new Chart(this.canvas, this.graphConfig);\r\n }\r\n}\r\n\r\nexport default CumulativeDailyGraphComponent;","import Html from \"NRW/Util/Html\";\r\nimport { EventDispatcher } from \"@nrw.core/styles\";\r\nimport Range from \"NRW/Util/Range\";\r\nimport Resource from \"NRW/Util/Resource\";\r\nimport moment from \"moment\";\r\n\r\nconst TEMPLATE = `\r\n <div class=\"graph-controls selector\">\r\n <button data-action=\"previous\" class=\"graph-controls__control graph-controls__control--pan-left\">\r\n ${Resource.PreviousMonth}\r\n </button>\r\n <div class=\"current-month-text selector__selected-text\">\r\n\r\n </div>\r\n <button data-action=\"next\" class=\"graph-controls__control graph-controls__control--pan-right\">\r\n ${Resource.NextMonth}\r\n </button>\r\n </div>\r\n`;\r\n\r\nclass CumulativeDailyMonthSelectorComponent {\r\n constructor() {\r\n this.onChange = new EventDispatcher();\r\n\r\n this.range = null;\r\n this.selectedMonth = null;\r\n this.$previousButton = this.$nextButton = this.selectedMonthText = null;\r\n\r\n this.setMonthLimit(new Date(), new Date());\r\n }\r\n\r\n selectMonth(date) {\r\n date = moment(date).startOf(\"month\");\r\n\r\n let willNotify = false;\r\n let currentSelectedMonth = this.selectedMonth;\r\n\r\n if (currentSelectedMonth === null || !date.isSame(currentSelectedMonth)) {\r\n willNotify = true;\r\n }\r\n\r\n this.selectedMonth = date;\r\n\r\n this.updateControlStates();\r\n this.updateSelectedText();\r\n\r\n if (willNotify) {\r\n this.onChange.invokeListeners([this.selectedMonth.toDate()], this);\r\n }\r\n }\r\n\r\n updateControlStates() {\r\n if (this.$previousButton !== null) {\r\n this.$previousButton\r\n .toggleClass(\"button--disabled\", this.isAtStartBoundary())\r\n .attr(\"disabled\", this.isAtStartBoundary());\r\n }\r\n\r\n if (this.$nextButton !== null) {\r\n this.$nextButton\r\n .toggleClass(\"button--disabled\", this.isAtEndBoundary())\r\n .attr(\"disabled\", this.isAtEndBoundary());\r\n }\r\n }\r\n\r\n isAtStartBoundary() {\r\n return this.selectedMonth.isSameOrBefore(this.range.start);\r\n }\r\n\r\n isAtEndBoundary() {\r\n return this.selectedMonth.isSameOrAfter(this.range.end.clone().add(-1, \"month\"));\r\n }\r\n\r\n updateSelectedText() {\r\n if (this.selectedMonthText === null) {\r\n return;\r\n }\r\n\r\n this.selectedMonthText.innerText = this.selectedMonth.format(\"MMMM YYYY\");\r\n }\r\n\r\n setMonthLimit(start, end) {\r\n this.range = new Range(moment(start).startOf(\"month\"), moment(end).startOf(\"month\").add(1, \"month\"));\r\n\r\n if (this.selectedMonth === null) {\r\n this.selectMonth(start);\r\n return;\r\n }\r\n\r\n if (this.selectedMonth.isBefore(this.range.start)) {\r\n this.selectMonth(start);\r\n return;\r\n }\r\n\r\n if (this.selectedMonth.isAfter(this.range.end.clone().startOf(\"month\").add(1, \"month\"))) {\r\n this.selectMonth(end);\r\n return;\r\n }\r\n\r\n this.updateControlStates();\r\n }\r\n\r\n render() {\r\n let renderedComponents = Html.renderTemplate(TEMPLATE, {});\r\n\r\n this.registerButtonEventHandlersForDom(renderedComponents);\r\n this.selectedMonthText = $(renderedComponents).find(\".selector__selected-text\")[0];\r\n\r\n this.updateControlStates();\r\n this.updateSelectedText();\r\n\r\n return renderedComponents;\r\n }\r\n\r\n move(direction) {\r\n if (direction === -1) {\r\n if (!this.isAtStartBoundary()) {\r\n this.selectMonth(this.selectedMonth.clone().add(-1, \"month\"));\r\n }\r\n } else if (direction === 1) {\r\n if (!this.isAtEndBoundary()) {\r\n this.selectMonth(this.selectedMonth.clone().add(1, \"month\"));\r\n }\r\n }\r\n }\r\n\r\n registerButtonEventHandlersForDom(dom) {\r\n this.$previousButton = $(dom).find(\"[data-action=\\\"previous\\\"]\");\r\n this.$nextButton = $(dom).find(\"[data-action=\\\"next\\\"]\");\r\n\r\n let _this = this;\r\n this.$previousButton.click(function (e) {\r\n _this.move(-1);\r\n return false;\r\n });\r\n this.$nextButton.click(function (e) {\r\n _this.move(1);\r\n return false;\r\n });\r\n }\r\n}\r\n\r\nexport default CumulativeDailyMonthSelectorComponent;","import GraphConstants from \"../../Configuration/GraphConstants\";\r\nimport Resource from \"NRW/Util/Resource\";\r\nimport { EventDispatcher } from \"@nrw.core/styles\";\r\nimport moment from \"moment\";\r\nclass CumulativeDailyGraphDataSetAdapter {\r\n constructor(dailyDataSetView) {\r\n this.currentMonth = moment().startOf(\"month\");\r\n this.daysInMonth = this.currentMonth.daysInMonth();\r\n this.monthAverageMap = {};\r\n\r\n this.dailyDataSetView = dailyDataSetView;\r\n\r\n this.data = {\r\n labels: [],\r\n datasets: [\r\n {\r\n id: \"actual\",\r\n label: Resource.CumulativeActual,\r\n borderColor: GraphConstants.BLUE,\r\n fill: false,\r\n pointRadius: 0,\r\n borderWidth: 2,\r\n pointBackgroundColor: \"transparent\",\r\n pointHoverBorderColor: GraphConstants.BLUE,\r\n pointHoverBorderWidth: 3,\r\n pointHoverRadius: 10,\r\n data: []\r\n },\r\n {\r\n id: \"average\",\r\n label: Resource.MonthlyAverage,\r\n borderColor: GraphConstants.GREY,\r\n fill: false,\r\n pointRadius: 0,\r\n borderWidth: 2,\r\n pointBackgroundColor: \"transparent\",\r\n pointHoverBorderColor: GraphConstants.GREY,\r\n pointHoverBorderWidth: 3,\r\n pointHoverRadius: 10,\r\n data: []\r\n }\r\n ]\r\n };\r\n\r\n this.actual = this.data.datasets[0];\r\n this.average = this.data.datasets[1];\r\n\r\n this.dataUpdated = new EventDispatcher();\r\n\r\n this.dailyDataSetView.dataUpdated.addListener((range) => {\r\n this.buildActualDataset();\r\n this.dataUpdated.invokeListeners([], this);\r\n })\r\n }\r\n\r\n clear() {\r\n this.data.labels = [];\r\n this.actual.data = [];\r\n this.average.data = [];\r\n }\r\n\r\n setMonthUsingDate(date) {\r\n this.clear();\r\n this.currentMonth = moment(date).startOf(\"month\");\r\n \r\n this.daysInMonth = this.currentMonth.daysInMonth();\r\n\r\n this.buildDayLabelsForMonth();\r\n this.buildActualDataset();\r\n this.buildAverageDataset();\r\n }\r\n\r\n setLongTermAverageData(data) {\r\n data = data.data;\r\n\r\n this.monthAverageMap = {};\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n let item = data[i];\r\n this.monthAverageMap[item.indexDate.getMonth()] = item.longTermAverageValue;\r\n }\r\n\r\n this.buildAverageDataset();\r\n }\r\n\r\n buildDayLabelsForMonth() {\r\n this.data.labels = [];\r\n\r\n let currentDay = this.currentMonth.clone();\r\n\r\n for (let i = 1; i <= this.daysInMonth; i++) {\r\n this.data.labels.push(currentDay.date(i).toDate());\r\n }\r\n }\r\n\r\n buildAverageDataset() {\r\n this.average.data = [];\r\n\r\n let averageAmountInMonth = this.monthAverageMap[this.currentMonth.month()] || NaN;\r\n\r\n for (let i = 1; i <= this.daysInMonth; i++) {\r\n let valueForDay = (averageAmountInMonth / this.daysInMonth) * i;\r\n this.average.data.push(valueForDay);\r\n }\r\n }\r\n\r\n buildActualDataset() {\r\n this.actual.data = [];\r\n\r\n let currentChunk = this.dailyDataSetView.startChunk.next; // Start on the first chunk with data\r\n\r\n while (this.currentMonth > currentChunk.range.start) {\r\n currentChunk = currentChunk.next;\r\n }\r\n\r\n let firstDayOfNextMonth = this.currentMonth.clone().startOf(\"month\").add(1, \"month\").toDate();\r\n let lastValidChunkInMonth = this.getLastValidChunkInMonth(currentChunk);\r\n let afterLastValidEntry = lastValidChunkInMonth === null;\r\n let lastValidValue = NaN;\r\n\r\n while (currentChunk !== null && currentChunk.range.start >= this.currentMonth && currentChunk.range.end <= firstDayOfNextMonth) {\r\n if (afterLastValidEntry || currentChunk.loading || !currentChunk.loaded) {\r\n this.actual.data.push(NaN);\r\n } else if (!afterLastValidEntry) {\r\n if (!isNaN(currentChunk.data[0])) {\r\n lastValidValue = currentChunk.data[0];\r\n }\r\n \r\n this.actual.data.push(lastValidValue);\r\n\r\n if (currentChunk === lastValidChunkInMonth) {\r\n afterLastValidEntry = true;\r\n }\r\n }\r\n\r\n currentChunk = currentChunk.next;\r\n }\r\n }\r\n\r\n getLastValidChunkInMonth(chunk) {\r\n let currentChunk = chunk;\r\n let month = currentChunk.range.start.getMonth();\r\n let year = currentChunk.range.start.getFullYear();\r\n\r\n // Iterate forwards to the end-most chunk of the month\r\n while (currentChunk !== null && currentChunk.range.start.getMonth() === month && currentChunk.range.start.getFullYear() === year) {\r\n currentChunk = currentChunk.next;\r\n }\r\n\r\n currentChunk = currentChunk.previous;\r\n\r\n // Iterate backwards to find nearest valid\r\n while (currentChunk != null && currentChunk.range.start.getMonth() === month && currentChunk.range.start.getFullYear() === year) {\r\n if (!isNaN(currentChunk.data[0])) {\r\n return currentChunk;\r\n }\r\n\r\n currentChunk = currentChunk.previous;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n convert() {\r\n return this.data;\r\n }\r\n}\r\n\r\nexport default CumulativeDailyGraphDataSetAdapter;","import Range from \"NRW/Util/Range\";\r\nconst MAX_DATE_MSEC = 8640000000000000;\r\n\r\nclass ParameterDataChunk {\r\n constructor(range) {\r\n this.range = range || this.defaultRange;\r\n\r\n this.data = [];\r\n\r\n this.loaded = false;\r\n this.loading = false;\r\n\r\n this.next = null;\r\n this.previous = null;\r\n }\r\n\r\n get defaultRange() {\r\n return new Range(new Date(-MAX_DATE_MSEC), new Date(MAX_DATE_MSEC));\r\n }\r\n\r\n isDateInChunk(date, startInclusive) {\r\n if (typeof startInclusive === typeof undefined) {\r\n startInclusive = true;\r\n }\r\n\r\n return (startInclusive ? date >= this.range.start : date > this.range.start) && date < this.range.end;\r\n }\r\n\r\n isDataDateInChunk(data) {\r\n return this.isDateInChunk(data.x);\r\n }\r\n\r\n sortByDataDateAsc(a, b) {\r\n return (+a.x) - (+b.x);\r\n }\r\n\r\n split(date) {\r\n if (date.valueOf() === this.range.start.valueOf()) {\r\n return this;\r\n }\r\n\r\n if (date.valueOf() === this.range.end.valueOf()) {\r\n return this.next;\r\n }\r\n\r\n let newNextChunk = new ParameterDataChunk(new Range(new Date(date), new Date(this.range.end)));\r\n\r\n newNextChunk.data = this.data.filter((data) => newNextChunk.isDataDateInChunk(data));\r\n newNextChunk.loaded = this.loaded;\r\n newNextChunk.loading = this.loading;\r\n\r\n newNextChunk.next = this.next;\r\n if (newNextChunk.next) {\r\n newNextChunk.next.previous = newNextChunk;\r\n }\r\n \r\n newNextChunk.previous = this;\r\n\r\n this.range.end = new Date(date);\r\n this.data = this.data.filter((data) => this.isDataDateInChunk(data));\r\n this.next = newNextChunk;\r\n\r\n return this.next;\r\n }\r\n\r\n setData(data, versionId) {\r\n data = data.sort((a, b) => this.sortByDataDateAsc(a, b));\r\n\r\n this.versionId = versionId;\r\n this.data = data.filter((data) => this.isDataDateInChunk(data));\r\n this.loaded = true;\r\n this.loading = false;\r\n }\r\n\r\n updateData(data, versionId) {\r\n this.data = this.data.concat(data.filter(d => this.isDataDateInChunk(d))).sort((a, b) => this.sortByDataDateAsc(a, b));\r\n this.versionId = versionId;\r\n }\r\n\r\n tryMergeWithNext() {\r\n if (this.canMergeWithNext(this.next)) {\r\n this.mergeWithNext();\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n canMergeWithNext(otherChunk) {\r\n return otherChunk !== null\r\n && (this.loaded === otherChunk.loaded && this.versionId === otherChunk.versionId)\r\n && !this.loading\r\n && !otherChunk.loading;\r\n }\r\n\r\n mergeWithNext() {\r\n let chunkToMerge = this.next;\r\n\r\n this.data = this.data.concat(chunkToMerge.data);\r\n this.next = chunkToMerge.next;\r\n\r\n if (this.next) {\r\n this.next.previous = this;\r\n }\r\n\r\n this.range.end = new Date(chunkToMerge.range.end);\r\n\r\n chunkToMerge.previous = null;\r\n chunkToMerge.next = null;\r\n chunkToMerge.data = [];\r\n\r\n return this;\r\n }\r\n}\r\n\r\nexport default ParameterDataChunk;","import ParameterDataChunk from \"./ParameterDataChunk\";\r\nimport { EventDispatcher } from \"@nrw.core/styles\";\r\nimport Range from \"NRW/Util/Range\";\r\nclass ParameterDataSet {\r\n constructor(parameterId, parameterDataService) {\r\n this.parameterId = parameterId;\r\n this.dataService = parameterDataService;\r\n \r\n this.chunkLoaded = new EventDispatcher();\r\n \r\n // Initially, the first and only chunk isn't loaded, and covers all dates\r\n this.startChunk = new ParameterDataChunk();\r\n }\r\n \r\n getChunksForRange(range) {\r\n let currentChunk = this.getChunkForDate(range.start);\r\n \r\n let chunksForRange = [];\r\n \r\n while (currentChunk !== null) {\r\n let rangePosition = currentChunk.range.getRangePositionWithinRange(range);\r\n \r\n if (rangePosition.inside) {\r\n return [currentChunk];\r\n }\r\n \r\n if (!rangePosition.intersects || rangePosition.bordering) {\r\n break;\r\n }\r\n \r\n chunksForRange.push(currentChunk);\r\n \r\n currentChunk = currentChunk.next;\r\n }\r\n \r\n return chunksForRange;\r\n }\r\n \r\n getChunkForDate(date) {\r\n let currentChunk = this.startChunk;\r\n \r\n while (currentChunk !== null) {\r\n if (currentChunk.isDateInChunk(date)) {\r\n return currentChunk;\r\n }\r\n \r\n currentChunk = currentChunk.next;\r\n }\r\n \r\n return null;\r\n }\r\n \r\n loadDataForRange(range) {\r\n let chunks = this.getChunksForRange(range);\r\n \r\n if (chunks.length <= 0) {\r\n return;\r\n }\r\n \r\n let firstChunk = chunks[0];\r\n if (!firstChunk.loaded && !firstChunk.loading) {\r\n chunks[0] = firstChunk.split(range.start);\r\n }\r\n \r\n let lastChunk = chunks[chunks.length - 1];\r\n if (!lastChunk.loaded && !lastChunk.loading) {\r\n lastChunk.split(range.end);\r\n }\r\n \r\n for (let i = 0; i < chunks.length; i++) {\r\n let chunk = chunks[i];\r\n \r\n if (!chunk.loaded && !chunk.loading) {\r\n chunk.loading = true;\r\n \r\n this.dataService.getData(this.parameterId, chunk.range.start, chunk.range.end).then(\r\n result => {\r\n let startChunk = this.getChunkForDate(chunk.range.start);\r\n let currentChunk = startChunk;\r\n \r\n while (currentChunk !== null) {\r\n let rangePosition = currentChunk.range.getRangePositionWithinRange(chunk.range);\r\n if (!rangePosition.intersects || rangePosition.bordering) {\r\n break;\r\n }\r\n \r\n currentChunk.setData(result.data, result.versionId);\r\n currentChunk = currentChunk.next;\r\n }\r\n \r\n this.mergeChunks();\r\n \r\n this.chunkLoaded.invokeListeners([startChunk, chunk.range], this);\r\n \r\n }, error => {\r\n //TODO\r\n let chunksToPatch = this.getChunksForRange(chunk.range);\r\n for (let i = 0; i < chunksToPatch.length; i++) {\r\n let chunkToPatch = chunksToPatch[i];\r\n chunkToPatch.loading = false;\r\n }\r\n }\r\n );\r\n }\r\n }\r\n }\r\n \r\n updateAllLoadedChunks() {\r\n let chunkUpdateRequests = [];\r\n let currentChunk = this.startChunk;\r\n \r\n while (currentChunk !== null) {\r\n if (currentChunk.previous === null) {\r\n // Exclude starting chunk (min value to start of data)\r\n currentChunk = currentChunk.next;\r\n continue;\r\n }\r\n \r\n if (currentChunk.next === null) {\r\n // Exclude ending chunk (end of data to max value)\r\n break;\r\n }\r\n \r\n chunkUpdateRequests.push({\r\n from: currentChunk.range.start,\r\n to: currentChunk.range.end,\r\n versionId: currentChunk.versionId\r\n });\r\n \r\n currentChunk = currentChunk.next;\r\n }\r\n \r\n this.dataService.getUpdates(this.parameterId, chunkUpdateRequests).then(result => {\r\n currentChunk = this.startChunk;\r\n \r\n let chunks = new Set;\r\n \r\n while (currentChunk !== null) {\r\n if (currentChunk.loaded) {\r\n currentChunk.updateData(result.data, result.versionId);\r\n \r\n if (currentChunk.previous.canMergeWithNext(currentChunk)) {\r\n currentChunk = currentChunk.previous.mergeWithNext();\r\n }\r\n \r\n chunks.add(currentChunk);\r\n }\r\n \r\n currentChunk = currentChunk.next;\r\n }\r\n \r\n chunks.forEach((chunk) => {\r\n this.chunkLoaded.invokeListeners([chunk, chunk.range], this);\r\n });\r\n });\r\n }\r\n \r\n mergeChunks() {\r\n let currentChunk = this.startChunk;\r\n \r\n while (currentChunk !== null) {\r\n let didMergeWithNext = currentChunk.tryMergeWithNext();\r\n if (!didMergeWithNext) {\r\n currentChunk = currentChunk.next;\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default ParameterDataSet;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nimport Range from \"NRW/Util/Range\";\r\nimport ParameterDataChunk from \"./ParameterDataChunk\";\r\nimport ParameterDataSet from \"./ParameterDataSet\";\r\nimport moment from \"moment\";\r\nclass ParameterAggregateDataSetViewBase {\r\n constructor(dataSetView) {\r\n this.dataSetView = dataSetView;\r\n\r\n this.aggregateDataSet = new ParameterDataSet();\r\n\r\n this._range = null;\r\n\r\n this.dataUpdated = new EventDispatcher();\r\n this.dataRangesRequested = dataSetView.dataRangesRequested;\r\n this.rangeChanged = new EventDispatcher();\r\n\r\n this.dataSetView.dataUpdated.addListener((range) => {\r\n let chunksToUpdate = this.aggregateDataSet.getChunksForRange(range);\r\n for (let i = 0; i < chunksToUpdate.length; i++) {\r\n this.rebuildAggregateChunk(chunksToUpdate[i]);\r\n }\r\n\r\n this.dataUpdated.invokeListeners([range], this);\r\n });\r\n }\r\n\r\n get startChunk() {\r\n return this.aggregateDataSet.startChunk;\r\n }\r\n\r\n getPartitioner() {\r\n throw new Error(\"getPartitioner() not implemented\");\r\n }\r\n\r\n getOverallAggregateRange(range) {\r\n let partitioner = this.getPartitioner();\r\n let startBar = partitioner.getPartitionRange(range.start);\r\n let endBar = partitioner.getPartitionRange(range.end);\r\n\r\n return new Range(startBar.start, endBar.start.valueOf() === range.end.valueOf() ? endBar.start : endBar.end);\r\n }\r\n\r\n getAllAggregateRanges() {\r\n let ranges = [];\r\n let currentDate = moment(this.range.start);\r\n\r\n let partitioner = this.getPartitioner();\r\n while (currentDate < this.range.end) {\r\n let partition = partitioner.getPartitionRange(currentDate);\r\n ranges.push(partition);\r\n currentDate = partition.end;\r\n }\r\n\r\n return ranges;\r\n }\r\n\r\n buildAggregateChunks() {\r\n let ranges = this.getAllAggregateRanges();\r\n this.aggregateDataSet.startChunk = new ParameterDataChunk();\r\n\r\n for (let i = ranges.length - 1; i >= 0; i--) {\r\n this.aggregateDataSet.startChunk.split(ranges[i].end);\r\n }\r\n\r\n let currentAggregateChunk = this.aggregateDataSet.startChunk.split(ranges[0].start);\r\n\r\n while (currentAggregateChunk !== null) {\r\n this.rebuildAggregateChunk(currentAggregateChunk);\r\n\r\n currentAggregateChunk = currentAggregateChunk.next;\r\n }\r\n }\r\n\r\n rebuildAggregateChunk(aggregateChunk) {\r\n let currentDataSetChunk = this.dataSetView.startChunk;\r\n\r\n aggregateChunk.loading = false;\r\n aggregateChunk.loaded = true;\r\n aggregateChunk.sourceChunks = [];\r\n aggregateChunk.data = [0];\r\n\r\n let dataCount = 0;\r\n\r\n // Skip over dataSet to next relevant chunk\r\n while (currentDataSetChunk != null && currentDataSetChunk.range.end <= aggregateChunk.range.start) {\r\n currentDataSetChunk = currentDataSetChunk.next;\r\n }\r\n\r\n while (currentDataSetChunk != null && aggregateChunk.range.end > currentDataSetChunk.range.start) {\r\n aggregateChunk.sourceChunks.push(currentDataSetChunk);\r\n\r\n if (currentDataSetChunk.loaded && aggregateChunk.loaded) {\r\n aggregateChunk.dataRange = new Range(null, null);\r\n \r\n for (let i = 0; i < currentDataSetChunk.data.length; i++) {\r\n let data = currentDataSetChunk.data[i];\r\n\r\n if (data.x < aggregateChunk.range.start) {\r\n continue;\r\n }\r\n\r\n if (data.x >= aggregateChunk.range.end) {\r\n break;\r\n }\r\n\r\n if (!aggregateChunk.dataRange.start || data.x < aggregateChunk.dataRange.start) {\r\n aggregateChunk.dataRange.start = data.x;\r\n }\r\n\r\n if (!aggregateChunk.dataRange.end || data.x > aggregateChunk.dataRange.end) {\r\n aggregateChunk.dataRange.end = data.x;\r\n }\r\n\r\n if (!isNaN(data.y)) {\r\n aggregateChunk.data[0] += data.y;\r\n dataCount++;\r\n }\r\n }\r\n } else if (aggregateChunk.loaded) {\r\n aggregateChunk.loaded = false;\r\n }\r\n\r\n aggregateChunk.loading = aggregateChunk.loading || currentDataSetChunk.loading;\r\n currentDataSetChunk = currentDataSetChunk.next;\r\n }\r\n\r\n if (aggregateChunk.sourceChunks.length === 0 || !aggregateChunk.loaded) {\r\n aggregateChunk.data = [0];\r\n aggregateChunk.loaded = false;\r\n } else if (dataCount === 0) {\r\n aggregateChunk.data = [NaN];\r\n }\r\n }\r\n\r\n buildNecessaryAggregateChunks() {\r\n let ranges = this.getAllAggregateRanges();\r\n if (ranges.length === 0) {\r\n return 0;\r\n }\r\n \r\n let chunksToBuild = new Set();\r\n let currentChunk = this.aggregateDataSet.startChunk;\r\n \r\n while (currentChunk.range.end <= ranges[0].start) {\r\n // Get the first chunk that's relevant to our collection of aggregate ranges\r\n currentChunk = currentChunk.next;\r\n }\r\n \r\n if (ranges[0].start < currentChunk.range.end) {\r\n // If this chunk has space between the start of ranges and the start of the chunk, split it and use that as new start chunk\r\n currentChunk = currentChunk.split(ranges[0].start);\r\n chunksToBuild.add(currentChunk);\r\n }\r\n \r\n for (let i = 0; i < ranges.length; i++) {\r\n let range = ranges[i];\r\n \r\n let endDiff = range.end.valueOf() - currentChunk.range.end.valueOf();\r\n \r\n if (endDiff === 0) {\r\n // All good, move on\r\n currentChunk = currentChunk.next;\r\n continue;\r\n }\r\n \r\n if (endDiff < 0) {\r\n // Chunk has more than the range, so split it\r\n chunksToBuild.add(currentChunk); // Split chunks need to be rebuilt\r\n currentChunk = currentChunk.split(range.end);\r\n chunksToBuild.add(currentChunk);\r\n }\r\n }\r\n \r\n let chunksToBuildArray = [];\r\n chunksToBuild.forEach((chunk) => {\r\n chunksToBuildArray.push(chunk);\r\n });\r\n \r\n chunksToBuildArray.sort((a, b) => {\r\n return a.range.start - b.range.start;\r\n });\r\n \r\n for (let i = 0; i < chunksToBuildArray.length; i++) {\r\n this.rebuildAggregateChunk(chunksToBuildArray[i]);\r\n }\r\n \r\n return chunksToBuild.size;\r\n }\r\n\r\n get range() {\r\n return this._range;\r\n }\r\n\r\n set range(range) {\r\n this._range = range;\r\n this.dataSetView.range = this.getOverallAggregateRange(range);\r\n }\r\n}\r\nexport default ParameterAggregateDataSetViewBase;","import moment from \"moment\";\r\nimport Range from \"NRW/Util/Range\";\r\nclass MomentUnitPartitioner {\r\n constructor(unit) {\r\n this.unit = unit;\r\n }\r\n \r\n getPartitionRange(date) {\r\n if (typeof date !== \"object\" || !((\"startOf\" in date))) {\r\n date = moment(date);\r\n }\r\n\r\n date.startOf(this.unit);\r\n\r\n return new Range(date, date.clone().add(1, this.unit));\r\n }\r\n}\r\nexport default MomentUnitPartitioner;\r\n","import moment from \"moment\";\r\nclass MomentDurationOffsettingPartitioner {\r\n constructor(partitioner, offsetDuration) {\r\n this.offsetDuration = offsetDuration;\r\n this.partitioner = partitioner;\r\n }\r\n\r\n getPartitionRange(date) {\r\n date = moment(date).clone().subtract(this.offsetDuration);\r\n\r\n let dateRange = this.partitioner.getPartitionRange(date);\r\n\r\n dateRange.start.add(this.offsetDuration);\r\n dateRange.end.add(this.offsetDuration);\r\n\r\n return dateRange;\r\n }\r\n}\r\nexport default MomentDurationOffsettingPartitioner;\r\n","import Range from \"NRW/Util/Range\";\r\nimport moment from \"moment\";\r\nclass OffsetDataSetViewChunk {\r\n constructor(chunk, offsetDuration) {\r\n this.chunk = chunk;\r\n this.offsetDuration = offsetDuration;\r\n\r\n // Used to identify when to re-generate the .range property by\r\n // checking references of the chunk\r\n this.previousRef = null;\r\n this.nextRef = null;\r\n\r\n this._offsetRange = null;\r\n this._offsetDataRange = null;\r\n }\r\n\r\n get loaded() {\r\n return this.chunk.loaded;\r\n }\r\n\r\n get loading() {\r\n return this.chunk.loading;\r\n }\r\n\r\n get data() {\r\n return this.chunk.data;\r\n }\r\n\r\n get range() {\r\n if (this.isOffsetRangeInvalid(this._offsetRange)) {\r\n this._offsetRange = this.buildOffsetRange(this.chunk.range, true);\r\n }\r\n\r\n return this._offsetRange.range;\r\n }\r\n\r\n get dataRange() {\r\n if (typeof this.chunk.dataRange !== \"object\") {\r\n return this.chunk.dataRange; // Return undefined or null\r\n }\r\n\r\n if (this.isOffsetRangeInvalid(this._offsetDataRange)) {\r\n this._offsetDataRange = this.buildOffsetRange(this.chunk.dataRange, false);\r\n }\r\n\r\n return this._offsetDataRange.range;\r\n }\r\n\r\n get previous() {\r\n return this.getOrCreateInstance(this.chunk.previous);\r\n }\r\n\r\n get next() {\r\n return this.getOrCreateInstance(this.chunk.next);\r\n }\r\n\r\n isOffsetRangeInvalid(offsetRange) {\r\n return offsetRange === null || offsetRange.range === null || this.chunk.previous !== offsetRange.previousRef || this.chunk.next !== offsetRange.nextRef;\r\n }\r\n\r\n buildOffsetRange(range, subtractEndTime) {\r\n return {\r\n range: new Range(\r\n moment(range.start).subtract(this.offsetDuration).toDate(),\r\n moment(range.end).subtract(subtractEndTime ? this.offsetDuration : 0).toDate()\r\n ),\r\n previousRef: this.chunk.previous,\r\n nextRef: this.chunk.next,\r\n };\r\n }\r\n\r\n getOrCreateInstance(chunk) {\r\n return OffsetDataSetViewChunk.getOrCreateInstance(chunk, (c) => {\r\n return new OffsetDataSetViewChunk(c, this.offsetDuration);\r\n });\r\n }\r\n\r\n static getOrCreateInstance(chunk, instanceFactory) {\r\n if (chunk === null) {\r\n return null;\r\n }\r\n\r\n return chunk[`__${OffsetDataSetViewChunk.name}`] || (chunk[`__${OffsetDataSetViewChunk.name}`] = instanceFactory(chunk));\r\n }\r\n}\r\n\r\nexport default OffsetDataSetViewChunk;","import ParameterAggregateDataSetViewBase from \"../../Data/ParameterAggregateDataSetViewBase\";\r\nimport MomentUnitPartitioner from \"../../Data/MomentUnitPartitioner\";\r\nimport MomentDurationOffsettingPartitioner from \"../../Data/MomentDurationOffsettingPartitioner\";\r\nimport OffsetDataSetViewChunk from \"../../Data/OffsetDataSetViewChunk\";\r\nimport Configuration from \"NRW/Util/Configuration\";\r\nimport Range from \"NRW/Util/Range\";\r\nimport moment from \"moment\";\r\n\r\nclass CumulativeDailyGraphAggregateDataSetView extends ParameterAggregateDataSetViewBase {\r\n constructor(dataSetView) {\r\n super(dataSetView);\r\n\r\n this.offsetDuration = Configuration.rainfallReadingOffsetMilliseconds;\r\n\r\n this._dailyPartitioner = new MomentDurationOffsettingPartitioner(new MomentUnitPartitioner(\"day\"), this.offsetDuration);\r\n }\r\n\r\n get startChunk() {\r\n return OffsetDataSetViewChunk.getOrCreateInstance(super.startChunk, (c) => {\r\n return new OffsetDataSetViewChunk(c, this.offsetDuration);\r\n });\r\n }\r\n\r\n getPartitioner() {\r\n return this._dailyPartitioner;\r\n }\r\n\r\n rebuildAggregateChunk(aggregateChunk) {\r\n super.rebuildAggregateChunk(aggregateChunk);\r\n\r\n // Only cumulate data if the chunk isn't the start of the month (otherwise it could cumulate between months)\r\n if (!moment(aggregateChunk.range.start).isSame(moment(aggregateChunk.range.start).startOf(\"month\"))) {\r\n if (!isNaN(aggregateChunk.data[0])) {\r\n // Only put in a number if this day has any data. Otherwise it'll be NaN and should show this in tooltip.\r\n aggregateChunk.data[0] = this.getLastValidValueForChunk(aggregateChunk) + aggregateChunk.data[0];\r\n }\r\n }\r\n }\r\n\r\n getLastValidValueForChunk(chunk) {\r\n let currentChunk = chunk.previous;\r\n let value = NaN;\r\n\r\n let month = chunk.range.start.getMonth();\r\n\r\n while (isNaN(value) && currentChunk !== null && currentChunk.range.start.getMonth() === month) {\r\n value = currentChunk.data[0];\r\n currentChunk = currentChunk.previous;\r\n }\r\n\r\n if (isNaN(value)) {\r\n return 0;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n get range() {\r\n return super.range;\r\n }\r\n\r\n set range(range) {\r\n super.range = new Range(moment(range.start).clone().add(this.offsetDuration), moment(range.end).clone().add(this.offsetDuration));\r\n \r\n if (this.buildNecessaryAggregateChunks() > 0) {\r\n this.dataUpdated.invokeListeners([range], this);\r\n }\r\n }\r\n}\r\n \r\nexport default CumulativeDailyGraphAggregateDataSetView;","class GraphKeyItemComponent {\r\n constructor(colour, text) {\r\n this.colour = colour;\r\n this.text = text;\r\n this.visibility = true;\r\n \r\n this.$element = null;\r\n }\r\n\r\n setVisibility(toggle) {\r\n if (this.$element !== null) {\r\n this.$element.toggleClass(\"graph-key-item--hide\", !toggle);\r\n }\r\n\r\n this.visibility = !!toggle;\r\n }\r\n\r\n render() {\r\n let $element = $(`<div class=\"graph-key__item graph-key-item\"></div>`);\r\n $element.prop(\"component\", this);\r\n\r\n let $colour = $(`<span class=\"graph-key-item__colour\"></span>`).css(\"background-color\", this.colour);\r\n $element.append($colour);\r\n\r\n let $text = $(`<span class=\"graph-key-item__text\"></span>`).text(this.text);\r\n $element.append($text);\r\n\r\n this.$element = $element;\r\n this.setVisibility(this.visibility);\r\n\r\n return $element.get();\r\n }\r\n}\r\n\r\nexport default GraphKeyItemComponent;","import GraphKeyItemComponent from \"./GraphKeyItemComponent\";\r\nimport \"NRW/Util/Html\";\r\n\r\nclass GraphKeyComponent {\r\n constructor() {\r\n this.items = [];\r\n this.classes = [];\r\n this.$element = null;\r\n }\r\n \r\n add(colour, text) { \r\n let component = new GraphKeyItemComponent(colour, text);\r\n this.items.push(component);\r\n \r\n if (this.$element !== null) {\r\n this.$element.append(component.render());\r\n }\r\n \r\n return component;\r\n }\r\n \r\n addClass(className) {\r\n this.classes.push(className);\r\n \r\n if (this.$element !== null) {\r\n this.$element.addClass(className);\r\n }\r\n \r\n return this;\r\n }\r\n \r\n render() {\r\n this.$element = $(`<div class=\"graph-key\"></div>`);\r\n \r\n for (let i = 0; i < this.items.length; i++) {\r\n this.$element.append(this.items[i].render());\r\n }\r\n \r\n for (let i = 0; i < this.classes.length; i++) {\r\n this.$element.addClass(this.classes[i]);\r\n }\r\n \r\n return this.$element.get();\r\n }\r\n}\r\n\r\nexport default GraphKeyComponent;","import { EventDispatcher } from \"@nrw.core/styles\";\r\n\r\nclass SeparateScaleLabelComponent {\r\n constructor(graphConfig, scaleLabelElement) {\r\n this.$scaleLabelElement = $(scaleLabelElement);\r\n this.graphConfig = graphConfig;\r\n \r\n this.onGraphConfigUpdated = new EventDispatcher();\r\n \r\n this.showingScaleLabelSeparately = null;\r\n }\r\n \r\n showScaleLabelSeparately(toggle) {\r\n toggle = !!toggle;\r\n \r\n if (toggle === this.showingScaleLabelSeparately) {\r\n return;\r\n }\r\n \r\n let yScale = this.graphConfig.findScaleByIndex(\"y\", 0);\r\n if (toggle) {\r\n this.$scaleLabelElement.text(yScale.scaleLabel.labelString);\r\n }\r\n \r\n yScale.scaleLabel.display = !toggle;\r\n this.$scaleLabelElement.toggleClass(\"scale-label--visible\", toggle);\r\n this.onGraphConfigUpdated.invokeListeners([], this);\r\n }\r\n}\r\n\r\nexport default SeparateScaleLabelComponent;","import CumulativeDailyGraphComponent from \"./CumulativeDailyGraphComponent\";\r\nimport CumulativeDailyMonthSelectorComponent from \"./CumulativeDailyMonthSelectorComponent\";\r\nimport CumulativeDailyGraphDataSetAdapter from \"./CumulativeDailyGraphDataSetAdapter\";\r\nimport CumulativeDailyGraphAggregateDataSetView from \"./CumulativeDailyGraphAggregateDataSetView\";\r\nimport MomentUnitPartitioner from \"../../Data/MomentUnitPartitioner\";\r\nimport GraphKeyComponent from \"../../Key/GraphKeyComponent\";\r\nimport DataAvailabilityPlugin from \"../../Configuration/Plugins/DataAvailabilityPlugin\";\r\nimport CanvasResizeNotifierPlugin from \"../../Configuration/Plugins/CanvasResizeNotifierPlugin\";\r\nimport DataAvailabilityComponent from \"../../DataAvailabilityComponent\";\r\nimport SeparateScaleLabelComponent from \"../../SeparateScaleLabelComponent\";\r\nimport Html from \"NRW/Util/Html\";\r\nimport Resource from \"NRW/Util/Resource\";\r\nimport { Breakpoint } from \"@nrw.core/styles\";\r\nimport moment from \"moment\";\r\n\r\nconst TEMPLATE = `\r\n <h3 class=\"long-term-comparison__heading\">${Resource.CumulativeDailyHeading}</h3>\r\n <span class=\"long-term-comparison__sub-heading\"></span>\r\n <div data-component=\"key\"></div>\r\n <div class=\"scale-label\"></div>\r\n <div class=\"long-term-comparison__graph-loading-modal-container\">\r\n <div class=\"graph-loading-modal\">\r\n <div class=\"graph-loading-modal__container\">\r\n <div class=\"graph-loading-modal__loading-spinner\">\r\n <div class=\"lds-spinner\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div data-component=\"graph\"></div>\r\n <div data-component=\"monthSelector\"></div>\r\n`;\r\n\r\nclass CumulativeDailyGraphContainerComponent {\r\n constructor(station, parameter, dataSetView) {\r\n this.dataSetView = dataSetView;\r\n\r\n this.graph = new CumulativeDailyGraphComponent(station, parameter);\r\n this.monthSelector = new CumulativeDailyMonthSelectorComponent();\r\n this.key = new GraphKeyComponent().addClass(\"long-term-comparison__graph-key\");\r\n\r\n this.currentMonthSubHeading = null;\r\n \r\n this.dailyDataSetView = new CumulativeDailyGraphAggregateDataSetView(this.dataSetView);\r\n this.dataSetAdapter = new CumulativeDailyGraphDataSetAdapter(this.dailyDataSetView);\r\n\r\n this.key.add(this.dataSetAdapter.actual.borderColor, Resource.Actual);\r\n this.key.add(this.dataSetAdapter.average.borderColor, Resource.Average);\r\n\r\n this.monthPartitioner = new MomentUnitPartitioner(\"month\");\r\n\r\n this.graph.setData(this.dataSetAdapter.convert());\r\n\r\n this.monthSelector.onChange.addListener((newMonthDate) => {\r\n this.setMonthUsingDate(newMonthDate);\r\n });\r\n\r\n this.dataSetAdapter.dataUpdated.addListener(() => {\r\n this.resetAndUpdateGraph();\r\n });\r\n\r\n this.dataAvailabilityComponent = new StatefulDataAvailablityComponentProxy();\r\n\r\n this.dataAvailabilityPlugin = new DataAvailabilityPlugin(this.dataSetView.dataSet);\r\n this.dataAvailabilityPlugin.onChange.addListener((state) => {\r\n this.dataAvailabilityComponent.onDataAvailibilityChange(state);\r\n });\r\n this.graph.graphConfig.addPlugin(this.dataAvailabilityPlugin);\r\n\r\n this.canvasResizeNotifierPlugin = new CanvasResizeNotifierPlugin();\r\n this.canvasResizeNotifierPlugin.onChange.addListener((styles) => {\r\n this.dataAvailabilityComponent.onCanvasSizeChange(styles);\r\n });\r\n this.graph.graphConfig.addPlugin(this.canvasResizeNotifierPlugin);\r\n\r\n let minDataDate = parameter.graphConfiguration.xAxis.min;\r\n minDataDate = minDataDate ? new Date(minDataDate) : new Date();\r\n\r\n this.monthSelector.setMonthLimit(minDataDate, new Date());\r\n this.setMonthUsingDate(new Date());\r\n\r\n this.components = {\r\n graph: this.graph,\r\n key: this.key,\r\n monthSelector: this.monthSelector\r\n };\r\n }\r\n\r\n \r\n buildScaleLabelComponent($scaleLabelDiv) {\r\n let component = new SeparateScaleLabelComponent(this.graph.graphConfig, $scaleLabelDiv);\r\n \r\n Breakpoint.onChange.addListener((breakpoint) => {\r\n component.showScaleLabelSeparately(breakpoint === Breakpoint.mobile);\r\n });\r\n component.onGraphConfigUpdated.addListener(() => {\r\n this.graph.update();\r\n });\r\n\r\n component.showScaleLabelSeparately(Breakpoint.getCurrentBreakpoint() === Breakpoint.mobile);\r\n\r\n return component;\r\n }\r\n\r\n setMonthUsingDate(date) {\r\n this.currentMonth = moment(date).clone().toDate();\r\n this.updateCurrentMonthSubHeading();\r\n this.monthSelector.selectMonth(this.currentMonth);\r\n this.dailyDataSetView.range = this.monthPartitioner.getPartitionRange(this.currentMonth);\r\n this.dataSetAdapter.setMonthUsingDate(this.currentMonth);\r\n this.resetAndUpdateGraph();\r\n }\r\n\r\n resetAndUpdateGraph() {\r\n this.graph.resetYAxisScale();\r\n this.graph.update();\r\n }\r\n\r\n setLongTermAverageData(data) {\r\n this.dataSetAdapter.setLongTermAverageData(data);\r\n this.resetAndUpdateGraph();\r\n }\r\n\r\n render() {\r\n let domElements = Html.renderTemplate(TEMPLATE, this.components);\r\n\r\n let dataAvailablityComponentDom = $(domElements).find(\".graph-loading-modal\");\r\n this.dataAvailabilityComponent = this.dataAvailabilityComponent.build(dataAvailablityComponentDom);\r\n\r\n this.currentMonthSubHeading = $(domElements).find(\".long-term-comparison__sub-heading\").addBack(\".long-term-comparison__sub-heading\")[0];\r\n this.updateCurrentMonthSubHeading();\r\n\r\n this.separateScaleLabelComponent = this.buildScaleLabelComponent($(domElements).filter(\".scale-label\"));\r\n\r\n return domElements;\r\n }\r\n\r\n updateCurrentMonthSubHeading() {\r\n if (this.currentMonthSubHeading === null) {\r\n return;\r\n }\r\n\r\n this.currentMonthSubHeading.innerText = moment(this.currentMonth).format(\"MMMM YYYY\");\r\n }\r\n}\r\n\r\nclass StatefulDataAvailablityComponentProxy {\r\n constructor() {\r\n this.instance = null;\r\n this.preRenderDataAvailabilityComponentState = {\r\n onDataAvailibilityChange: [],\r\n onCanvasSizeChange: []\r\n };\r\n }\r\n\r\n onDataAvailibilityChange() {\r\n if (this.instance === null) {\r\n this.preRenderDataAvailabilityComponentState.onDataAvailibilityChange = arguments;\r\n } else {\r\n this.instance.onDataAvailibilityChange.apply(this.instance, arguments);\r\n }\r\n }\r\n\r\n onCanvasSizeChange() {\r\n if (this.instance === null) {\r\n this.preRenderDataAvailabilityComponentState.onCanvasSizeChange = arguments;\r\n } else {\r\n this.instance.onCanvasSizeChange.apply(this.instance, arguments);\r\n }\r\n }\r\n\r\n build() {\r\n this.instance = new DataAvailabilityComponent(...arguments);\r\n\r\n if (this.preRenderDataAvailabilityComponentState.onDataAvailibilityChange.length > 0) {\r\n this.instance.onDataAvailibilityChange.apply(this.instance, this.preRenderDataAvailabilityComponentState.onDataAvailibilityChange);\r\n }\r\n\r\n if (this.preRenderDataAvailabilityComponentState.onCanvasSizeChange.length > 0) {\r\n this.instance.onCanvasSizeChange.apply(this.instance, this.preRenderDataAvailabilityComponentState.onCanvasSizeChange);\r\n }\r\n\r\n this.preRenderDataAvailabilityComponentState = {};\r\n\r\n return this.instance;\r\n }\r\n}\r\n\r\nexport default CumulativeDailyGraphContainerComponent;","import Chart from \"chartjs\";\r\nconst InteractionModeKey = \"nearest-within-chart-area\";\r\n\r\nclass NearestWithinChartAreaInteractionModePlugin {\r\n constructor() {\r\n this.addNewInteractionMode();\r\n }\r\n\r\n addNewInteractionMode() {\r\n if (InteractionModeKey in Chart.Interaction.modes) {\r\n return;\r\n }\r\n\r\n Chart.Interaction.modes[InteractionModeKey] = this.nearestWithinChartArea.bind(this, Chart.Interaction.modes[\"nearest\"]);\r\n }\r\n\r\n nearestWithinChartArea(nearestFn, chart, e, options) {\r\n let nearestResults = nearestFn(chart, e, options);\r\n\r\n return nearestResults.filter(r => \r\n r._view.x >= chart.chartArea.left\r\n && r._view.x <= chart.chartArea.right\r\n && r._view.y >= chart.chartArea.top\r\n && r._view.y <= chart.chartArea.bottom\r\n );\r\n }\r\n}\r\n\r\nexport default NearestWithinChartAreaInteractionModePlugin;","import TooltipConfigurationBase from \"../../Configuration/TooltipConfigurationBase\";\r\nimport GraphConstants from \"../../Configuration/GraphConstants\";\r\nimport moment from \"moment\";\r\n\r\nclass MonthlyGraphTooltipConfiguration extends TooltipConfigurationBase {\r\n constructor(station, parameter) {\r\n super();\r\n\r\n this.parameter = parameter;\r\n\r\n $.extend(true, this, {\r\n mode: \"index\",\r\n intersect: false\r\n });\r\n\r\n this.applyTooltipOnRailsPositioning(\"average\");\r\n\r\n let existingCustom = this.custom;\r\n\r\n $.extend(true, this, {\r\n callbacks: {\r\n title: (function (_this) {\r\n return function (tooltipItems, data) {\r\n let firstItem = tooltipItems[0];\r\n let index = firstItem.index;\r\n\r\n let date = data.labels[index];\r\n\r\n return moment(date).format(\"MMMM YYYY\");\r\n }\r\n })(this),\r\n label: (function (_this) {\r\n return function (tooltipItem, data) {\r\n return `${data.datasets[tooltipItem.datasetIndex].label}: ${tooltipItem.yLabel}${_this.parameter.unit}`\r\n }\r\n })(this),\r\n footer: (function (_this) {\r\n return function (tooltipItems, data) {\r\n let actualDatasetIndex = data.datasets.map((a, b) => a.id === \"actual\" ? b : null).filter(a => a !== null)[0];\r\n let averageDatasetIndex = data.datasets.map((a, b) => a.id === \"average\" ? b : null).filter(a => a !== null)[0];\r\n let actualValueIndex = tooltipItems.filter(a => a.datasetIndex === actualDatasetIndex)[0].index;\r\n let averageValueIndex = tooltipItems.filter(a => a.datasetIndex === averageDatasetIndex)[0].index;\r\n\r\n let actualValue = data.datasets[actualDatasetIndex].data[actualValueIndex];\r\n let averageValue = data.datasets[averageDatasetIndex].data[averageValueIndex];\r\n\r\n let percentage = (100 * ((actualValue / averageValue) - 1)).toFixed(0);\r\n _this.isPercentPositive = percentage > 0;\r\n\r\n if (percentage > 0) {\r\n percentage = \"+\" + percentage;\r\n }\r\n\r\n percentage = \"\" + percentage + \"%\";\r\n return percentage;\r\n }\r\n })(this),\r\n },\r\n custom: (function (_this) {\r\n return function (model) {\r\n existingCustom.call(this, model);\r\n \r\n if (_this.isPercentPositive) {\r\n model.footerFontColor = GraphConstants.LIGHT_GREEN_1;\r\n } else {\r\n model.footerFontColor = GraphConstants.DARK_GREY;\r\n }\r\n }\r\n })(this)\r\n });\r\n }\r\n}\r\n\r\nexport default MonthlyGraphTooltipConfiguration;","import GraphConfigurationBase from \"../../Configuration/GraphConfigurationBase\";\r\nimport GraphConstants from \"../../Configuration/GraphConstants\";\r\nimport moment from \"moment\";\r\nimport RemovePaddingRightPlugin from \"../../Configuration/Plugins/RemovePaddingRightPlugin\";\r\nimport LineThroughTooltipPlugin from \"../../Configuration/Plugins/LineThroughTooltipPlugin\";\r\nimport YAxisRangePlugin from \"../../Configuration/Plugins/YAxisRangePlugin\";\r\nimport NearestWithinChartAreaInteractionModePlugin from \"../../Configuration/Plugins/NearestWithinChartAreaInteractionModePlugin\";\r\nimport ScaleConsistentTicksFix from \"../../Configuration/ScaleConsistentTicksFix\";\r\nimport MonthlyGraphTooltipConfiguration from \"./MonthlyGraphTooltipConfiguration\";\r\nimport Language from \"NRW/Util/Language\";\r\nimport { EventDispatcher } from \"@nrw.core/styles\";\r\nclass MonthlyGraphConfiguration extends GraphConfigurationBase {\r\n constructor(station, parameter) {\r\n super();\r\n let _this = this;\r\n\r\n this.onClick = new EventDispatcher();\r\n this.onHover = new EventDispatcher();\r\n\r\n this.tooltipConfig = new MonthlyGraphTooltipConfiguration(station, parameter);\r\n \r\n $.extend(true, this, {\r\n type: 'bar',\r\n options: {\r\n aspectRatio: 1,\r\n tooltips: this.tooltipConfig,\r\n onClick: function (event, activeElements) {\r\n _this.onClick.invokeListeners([event, activeElements], _this);\r\n },\r\n onHover: function (event, activeElements) {\r\n _this.onHover.invokeListeners([event, activeElements], _this);\r\n },\r\n },\r\n plugins: [\r\n new RemovePaddingRightPlugin(),\r\n new LineThroughTooltipPlugin({\r\n color: GraphConstants.LINE_RED,\r\n width: 1\r\n }),\r\n new YAxisRangePlugin(),\r\n new NearestWithinChartAreaInteractionModePlugin()\r\n ]\r\n });\r\n\r\n $.extend(true, this.findScaleByIndex(\"x\", 0), {\r\n type: 'category',\r\n barThickness: \"flex\",\r\n gridLines: {\r\n drawTicks: false\r\n },\r\n ticks: {\r\n padding: 10,\r\n callback: function (value, index, values) {\r\n let momentifiedDate = moment(values[index]);\r\n\r\n return [momentifiedDate.format(\"MMM\"), momentifiedDate.format(\"YY\")];\r\n }\r\n }\r\n });\r\n\r\n $.extend(true, this.findScaleByIndex(\"y\", 0), {\r\n type: 'linear',\r\n scaleLabel: {\r\n display: true,\r\n labelString: `${Language.text(parameter.typeText)} (${parameter.unit})`\r\n },\r\n ticks: {\r\n },\r\n afterBuildTicks: function (scale) {\r\n ScaleConsistentTicksFix.afterBuildTicks(scale);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default MonthlyGraphConfiguration;","import Html from \"NRW/Util/Html\";\r\nimport { EventDispatcher, Breakpoint } from \"@nrw.core/styles\";\r\nimport Chart from \"chartjs\";\r\nimport MonthlyGraphConfiguration from \"./MonthlyGraphConfiguration\";\r\nimport Orientation from \"NRW/Util/Orientation\";\r\nimport Resource from \"NRW/Util/Resource\";\r\n\r\nconst TEMPLATE = `\r\n<canvas class=\"long-term-comparison__graph-canvas\"></canvas>\r\n`;\r\n\r\nclass MonthlyGraphComponent {\r\n constructor(station, parameter) {\r\n this.canvas = null;\r\n this.graphConfig = new MonthlyGraphConfiguration(station, parameter)\r\n .listenForBreakpointChangesFrom(Breakpoint)\r\n .listenForOrientationChangesFrom(Orientation);\r\n this.graphConfig.updateResponsiveProperties(Breakpoint.getCurrentBreakpoint(), Orientation.getCurrentOrientation());\r\n \r\n this.onMonthClicked = new EventDispatcher();\r\n this.graphConfig.onClick.addListener((event, activeElements) => {\r\n let monthDate = this.getMonthDate(event, activeElements);\r\n \r\n if (monthDate) {\r\n this.onMonthClicked.invokeListeners([monthDate], this);\r\n }\r\n });\r\n this.graphConfig.onHover.addListener((event, activeElements) => {\r\n let cursor = this.getMonthDate(event, activeElements) === null ? \"\" : \"pointer\";\r\n \r\n if (this.canvas.style.cursor !== cursor) {\r\n this.canvas.style.cursor = cursor;\r\n }\r\n });\r\n this.graphConfig.onConfigChanged.addListener((neededChanges) => {\r\n if (neededChanges.resize) {\r\n if (this.graph) {\r\n this.graph.resize();\r\n }\r\n } else {\r\n this.update();\r\n }\r\n });\r\n \r\n }\r\n \r\n getMonthDate(event, activeElements) {\r\n if (activeElements.length === 0) {\r\n return null;\r\n }\r\n \r\n let firstItem = activeElements[0];\r\n \r\n if (typeof firstItem._index === typeof undefined) {\r\n return null;\r\n }\r\n \r\n let relativePosition = Chart.helpers.getRelativePosition(event, this.graph);\r\n \r\n let hitOnBar = firstItem.inRange(relativePosition.x, relativePosition.y);\r\n let hitOnBarVerticalSlice = firstItem.inLabelRange(relativePosition.x, relativePosition.y);\r\n \r\n if (hitOnBar || (hitOnBarVerticalSlice && relativePosition.y > this.graph.chartArea.bottom)) {\r\n return this.graphConfig.data.labels[firstItem._index];\r\n }\r\n \r\n return null;\r\n }\r\n \r\n render() {\r\n let renderedComponents = Html.renderTemplate(TEMPLATE, {});\r\n \r\n this.canvas = $(renderedComponents).filter(\"canvas\")[0];\r\n \r\n const title = Resource.GraphAccessibilityLabel.replace(\"{0}\", Resource.MonthlyGraphHeading);\r\n this.canvas.setAttribute(\"title\", title);\r\n \r\n this.buildGraph();\r\n \r\n return renderedComponents;\r\n }\r\n \r\n setData(data) {\r\n this.graphConfig.data = data;\r\n }\r\n \r\n update() {\r\n if (this.graph) {\r\n this.graph.update({duration: 0, animate: false});\r\n }\r\n }\r\n \r\n buildGraph() {\r\n this.graph = new Chart(this.canvas, this.graphConfig);\r\n }\r\n}\r\n\r\nexport default MonthlyGraphComponent;","import GraphConstants from \"../../Configuration/GraphConstants\";\r\nimport Resource from \"NRW/Util/Resource\";\r\nclass MonthlyGraphDataAdapter {\r\n constructor() {\r\n this.data = {\r\n labels: [],\r\n datasets: [\r\n {\r\n id: \"actual\",\r\n label: Resource.Actual,\r\n backgroundColor: GraphConstants.BLUE,\r\n data: []\r\n },\r\n {\r\n id: \"average\",\r\n label: Resource.Average,\r\n backgroundColor: GraphConstants.GREY,\r\n data: []\r\n }\r\n ]\r\n };\r\n\r\n this.actual = this.data.datasets[0];\r\n this.average = this.data.datasets[1];\r\n }\r\n\r\n clear() {\r\n this.data.labels = [];\r\n this.actual.data = [];\r\n this.average.data = [];\r\n }\r\n\r\n convert(data) {\r\n this.clear();\r\n\r\n data = data.data;\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n let item = data[i];\r\n\r\n this.data.labels.push(item.indexDate);\r\n this.actual.data.push(item.actualValue);\r\n this.average.data.push(item.longTermAverageValue);\r\n }\r\n\r\n return this.data;\r\n }\r\n}\r\n\r\nexport default MonthlyGraphDataAdapter;","import MonthlyGraphComponent from \"./MonthlyGraphComponent\";\r\nimport GraphKeyComponent from \"../../Key/GraphKeyComponent\";\r\nimport MonthlyGraphDataSetAdapter from \"./MonthlyGraphDataSetAdapter\";\r\nimport SeparateScaleLabelComponent from \"../../SeparateScaleLabelComponent\";\r\nimport Html from \"NRW/Util/Html\";\r\nimport Resource from \"NRW/Util/Resource\";\r\nimport { Breakpoint } from \"@nrw.core/styles\";\r\nconst TEMPLATE = `\r\n <h3 class=\"long-term-comparison__heading\">${Resource.MonthlyGraphHeading}</h3>\r\n <span class=\"long-term-comparison__sub-heading\">${Resource.ForPrevious12Months}</span>\r\n <div data-component=\"key\"></div>\r\n <div class=\"scale-label\"></div>\r\n <div data-component=\"graph\"></div>\r\n`;\r\n\r\nclass MonthlyGraphContainerComponent {\r\n constructor(station, parameter) {\r\n this.dataAdapter = new MonthlyGraphDataSetAdapter();\r\n\r\n this.graph = new MonthlyGraphComponent(station, parameter);\r\n this.key = new GraphKeyComponent().addClass(\"long-term-comparison__graph-key\");\r\n\r\n this.key.add(this.dataAdapter.actual.backgroundColor, this.dataAdapter.actual.label);\r\n this.key.add(this.dataAdapter.average.backgroundColor, this.dataAdapter.average.label);\r\n\r\n this.components = {\r\n graph: this.graph,\r\n key: this.key\r\n };\r\n }\r\n\r\n setLongTermAverageData(data) {\r\n this.graph.setData(this.dataAdapter.convert(data));\r\n this.graph.update();\r\n }\r\n\r\n render() {\r\n let elements = Html.renderTemplate(TEMPLATE, this.components);\r\n\r\n this.separateScaleLabelComponent = this.buildScaleLabelComponent($(elements).filter(\".scale-label\"));\r\n\r\n return elements;\r\n }\r\n\r\n buildScaleLabelComponent($scaleLabelDiv) {\r\n let component = new SeparateScaleLabelComponent(this.graph.graphConfig, $scaleLabelDiv);\r\n \r\n Breakpoint.onChange.addListener((breakpoint) => {\r\n component.showScaleLabelSeparately(breakpoint === Breakpoint.mobile);\r\n });\r\n component.onGraphConfigUpdated.addListener(() => {\r\n this.graph.update();\r\n });\r\n\r\n component.showScaleLabelSeparately(Breakpoint.getCurrentBreakpoint() === Breakpoint.mobile);\r\n\r\n return component;\r\n\r\n }\r\n}\r\n\r\nexport default MonthlyGraphContainerComponent;","import LongTermRainfallDataService from \"./LongTermRainfallDataService\";\r\nimport CumulativeDailyGraphContainerComponent from \"./CumulativeDaily/CumulativeDailyGraphContainerComponent\";\r\nimport MonthlyGraphContainerComponent from \"./Monthly/MonthlyGraphContainerComponent\";\r\nimport Html from \"NRW/Util/Html\";\r\nimport Resource from \"NRW/Util/Resource\";\r\nconst TEMPLATE = `\r\n <div class=\"long-term-comparison\">\r\n <div class=\"long-term-comparison__loading-spinner lds-spinner\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n <div class=\"long-term-comparison__graph-container\">\r\n <div class=\"long-term-comparison__graph\">\r\n <div data-component=\"monthly\"></div>\r\n </div>\r\n <div class=\"long-term-comparison__graph\">\r\n <div data-component=\"cumulativeDaily\"></div>\r\n </div>\r\n </div>\r\n <p class=\"help-text long-term-comparison__help-text\">\r\n <span class=\"info-icon\"></span>\r\n ${Html.escape(Resource.ContextualGraphHelpText)}\r\n </p>\r\n </div>\r\n`;\r\n\r\nclass LongTermComparisonComponent {\r\n constructor(station, parameter, dataSet, dataSetView) {\r\n this.dataSet = dataSet;\r\n this.dataSetView = dataSetView;\r\n this.station = station;\r\n this.parameter = parameter;\r\n\r\n this.loaded = false;\r\n this.loading = true;\r\n this.loadingSpinnerElement = null;\r\n this.graphContainerElement = null;\r\n\r\n this.longTermRainfallDataService = new LongTermRainfallDataService();\r\n\r\n this.monthly = new MonthlyGraphContainerComponent(station, parameter);\r\n this.cumulativeDaily = new CumulativeDailyGraphContainerComponent(station, parameter, dataSetView);\r\n\r\n this.monthly.graph.onMonthClicked.addListener((monthDate) => {\r\n this.cumulativeDaily.setMonthUsingDate(monthDate);\r\n });\r\n\r\n this.components = {\r\n monthly: this.monthly,\r\n cumulativeDaily: this.cumulativeDaily,\r\n };\r\n \r\n this.longTermRainfallDataService.getData(this.parameter.id).then(data => {\r\n this.setLoaded(true);\r\n this.monthly.setLongTermAverageData(data);\r\n this.cumulativeDaily.setLongTermAverageData(data);\r\n }).fail(error => {\r\n this.loading = false;\r\n this.setLoadingSpinnerVisibility(false);\r\n alert(\"Failed to load long term rainfall data\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n setLoaded(value) {\r\n this.loaded = !!value;\r\n this.loading = false;\r\n \r\n this.setGraphsVisibility(this.loaded);\r\n this.setLoadingSpinnerVisibility(false);\r\n }\r\n\r\n setLoadingSpinnerVisibility(value) {\r\n if (this.loadingSpinnerElement !== null) {\r\n this.loadingSpinnerElement.toggleClass(\"display-none\", !value);\r\n }\r\n }\r\n\r\n setGraphsVisibility(value) {\r\n if (this.graphContainerElement !== null) {\r\n this.graphContainerElement.toggleClass(\"long-term-comparison__graph-container--not-loaded\", !value);\r\n }\r\n }\r\n\r\n render() {\r\n let domElements = Html.renderTemplate(TEMPLATE, this.components);\r\n\r\n this.loadingSpinnerElement = $(domElements).find(\".long-term-comparison__loading-spinner\");\r\n this.graphContainerElement = $(domElements).find(\".long-term-comparison__graph-container\");\r\n\r\n this.setGraphsVisibility(this.loaded);\r\n this.setLoadingSpinnerVisibility(this.loading);\r\n\r\n return domElements;\r\n }\r\n}\r\n\r\nexport default LongTermComparisonComponent;","/**\r\n * This plugin allows unconnected points to be rendered on the graph.\r\n * E.g. --------- x ---------\r\n * With this plugin, the \"x\" above will be visible without needing to specify pointStyle.\r\n */\r\nclass DetachedPointsPlugin {\r\n\r\n afterDatasetUpdate(chart, datasetInfo) {\r\n let meta = datasetInfo.meta;\r\n\r\n let points = meta.data;\r\n let dataset = meta.dataset;\r\n\r\n for (let i = 0; i < points.length; i++) {\r\n this.patchPointDrawMethod(points[i]);\r\n\r\n let previousConnected = i > 0 && !points[i - 1]._model.skip;\r\n let nextConnected = i < points.length - 1 && !points[i + 1]._model.skip;\r\n\r\n if (!previousConnected && !nextConnected) {\r\n points[i].__DetachedPointsPlugin_detached = true;\r\n points[i]._model.radius = dataset._model.borderWidth / 3;\r\n points[i]._model.backgroundColor = dataset._model.borderColor;\r\n } else {\r\n points[i].__DetachedPointsPlugin_detached = false;\r\n }\r\n }\r\n }\r\n\r\n patchPointDrawMethod(point) {\r\n if (point.__DetachedPointsPlugin) {\r\n return;\r\n }\r\n\r\n let draw = point.draw;\r\n\r\n point.draw = function (chartArea) {\r\n if (this.__DetachedPointsPlugin_detached && this.$previousStyle) {\r\n draw.call({\r\n _view: $.extend(true, {}, this._view, this.$previousStyle),\r\n _model: $.extend(true, {}, this._model, this.$previousStyle),\r\n _chart: this._chart\r\n }, chartArea);\r\n }\r\n\r\n return draw.call(this, chartArea);\r\n }\r\n\r\n point.__DetachedPointsPlugin = true;\r\n }\r\n}\r\n\r\nexport default DetachedPointsPlugin;","class AnnotationBase {\r\n constructor(id) {\r\n $.extend(this, {\r\n id: id,\r\n type: \"\"\r\n });\r\n }\r\n}\r\nexport default AnnotationBase;\r\n","import AnnotationBase from \"./AnnotationBase\";\r\nimport Language from \"NRW/Util/Language\";\r\nimport Constants from \"NRW/Constants\";\r\nclass RecordLevelAnnotation extends AnnotationBase {\r\n constructor(record, unit) {\r\n super(record.id);\r\n\r\n $.extend(this, {\r\n type: 'line',\r\n mode: 'horizontal',\r\n value: record.value,\r\n enabled: true,\r\n borderDash: [3, 5],\r\n borderWidth: 2,\r\n borderColor: \"#9C9C9C\",\r\n label: {\r\n backgroundColor: \"#666666\",\r\n position: \"right\",\r\n fontFamily: Constants.FONT_FAMILY,\r\n cornerRadius: 0,\r\n xPadding: 5,\r\n yPadding: 5,\r\n fontSize: 14,\r\n fontStyle: \"normal\",\r\n yAdjust: -10.5,\r\n content: \"\" + Language.text(record.text) + \" (\" + record.value + unit + \")\",\r\n enabled: true\r\n },\r\n tooltip: record.timestamp,\r\n alphaLabel: \"\" + Language.text(record.text), // Used on mobile, handled by AnnotationManager\r\n });\r\n }\r\n\r\n onMouseenter(e) {\r\n }\r\n\r\n onMouseleave(e) {\r\n }\r\n\r\n textToId(text) {\r\n return text.toLowerCase().replace(/[^A-Za-z0-9\\-_ ]/g, \"\").replace(/[ ]+/g, \"-\");\r\n }\r\n}\r\n\r\nexport default RecordLevelAnnotation;","import AnnotationBase from \"./AnnotationBase\";\r\nimport Resource from \"NRW/Util/Resource\";\r\n\r\nclass TypicalLevelAnnotation extends AnnotationBase {\r\n constructor(typicalLevel) {\r\n super(typicalLevel.id);\r\n\r\n $.extend(this, {\r\n type: 'box',\r\n id: typicalLevel.id,\r\n yMin: typicalLevel.min,\r\n yMax: typicalLevel.max,\r\n enabled: true,\r\n backgroundColor: typicalLevel.colour,\r\n drawTime: 'beforeDatasetsDraw',\r\n label: {\r\n content: Resource.TypicalLevel\r\n }\r\n });\r\n }\r\n\r\n onMouseenter(e) {\r\n }\r\n\r\n onMouseleave(e) {\r\n }\r\n\r\n}\r\n\r\nexport default TypicalLevelAnnotation;","class BorderedChartAreaPlugin {\r\n constructor(colour) {\r\n this.colour = colour;\r\n }\r\n\r\n beforeDraw(chart, easing) {\r\n let ctx = chart.ctx;\r\n let area = chart.chartArea;\r\n\r\n ctx.save();\r\n\r\n ctx.strokeStyle = this.colour;\r\n ctx.lineWidth = 1;\r\n\r\n ctx.beginPath();\r\n ctx.moveTo(area.left, area.top);\r\n ctx.lineTo(area.right - 1, area.top);\r\n ctx.lineTo(area.right - 1, area.bottom);\r\n ctx.stroke();\r\n\r\n ctx.restore();\r\n }\r\n}\r\n \r\nexport default BorderedChartAreaPlugin;","const PluginPrefix = \"__SwapTooltipTitleAndBodyPlugin__\";\r\n\r\nclass SwapTooltipTitleAndBodyPlugin {\r\n beforeTooltipDraw(args) {\r\n let { tooltip } = args;\r\n\r\n if (!(`${PluginPrefix}_applied` in tooltip)) {\r\n let drawTitle = tooltip.drawTitle;\r\n let drawBody = tooltip.drawBody;\r\n\r\n // When drawTitle is called, we'll actually call drawBody. And vice versa\r\n tooltip.drawTitle = (pt, vm, ctx, opacity) => {\r\n drawBody.apply(tooltip, [pt, vm, ctx, opacity]);\r\n pt.y += 5;\r\n };\r\n tooltip.drawBody = drawTitle;\r\n\r\n tooltip[`${PluginPrefix}_applied`] = true;\r\n }\r\n }\r\n}\r\n \r\nexport default SwapTooltipTitleAndBodyPlugin;","import Chart from \"chartjs\";\r\nimport moment from \"moment\";\r\nconst PluginPrefix = \"__ZoomRespectRangesPlugin__\";\r\n\r\nclass ZoomRespectRangesPlugin {\r\n constructor() {\r\n this.patchGlobalZoomMethods();\r\n }\r\n\r\n patchGlobalZoomMethods() {\r\n if (PluginPrefix in Chart.Zoom) {\r\n return;\r\n }\r\n\r\n Chart.Zoom.zoomFunctions.linear = this.patchedZoomGenericScale.bind(\r\n this,\r\n Chart.Zoom.zoomFunctions.linear,\r\n (opts) => opts.ticks,\r\n this.setLinearScaleMinMax\r\n );\r\n\r\n Chart.Zoom[PluginPrefix] = true;\r\n }\r\n\r\n patchedZoomGenericScale(originalMethod, minMaxAccessor, minMaxSetter, scale, zoom, center, zoomOptions) {\r\n let { min, max } = minMaxAccessor(scale.options);\r\n\r\n // Call the original zoom method. Let it do its work.\r\n let result = originalMethod.call(null, scale, zoom, center, zoomOptions);\r\n\r\n let { min: newMin, max: newMax } = minMaxAccessor(scale.options);\r\n\r\n let axis = scale.isHorizontal() ? \"x\" : \"y\";\r\n\r\n let rangeMinOptions = zoomOptions.rangeMin || {};\r\n if (axis in rangeMinOptions && rangeMinOptions[axis] > 0) {\r\n let rangeSize = newMax - newMin;\r\n let minRangeSize = rangeMinOptions[axis];\r\n\r\n let diffRangeSize = minRangeSize - rangeSize;\r\n \r\n if (diffRangeSize > 0) {\r\n minMaxAccessor(scale.options).min = min;\r\n minMaxAccessor(scale.options).max = max;\r\n \r\n let newMinMax = minMaxAccessor(scale.options);\r\n newMin = newMinMax.min;\r\n newMax = newMinMax.max;\r\n }\r\n }\r\n\r\n let respectPanRangeOptions = zoomOptions.respectPanRange || {};\r\n if (axis in respectPanRangeOptions && respectPanRangeOptions[axis]) {\r\n let rangeMin = scale.chart.options.pan.rangeMin[axis];\r\n let rangeMax = scale.chart.options.pan.rangeMax[axis];\r\n\r\n let diffMin = rangeMin - newMin;\r\n let diffMax = rangeMax - newMax;\r\n\r\n minMaxSetter(scale, diffMin, diffMax, rangeMin, rangeMax);\r\n let newMinMax = minMaxAccessor(scale.options);\r\n newMin = newMinMax.min;\r\n newMax = newMinMax.max;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n setLinearScaleMinMax(scale, diffMin, diffMax, rangeMin, rangeMax) {\r\n if (diffMin > 0) {\r\n scale.options.ticks.min = rangeMin;\r\n }\r\n\r\n if (diffMax < 0) {\r\n scale.options.ticks.max = rangeMax;\r\n }\r\n \r\n if (diffMin > 0) {\r\n scale.options.ticks.max += diffMin;\r\n }\r\n\r\n if (diffMax < 0) {\r\n scale.options.ticks.min += diffMax;\r\n }\r\n\r\n if (diffMin > 0) {\r\n scale.options.ticks.min = Math.max(scale.options.ticks.min, rangeMin);\r\n }\r\n\r\n if (diffMax < 0) {\r\n scale.options.ticks.max = Math.min(scale.options.ticks.max, rangeMax);\r\n }\r\n }\r\n}\r\n\r\nexport default ZoomRespectRangesPlugin;","import Chart from \"chartjs\";\r\nimport moment from \"moment\";\r\nconst PluginPrefix = \"__PanFixRangeMinMaxPlugin__\";\r\n\r\nclass PanFixRangeMinMaxPlugin {\r\n constructor() {\r\n this.patchGlobalPanMethods();\r\n }\r\n\r\n patchGlobalPanMethods() {\r\n if (PluginPrefix in Chart.Zoom) {\r\n return;\r\n }\r\n\r\n\r\n Chart.Zoom.panFunctions.linear = this.patchedPanGenericScale.bind(\r\n this,\r\n Chart.Zoom.panFunctions.linear,\r\n (opts) => opts.ticks\r\n );\r\n\r\n Chart.Zoom[PluginPrefix] = true;\r\n }\r\n\r\n patchedPanGenericScale(originalMethod, minMaxAccessor, scale, delta, panOptions) {\r\n let { min, max } = minMaxAccessor(scale.options);\r\n let size = max - min;\r\n\r\n // Call the original zoom method. Let it do its work.\r\n let result = originalMethod.call(null, scale, delta, panOptions);\r\n\r\n let { min: newMin, max: newMax } = minMaxAccessor(scale.options);\r\n let newSize = newMax - newMin;\r\n\r\n // don't do anything if nothing has changed, or if fixZoomOnPan isn't configured\r\n if (newSize >= size || !(\"fixZoomOnPan\" in panOptions) || !panOptions.fixZoomOnPan) {\r\n return result;\r\n }\r\n\r\n let axis = scale.isHorizontal() ? \"x\" : \"y\";\r\n let diffSize = size - newSize;\r\n\r\n let rangeMin = scale.chart.options.pan.rangeMin[axis] || Number.MIN_VALUE;\r\n let rangeMax = scale.chart.options.pan.rangeMax[axis] || Number.MAX_VALUE;\r\n\r\n if (Math.abs(newMin - rangeMin) < Number.EPSILON) {\r\n // Using EPSILON to mitigate any floating point rounding errors\r\n scale.options.ticks.max = Math.min(scale.options.ticks.max + diffSize, rangeMax);\r\n }\r\n if (Math.abs(newMax - rangeMax) < Number.EPSILON) {\r\n scale.options.ticks.min = Math.max(scale.options.ticks.min - diffSize, rangeMin);\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport default PanFixRangeMinMaxPlugin;","import Chart from \"chartjs\";\r\nconst HysteresisValue = 0.1;\r\nconst PositionerKey = \"_on-rails\";\r\n\r\nclass TooltipNearestOnRailsPositionerPlugin {\r\n constructor() {\r\n this.addNewPositioner();\r\n }\r\n\r\n addNewPositioner() {\r\n if (PositionerKey in Chart.Tooltip.positioners) {\r\n return;\r\n }\r\n\r\n let self = this;\r\n\r\n Chart.Tooltip.positioners[\"nearest-on-rails\"] = function (active, eventPosition) {\r\n return self.positionerOnRails.call(this, \"nearest\", active, eventPosition);\r\n }\r\n Chart.Tooltip.positioners[\"average-on-rails\"] = function (active, eventPosition) {\r\n return self.positionerOnRails.call(this, \"average\", active, eventPosition);\r\n }\r\n }\r\n\r\n positionerOnRails(existingMode, active, eventPosition) {\r\n let nearestPosition = Chart.Tooltip.positioners[existingMode].call(this, active, eventPosition);\r\n\r\n let maxY = (this._chart.chartArea.bottom + this._chart.chartArea.top);\r\n\r\n let lastRailYAlign = this._lastRailYAlign || \"bottom\";\r\n let newRailYAlign = lastRailYAlign;\r\n\r\n if (lastRailYAlign === \"top\") {\r\n // The tooltip was last on the top\r\n if (nearestPosition.y > maxY * (0.5 + HysteresisValue)) {\r\n newRailYAlign = \"bottom\"; // Move it to the bottom\r\n }\r\n } else if (lastRailYAlign === \"bottom\") {\r\n // The tooltip was last on the bottom\r\n if (nearestPosition.y < maxY * (0.5 - HysteresisValue)) {\r\n newRailYAlign = \"top\"; // Move it to the top\r\n } \r\n }\r\n\r\n if (newRailYAlign === \"bottom\") {\r\n nearestPosition.y = 0;\r\n } else if (newRailYAlign === \"top\") {\r\n nearestPosition.y = maxY;\r\n }\r\n\r\n // Use tooltip custom property to change the yAlign to this newYAlign value, to get the caret pointing in the right direction\r\n this._model.newYAlign = this._lastRailYAlign = newRailYAlign;\r\n \r\n return nearestPosition;\r\n }\r\n}\r\n\r\nexport default TooltipNearestOnRailsPositionerPlugin;","class AnnotationPositionFixPlugin {\r\n afterLayout(chartInstance) {\r\n // Iterate over annotations with labels and detect whether they collide or not\r\n let annotations = chartInstance.annotation.elements;\r\n annotations = Object.keys(annotations).map(a => annotations[a]).filter(a => {\r\n return a.options.type === \"line\" && a.options.drawTime;\r\n }).sort((a, b) => {\r\n return b.options.value - a.options.value;\r\n });\r\n\r\n for (let i = 0; i < annotations.length; i++) {\r\n let annotation = annotations[i];\r\n\r\n if (annotation._model.labelCornerRadius === -1) {\r\n // labels of cornerRadius = -1 will have their heights and widths equalised\r\n annotation._model.labelCornerRadius = 100;\r\n if (annotation._model.labelHeight > annotation._model.labelWidth) {\r\n annotation._model.labelX -= annotation._model.labelHeight - annotation._model.labelWidth;\r\n annotation._model.labelWidth = annotation._model.labelHeight;\r\n } else {\r\n annotation._model.labelHeight = annotation._model.labelWidth;\r\n }\r\n }\r\n }\r\n\r\n for (let i = 1; i < annotations.length; i++) { // LOOP STARTS AT 1: Needs \"last annotation\" to compare against\r\n // Iterate thru annotations and detect any overlapping ones.\r\n let annotation = annotations[i];\r\n let lastAnnotation = annotations[i - 1];\r\n\r\n let overlap = lastAnnotation._model.labelY + lastAnnotation._model.labelHeight - annotation._model.labelY;\r\n if (overlap > 0) {\r\n // If there's overlap, reset their Y positions so that they touch on the center of the 2 annotation lines\r\n let midY = (lastAnnotation._model.y1 + annotation._model.y1) / 2;\r\n\r\n lastAnnotation._model.labelY = midY - lastAnnotation._model.labelHeight - 0.5;\r\n annotation._model.labelY = midY + 0.5;\r\n }\r\n }\r\n\r\n for (let i = 0; i < annotations.length; i++) {\r\n let annotation = annotations[i];\r\n\r\n // Check annotations to see if they are beyond the chart area bottom\r\n let diff = (annotation._model.labelY + annotation._model.labelHeight) - chartInstance.chartArea.bottom;\r\n if (diff > 0) {\r\n // Has gone past bottom of chart area\r\n annotation._model.labelY -= diff;\r\n\r\n for (let j = i - 1; j >= 0; j--) {\r\n // Push any overlapping labels up\r\n let neighbourAnnotation = annotations[j];\r\n\r\n let neighbourOverlap = (neighbourAnnotation._model.labelY + neighbourAnnotation._model.labelHeight) - annotation._model.labelY;\r\n\r\n if (neighbourOverlap > 0) {\r\n neighbourAnnotation._model.labelY -= neighbourOverlap;\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (let i = annotations.length - 1; i >= 0; i--) {\r\n let annotation = annotations[i];\r\n\r\n // Check annotations to see if they are beyond the chart area top\r\n let diff = chartInstance.chartArea.top - annotation._model.labelY;\r\n if (diff > 0) {\r\n // Has gone past bottom of chart area\r\n annotation._model.labelY += diff;\r\n\r\n for (let j = i + 1; j < annotations.length; j++) {\r\n // Push any overlapping labels down\r\n let neighbourAnnotation = annotations[j];\r\n\r\n let neighbourOverlap = (annotation._model.labelY + annotation._model.labelHeight) - neighbourAnnotation._model.labelY;\r\n\r\n if (neighbourOverlap > 0) {\r\n neighbourAnnotation._model.labelY += neighbourOverlap;\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default AnnotationPositionFixPlugin;","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.bold` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n bold: function bold() {\n return createHTML(this, 'b', '', '');\n }\n});\n","import Chart from \"chartjs\";\r\nimport Constants from \"NRW/Constants\";\r\nclass CustomTooltipPlugin {\r\n beforeInit(chartInstance) {\r\n chartInstance.customTooltip = chartInstance.customTooltip || {};\r\n\r\n this.defaultTextStyle = {\r\n font: \"14px \" + Constants.FONT_FAMILY,\r\n fillStyle: \"white\",\r\n textBaseline: \"middle\"\r\n };\r\n\r\n $.extend(true, chartInstance.customTooltip, {\r\n lines: [],\r\n enabled: false,\r\n caretPosition: {\r\n x: 100,\r\n y: 100\r\n }\r\n });\r\n }\r\n\r\n afterInit(chartInstance) {\r\n this.chartJsTooltipVisibilityPredicateForPlugin = { visible: true };\r\n chartInstance.tooltipVisibilityPredicates.push(this.chartJsTooltipVisibilityPredicateForPlugin);\r\n }\r\n\r\n beforeDraw(chartInstance) {\r\n let tooltip = chartInstance.customTooltip;\r\n this.chartJsTooltipVisibilityPredicateForPlugin.visible = !tooltip.enabled || tooltip.lines.length === 0;\r\n }\r\n\r\n afterDraw(chartInstance) {\r\n let tooltip = chartInstance.customTooltip;\r\n\r\n if (!tooltip.enabled || tooltip.lines.length === 0) {\r\n return;\r\n }\r\n\r\n let ctx = chartInstance.chart.ctx;\r\n let { x, y } = tooltip.caretPosition;\r\n\r\n let lines = [];\r\n\r\n ctx.save();\r\n \r\n for (let i = 0; i < tooltip.lines.length; i++) {\r\n let l = tooltip.lines[i];\r\n\r\n let lineModel = $.extend(true, {\r\n style: $.extend({}, this.defaultTextStyle)\r\n }, typeof l === \"object\" ? l : {\r\n text: l\r\n });\r\n\r\n if (lineModel.style.bold) {\r\n lineModel.style.font = \"bold \" + lineModel.style.font;\r\n }\r\n\r\n ctx.save();\r\n\r\n $.extend(ctx, lineModel.style);\r\n lineModel.width = ctx.measureText(lineModel.text).width;\r\n lineModel.height = +(/([0-9]+).*/.exec(ctx.font)[1]);\r\n\r\n ctx.restore();\r\n\r\n lines.push(lineModel);\r\n };\r\n\r\n let outerPadding = 5;\r\n let interLinePadding = 5;\r\n let caretSize = 10;\r\n\r\n let width = Math.max.apply(Math, lines.map(l => l.width)) + (outerPadding * 2);\r\n let height = lines.reduce((acc, line) => acc + line.height, 0) + ((lines.length - 1) * interLinePadding) + (outerPadding * 2);\r\n\r\n let topCaret = y - chartInstance.chartArea.top < height;\r\n \r\n x -= width;\r\n y += topCaret ? caretSize + (tooltip.caretPosition.topCaretYOffset || 0) : -height - caretSize;\r\n\r\n ctx.fillStyle = \"black\";\r\n ctx.lineWidth = 0;\r\n\r\n ctx.beginPath();\r\n ctx.moveTo(x, y);\r\n\r\n if (topCaret) {\r\n ctx.lineTo(x + width - caretSize, y);\r\n ctx.lineTo(x + width, y - caretSize);\r\n }\r\n\r\n ctx.lineTo(x + width, y);\r\n ctx.lineTo(x + width, y + height);\r\n\r\n if (!topCaret) {\r\n ctx.lineTo(x + width, y + height + caretSize);\r\n ctx.lineTo(x + width - caretSize, y + height);\r\n }\r\n\r\n ctx.lineTo(x, y + height);\r\n ctx.closePath();\r\n\r\n ctx.fill();\r\n\r\n let tx = x + outerPadding;\r\n let ty = y + outerPadding;\r\n\r\n for (let i = 0; i < lines.length; i++) {\r\n let line = lines[i];\r\n\r\n if (i > 0) {\r\n ty += interLinePadding;\r\n }\r\n\r\n ctx.save();\r\n $.extend(ctx, line.style);\r\n ctx.fillText(line.text, tx, ty + (line.height / 2));\r\n ctx.restore();\r\n \r\n ty += line.height;\r\n }\r\n\r\n ctx.restore();\r\n }\r\n}\r\n \r\nexport default CustomTooltipPlugin;","import Chart from \"chartjs\";\r\nconst PluginPrefix = \"__FixLinearScaleForBarChartPlugin__\";\r\n\r\nclass FixLinearScaleForBarChartPlugin {\r\n constructor() {\r\n this.patchMethods();\r\n }\r\n\r\n patchMethods() {\r\n if (PluginPrefix in Chart.scaleService.constructors.linear.prototype.getPixelForValue) {\r\n return;\r\n }\r\n\r\n let old_linear_getPixelForValue = Chart.scaleService.constructors.linear.prototype.getPixelForValue;\r\n\r\n Chart.scaleService.constructors.linear.prototype.getPixelForValue = function (value, index, datasetIndex) {\r\n if (typeof index === typeof undefined || typeof datasetIndex === typeof undefined || !this.chart.data.labels) {\r\n return old_linear_getPixelForValue.call(this, value, index, datasetIndex);\r\n }\r\n\r\n value = this.chart.data.labels[index];\r\n return old_linear_getPixelForValue.call(this, value, index, datasetIndex);\r\n }\r\n\r\n Chart.scaleService.constructors.linear.prototype.getPixelForValue[PluginPrefix] = true;\r\n }\r\n\r\n}\r\n\r\nexport default FixLinearScaleForBarChartPlugin;","class DynamicRangeMinMaxPlugin {\r\n constructor() {\r\n this.propsToPatch = [\r\n \"$.options.pan.rangeMin.x\",\r\n \"$.options.pan.rangeMax.x\"\r\n ].map(props => props.split(\".\"));\r\n }\r\n\r\n beforeUpdate(chartInstance) {\r\n for (let i = 0; i < this.propsToPatch.length; i++) {\r\n let propToPatch = this.propsToPatch[i];\r\n\r\n propToPatch.reduce((obj, key, index, propPath) => {\r\n if (key === \"$\") {\r\n return chartInstance;\r\n }\r\n\r\n if (index === propPath.length - 1) {\r\n if (key in obj && typeof obj[key] === \"function\") {\r\n Object.defineProperty(obj, key, {\r\n get: obj[key]\r\n });\r\n }\r\n\r\n return;\r\n }\r\n\r\n return obj[key];\r\n }, {});\r\n }\r\n }\r\n}\r\n\r\nexport default DynamicRangeMinMaxPlugin;","class HideTooltipOnPanPlugin {\r\n afterInit(chart) {\r\n let predicateForPlugin = { visible: true };\r\n\r\n chart.tooltipVisibilityPredicates.push(predicateForPlugin);\r\n\r\n let onBeforeUpdate = chart.options.pan.onBeforeUpdate;\r\n chart.options.pan.onBeforeUpdate = function () {\r\n if (onBeforeUpdate) {\r\n onBeforeUpdate.call(this);\r\n }\r\n\r\n predicateForPlugin.visible = false;\r\n }\r\n\r\n chart._mc.on(\"panend\", function (e) {\r\n predicateForPlugin.visible = true;\r\n\r\n chart.render({duration:0});\r\n });\r\n }\r\n}\r\n\r\nexport default HideTooltipOnPanPlugin;","class TooltipVisibilityPredicatePlugin {\r\n afterInit(chart) {\r\n chart.tooltipVisibilityPredicates = chart.tooltipVisibilityPredicates || [];\r\n }\r\n\r\n beforeTooltipDraw(chart) {\r\n let predicates = chart.tooltipVisibilityPredicates || [];\r\n \r\n for (let i = 0; i < predicates.length; i++) {\r\n if (!predicates[i].visible) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\nexport default TooltipVisibilityPredicatePlugin;","import RecordLevelAnnotation from \"../Annotations/RecordLevelAnnotation\";\r\nimport TypicalLevelAnnotation from \"../Annotations/TypicalLevelAnnotation\";\r\nimport BorderedChartAreaPlugin from \"./Plugins/BorderedChartAreaPlugin\";\r\nimport RemovePaddingRightPlugin from \"./Plugins/RemovePaddingRightPlugin\";\r\nimport SwapTooltipTitleAndBodyPlugin from \"./Plugins/SwapTooltipTitleAndBodyPlugin\";\r\nimport LineThroughTooltipPlugin from \"./Plugins/LineThroughTooltipPlugin\";\r\nimport ZoomRespectRangesPlugin from \"./Plugins/ZoomRespectRangesPlugin\";\r\nimport PanFixRangeMinMaxPlugin from \"./Plugins/PanFixRangeMinMaxPlugin\";\r\nimport NearestWithinChartAreaInteractionModePlugin from \"./Plugins/NearestWithinChartAreaInteractionModePlugin\";\r\nimport TooltipNearestOnRailsPositionerPlugin from \"./Plugins/TooltipNearestOnRailsPositionerPlugin\";\r\nimport AnnotationPositionFixPlugin from \"./Plugins/AnnotationPositionFixPlugin\";\r\nimport CustomTooltipPlugin from \"./Plugins/CustomTooltipPlugin\";\r\nimport YAxisRangePlugin from \"./Plugins/YAxisRangePlugin\";\r\nimport FixLinearScaleForBarChartPlugin from \"./Plugins/FixLinearScaleForBarChartPlugin\";\r\nimport DynamicRangeMinMaxPlugin from \"./Plugins/DynamicRangeMinMaxPlugin\";\r\nimport HideTooltipOnPanPlugin from \"./Plugins/HideTooltipOnPanPlugin\";\r\nimport TooltipVisibilityPredicatePlugin from \"./Plugins/TooltipVisibilityPredicatePlugin\";\r\nimport { EventDispatcher, Breakpoint } from \"@nrw.core/styles\";\r\nimport Language from \"NRW/Util/Language\";\r\nimport Orientation from \"NRW/Util/Orientation\";\r\nimport GraphConstants from \"./GraphConstants\";\r\nimport GraphConfigurationBase from \"./GraphConfigurationBase\";\r\nimport moment from \"moment\";\r\nimport ScaleConsistentTicksFix from \"./ScaleConsistentTicksFix\";\r\n\r\nclass ParameterGraphConfigurationBase extends GraphConfigurationBase {\r\n constructor(parameter) {\r\n super();\r\n this.parameter = parameter;\r\n\r\n $.extend(true, this, {\r\n // Base configuration structure here\r\n\r\n options: {\r\n annotation: {\r\n events: [\"mouseenter\", \"mouseleave\"],\r\n annotations: [],\r\n // erase default draw time so that no annotations are drawn unless they specify\r\n // themselves when to draw. This acts as a \"hidden\" toggle\r\n drawTime: \" \"\r\n },\r\n responsiveDownsample: {\r\n enabled: false,\r\n /**\r\n * Choose aggregation algorithm 'AVG'(Average values) or\r\n * 'LTTB' (Largest-Triangle-Three-Buckets). Default: 'LTTB'\r\n */\r\n aggregationAlgorithm: 'LTTB',\r\n /**\r\n * The desired minimal distance between data points in pixels.\r\n * The plugin downsamples the data and tries to match this threshold.\r\n * Default: 1 pixel\r\n */\r\n desiredDataPointDistance: 1,\r\n /**\r\n * The minimal number of data points. The chart data is not downsampled further than\r\n * this threshold. Default: 100\r\n */\r\n minNumPoints: 5000,\r\n /**\r\n * Cull data to displayed range of x scale. Default: true\r\n */\r\n cullData: true\r\n },\r\n pan: {\r\n enabled: true,\r\n mode: \"x\",\r\n onPan: () => {\r\n this.onPan.invokeListeners();\r\n }, \r\n onBeforeUpdate: () => {\r\n this.onBeforePanOrZoomUpdate.invokeListeners();\r\n },\r\n rangeMin: {\r\n x: 1\r\n },\r\n rangeMax: {\r\n x: function () {\r\n let date = new Date();\r\n date.setHours(date.getHours() + 4);\r\n return date.valueOf();\r\n }\r\n },\r\n fixZoomOnPan: true\r\n },\r\n zoom: {\r\n enabled: true,\r\n mode: \"x\",\r\n onZoom: () => {\r\n this.onZoom.invokeListeners();\r\n },\r\n onBeforeUpdate: () => {\r\n this.onBeforePanOrZoomUpdate.invokeListeners();\r\n },\r\n rangeMin: {\r\n x: moment.duration(1, 'days').asMilliseconds()\r\n },\r\n respectPanRange: {\r\n x: true\r\n }\r\n }\r\n },\r\n plugins: [\r\n new DynamicRangeMinMaxPlugin(),\r\n new FixLinearScaleForBarChartPlugin(),\r\n new BorderedChartAreaPlugin(GraphConstants.BORDER_COLOR),\r\n new RemovePaddingRightPlugin(),\r\n new SwapTooltipTitleAndBodyPlugin(),\r\n new LineThroughTooltipPlugin({\r\n color: \"#FF4600\",\r\n width: 1\r\n }),\r\n new ZoomRespectRangesPlugin(),\r\n new PanFixRangeMinMaxPlugin(),\r\n new YAxisRangePlugin(),\r\n new NearestWithinChartAreaInteractionModePlugin(),\r\n new TooltipNearestOnRailsPositionerPlugin(),\r\n new AnnotationPositionFixPlugin(),\r\n new TooltipVisibilityPredicatePlugin(),\r\n new CustomTooltipPlugin(),\r\n new HideTooltipOnPanPlugin()\r\n ]\r\n });\r\n\r\n $.extend(true, this.findScaleByIndex(\"y\", 0), {\r\n scaleLabel: {\r\n display: true,\r\n labelString: `${Language.text(parameter.typeText)} (${parameter.unit})`\r\n },\r\n afterBuildTicks: function (scale) {\r\n ScaleConsistentTicksFix.afterBuildTicks(scale);\r\n }\r\n });\r\n\r\n this.onPan = new EventDispatcher();\r\n this.onZoom = new EventDispatcher();\r\n this.onBeforePanOrZoomUpdate = new EventDispatcher();\r\n\r\n this.graphConfiguration = parameter.graphConfiguration;\r\n\r\n this.setTimeFormatTo24Hours(GraphConstants.DEFAULT_TIME_FORMAT_24_HOURS);\r\n }\r\n\r\n updateResponsivePropertiesInternal(breakpoint, orientation) {\r\n let neededUpdates = super.updateResponsivePropertiesInternal(breakpoint, orientation);\r\n\r\n // Set aspect ratio\r\n let aspectRatio = 2;\r\n if (breakpoint === Breakpoint.mobile && orientation === Orientation.portrait) {\r\n aspectRatio = 1;\r\n }\r\n neededUpdates.resize |= this.updateAspectRatio(aspectRatio);\r\n\r\n return neededUpdates;\r\n }\r\n\r\n getAllAnnotations() {\r\n return [].concat(this.getRecordLevelAnnotations(this.graphConfiguration), this.getTypicalLevelAnnotation(this.graphConfiguration));\r\n }\r\n\r\n getRecordLevelAnnotations(graphConfiguration) {\r\n let annotations = [];\r\n\r\n if (\"recordLevels\" in graphConfiguration) {\r\n let recordLevels = graphConfiguration.recordLevels;\r\n\r\n for (let i = 0; i < recordLevels.length; i++) {\r\n let recordLevel = recordLevels[i];\r\n let recordLevelAnnotation = this.buildRecordLevelAnnotation(recordLevel);\r\n\r\n recordLevelAnnotation.scaleID = this.options.scales.yAxes[0].id;\r\n\r\n annotations.push(recordLevelAnnotation);\r\n }\r\n }\r\n\r\n return annotations;\r\n }\r\n\r\n getTypicalLevelAnnotation(graphConfiguration) {\r\n if (\"typicalLevel\" in graphConfiguration && graphConfiguration.typicalLevel !== null) {\r\n let typicalLevel = graphConfiguration.typicalLevel;\r\n let typicalLevelAnnotation = this.buildTypicalLevelAnnotation(typicalLevel);\r\n\r\n // typicalLevelAnnotation.xScaleID = this.options.scales.xAxes[0].id; //TODO raise issue with chart js plugin\r\n typicalLevelAnnotation.yScaleID = this.options.scales.yAxes[0].id;\r\n\r\n return [typicalLevelAnnotation];\r\n }\r\n\r\n return [];\r\n }\r\n\r\n buildRecordLevelAnnotation(recordLevel) {\r\n return new RecordLevelAnnotation(recordLevel, this.parameter.unit);\r\n }\r\n\r\n buildTypicalLevelAnnotation(typicalLevel) {\r\n return new TypicalLevelAnnotation(typicalLevel);\r\n }\r\n\r\n setTimeFormatTo24Hours(toggle) {\r\n if (toggle) {\r\n this.timeFormat = GraphConstants.TIME_FORMAT_24_HOURS;\r\n this.shortTimeFormat = GraphConstants.SHORT_TIME_FORMAT_24_HOURS;\r\n } else {\r\n this.timeFormat = GraphConstants.TIME_FORMAT_12_HOURS;\r\n this.shortTimeFormat = GraphConstants.SHORT_TIME_FORMAT_12_HOURS;\r\n }\r\n\r\n this.dateFormat = GraphConstants.FULL_DATE_FORMAT + \" \" + this.timeFormat;\r\n }\r\n}\r\n\r\nexport default ParameterGraphConfigurationBase;","import Chart from \"chartjs\";\r\nclass ScaleRemoveOutOfChartAreaTicksFix {\r\n static afterBuildTicks(scale) {\r\n const ticks = scale.ticks;\r\n const chartArea = scale.chart.chartArea;\r\n const horizontal = scale.isHorizontal();\r\n\r\n if (!chartArea) {\r\n return;\r\n }\r\n\r\n const { min, max } = scale.options.ticks;\r\n\r\n for (let i = 0; i < ticks.length; i++) {\r\n const tick = ticks[i];\r\n\r\n if (tick >= min && tick < max) {\r\n continue;\r\n } else {\r\n ticks.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n\r\n scale.ticks = ticks;\r\n }\r\n}\r\n\r\nexport default ScaleRemoveOutOfChartAreaTicksFix;","import DetachedPointsPlugin from \"./Plugins/DetachedPointsPlugin\";\r\nimport ParameterGraphConfigurationBase from \"./ParameterGraphConfigurationBase\";\r\nimport ScaleRemoveOutOfChartAreaTicksFix from \"./ScaleRemoveOutOfChartAreaTicksFix\";\r\nimport moment from \"moment\";\r\n\r\nconst increments = [\r\n { unit: \"s\", value: 1 },\r\n { unit: \"s\", value: 10 },\r\n { unit: \"s\", value: 30 },\r\n { unit: \"m\", value: 1 },\r\n { unit: \"m\", value: 2 },\r\n { unit: \"m\", value: 5 },\r\n { unit: \"m\", value: 10 },\r\n { unit: \"m\", value: 15 },\r\n { unit: \"m\", value: 30 },\r\n { unit: \"h\", value: 1 },\r\n { unit: \"h\", value: 2 },\r\n { unit: \"h\", value: 4 },\r\n { unit: \"h\", value: 8 },\r\n { unit: \"h\", value: 12 },\r\n { unit: \"d\", value: 1 },\r\n { unit: \"d\", value: 2 },\r\n { unit: \"d\", value: 3 },\r\n { unit: \"w\", value: 1 },\r\n { unit: \"w\", value: 2 },\r\n { unit: \"M\", value: 1 },\r\n { unit: \"M\", value: 2 },\r\n { unit: \"M\", value: 3 },\r\n { unit: \"M\", value: 6 },\r\n { unit: \"M\", value: 12 }\r\n].map(increment => {\r\n return {\r\n unit: increment.unit,\r\n value: moment.duration(increment.value, increment.unit).asMilliseconds(),\r\n number: increment.value\r\n }\r\n})\r\n\r\nclass StationParameterLevelGraphConfiguration extends ParameterGraphConfigurationBase {\r\n constructor(parameter) {\r\n super(parameter);\r\n $.extend(true, this, {\r\n type: 'line',\r\n options: {\r\n responsiveDownsample: {\r\n enabled: true\r\n }\r\n }\r\n });\r\n \r\n $.extend(true, this.findScaleByIndex(\"x\", 0), {\r\n type: 'linear',\r\n beforeBuildTicks: (scale) => {\r\n this.patchScaleBuildTicks(scale);\r\n \r\n let roughTickSize = scale.options.ticks.roughTickSize || 120; // px\r\n let stepSize = (scale.options.ticks.max - scale.options.ticks.min) / (scale.width / roughTickSize);\r\n \r\n let increment = null;\r\n for (var i = 0; i < increments.length; i++) {\r\n if (i === increments.length - 1 || stepSize < increments[i].value) {\r\n increment = increments[i];\r\n stepSize = increment.value;\r\n scale.options.ticks.stepSize = stepSize;\r\n break;\r\n }\r\n }\r\n \r\n scale.increment = increment;\r\n \r\n scale.options.ticks.originalMin = scale.options.ticks.min;\r\n if (scale.increment.unit === \"w\" || scale.increment.unit === \"M\") {\r\n // If we're using a weekly unit, round our min down to a Monday to trick the buildTicks method to start on a Monday.\r\n scale.options.ticks.min = moment(scale.options.ticks.min).startOf(scale.increment.unit).valueOf();\r\n } else {\r\n let flooredMinDate = new Date(Math.floor(scale.options.ticks.min / stepSize) * stepSize);\r\n flooredMinDate.setTime(flooredMinDate.getTime() + (flooredMinDate.getTimezoneOffset() * 60 * 1000));\r\n scale.options.ticks.min = flooredMinDate.valueOf();\r\n }\r\n },\r\n afterBuildTicks: function (scale) {\r\n if (typeof scale.options.ticks.originalMin !== typeof undefined) {\r\n scale.options.ticks.min = scale.min = scale.start = scale.options.ticks.originalMin;\r\n delete scale.options.ticks.originalMin;\r\n \r\n scale.ticks[scale.ticks.length - 1] = scale.ticks[scale.ticks.length - 2] + scale.options.ticks.stepSize;\r\n }\r\n \r\n ScaleRemoveOutOfChartAreaTicksFix.afterBuildTicks(scale);\r\n },\r\n beforeTickToLabelConversion: (scale) => {\r\n this.patchConvertTicksToLabels(scale);\r\n },\r\n ticks: {\r\n autoSkip: false,\r\n callback: (\r\n // Need a self-executing function here to keep \"this\" (GraphConfigurationBase)\r\n // and the \"this\" passed to the callback (the scale)\r\n function (_this) {\r\n return function (value, index, values) {\r\n if (!values || values.length === 0) {\r\n return [\" 00/00/0000 \"]; // Representation label for chartjs to determine size of labels\r\n }\r\n \r\n let scale = this;\r\n \r\n let momentifiedDate = moment(values[index]);\r\n \r\n let dateLabel = momentifiedDate.format(\"DD/MM/YYYY\");\r\n \r\n if (scale.increment.unit !== \"d\" && scale.increment.unit !== \"w\" && scale.increment.unit !== \"M\") {\r\n return [momentifiedDate.format(_this.timeFormat), dateLabel];\r\n }\r\n \r\n return [dateLabel, \"\"];\r\n }\r\n }\r\n )(this)\r\n }\r\n });\r\n \r\n this.addPlugin(new DetachedPointsPlugin);\r\n }\r\n \r\n updateResponsivePropertiesInternal(breakpoint, orientation) {\r\n let neededUpdates = super.updateResponsivePropertiesInternal(breakpoint, orientation);\r\n \r\n neededUpdates.update |= this.updateRoughTickSize();\r\n \r\n return neededUpdates;\r\n }\r\n \r\n updateRoughTickSize() {\r\n let hasUpdated = false;\r\n \r\n let xScale = this.findScaleByIndex(\"x\", 0);\r\n let fontSize = xScale.ticks.fontSize;\r\n \r\n let newRoughTickSize = fontSize * (80 / 12);\r\n \r\n if (newRoughTickSize !== xScale.ticks.roughTickSize) {\r\n xScale.ticks.roughTickSize = newRoughTickSize;\r\n hasUpdated = true;\r\n }\r\n \r\n return hasUpdated;\r\n }\r\n \r\n patchScaleBuildTicks(scale) {\r\n if (scale.buildTicks.patched) {\r\n return;\r\n }\r\n \r\n let originalMethod = scale.buildTicks;\r\n \r\n scale.buildTicks = () => {\r\n if (scale.increment.unit === \"M\") {\r\n // Build ticks for months\r\n let ticks = [];\r\n let maxDate = moment(scale.options.ticks.max);\r\n let currentDate = moment(scale.options.ticks.min);\r\n \r\n ticks.push(currentDate.valueOf());\r\n \r\n do {\r\n currentDate.add(scale.increment.number || 1, \"month\");\r\n ticks.push(currentDate.valueOf());\r\n } while (currentDate.isSameOrBefore(maxDate));\r\n \r\n scale.ticks = ticks;\r\n \r\n scale.min = scale.start = scale.options.ticks.min;\r\n scale.max = scale.end = scale.options.ticks.max;\r\n return;\r\n }\r\n \r\n return originalMethod.call(scale);\r\n };\r\n \r\n scale.buildTicks.patched = true;\r\n }\r\n \r\n patchConvertTicksToLabels(scale) {\r\n if (scale.convertTicksToLabels.patched) {\r\n return;\r\n }\r\n \r\n let originalMethod = scale.convertTicksToLabels;\r\n \r\n scale.convertTicksToLabels = () => {\r\n originalMethod.apply(scale, arguments);\r\n let labels = scale.ticks;\r\n \r\n // Get the dates, and ensure there's only 1 date per day's worth of data\r\n let includedDates = [];\r\n \r\n for (let i = 0; i < labels.length; i++) {\r\n let label = labels[i];\r\n \r\n if (i === 0) {\r\n includedDates.push(label[1]);\r\n continue;\r\n }\r\n \r\n if (includedDates.indexOf(label[1]) >= 0) {\r\n label[1] = \"\";\r\n } else {\r\n includedDates.push(label[1]);\r\n }\r\n }\r\n \r\n // Get the times, if they're all the same, drop them\r\n let theOnlyTimeString = null;\r\n \r\n for (let i = 0; i < labels.length; i++) {\r\n if (theOnlyTimeString === null || theOnlyTimeString === labels[i][0]) {\r\n theOnlyTimeString = labels[i][0];\r\n continue;\r\n }\r\n \r\n theOnlyTimeString = null;\r\n break;\r\n }\r\n \r\n if (theOnlyTimeString !== null) {\r\n for (let i = 0; i < labels.length; i++) {\r\n labels[i][0] = labels[i][1];\r\n labels[i][1] = \"\";\r\n }\r\n }\r\n \r\n return labels;\r\n }\r\n \r\n scale.convertTicksToLabels.patched = true;\r\n }\r\n}\r\n\r\nexport default StationParameterLevelGraphConfiguration;\r\n","const PluginPrefix = \"__FixMissingTicksPlugin__\";\r\n\r\nclass FixMissingTicksPlugin {\r\n afterInit(chartInstance) {\r\n let scale = chartInstance.scales[\"x-axis-0\"];\r\n\r\n if (PluginPrefix in scale) {\r\n return;\r\n }\r\n\r\n let _autoSkip = scale._autoSkip;\r\n\r\n scale._autoSkip = function (ticks) {\r\n _autoSkip.call(scale, ticks.filter(t => t.label && t.label.length > 0));\r\n\r\n return ticks.map(r => {\r\n if (!r.hasOwnProperty(\"label\")) {\r\n r.label = [];\r\n }\r\n\r\n return r;\r\n });\r\n }\r\n\r\n scale[PluginPrefix] = true;\r\n }\r\n}\r\n\r\nexport default FixMissingTicksPlugin;","import ParameterGraphConfigurationBase from \"./ParameterGraphConfigurationBase\";\r\nimport FixMissingTicksPlugin from \"./Plugins/FixMissingTicksPlugin\";\r\nimport LineThroughTooltipPlugin from \"./Plugins/LineThroughTooltipPlugin\";\r\nclass StationParameterRainfallGraphConfiguration extends ParameterGraphConfigurationBase {\r\n constructor(parameter) {\r\n super(parameter);\r\n $.extend(true, this, {\r\n type: 'bar',\r\n options: {\r\n \r\n }\r\n });\r\n\r\n $.extend(true, this.findScaleByIndex(\"x\", 0), {\r\n type: 'linear',\r\n barThickness: 'flex',\r\n barPercentage: 1,\r\n categoryPercentage: 1,\r\n gridLines: {\r\n offsetGridLines: true\r\n },\r\n ticks: {\r\n autoSkipPadding: 10\r\n }\r\n });\r\n\r\n this.plugins.push(new FixMissingTicksPlugin);\r\n this.findPluginInstance(LineThroughTooltipPlugin).drawUnderDatasets = true;\r\n }\r\n}\r\n\r\nexport default StationParameterRainfallGraphConfiguration;","import Range from \"NRW/Util/Range\";\r\nimport moment from \"moment\";\r\nclass ParameterDataSetLoader {\r\n constructor(dataSet) {\r\n this.dataSet = dataSet;\r\n this.initialChunksLoaded = false;\r\n }\r\n\r\n static initialChunkRangeSizeMs() {\r\n return 14 /*days*/ * 24 /*hours*/ * 60 /*minutes*/ * 60 /*seconds*/ * 1000 /*milliseconds*/ ;\r\n }\r\n\r\n static minChunkLoadingRangeSizeMs() {\r\n // Load a month at a time\r\n return 30 /*days*/ * 24 /*hours*/ * 60 /*minutes*/ * 60 /*seconds*/ * 1000 /*milliseconds*/ ;\r\n }\r\n \r\n listenForDataRangeRequestsFrom(dataSetView) {\r\n dataSetView.dataRangesRequested.addListener((ranges) => {\r\n this.loadChunksForRange(new Range(ranges[0].start, ranges[ranges.length - 1].end));\r\n });\r\n\r\n return this;\r\n }\r\n\r\n loadChunksForRange(range) {\r\n let wholeRangeToLoad = new Range(new Date(range.start), new Date(range.end));\r\n\r\n // If this is the initial load, then ensure a month of data is loaded\r\n if (!this.initialChunksLoaded) {\r\n let rangeSize = wholeRangeToLoad.end - wholeRangeToLoad.start;\r\n\r\n // Range too small? Increase the size to the minimum size (moving start and end both equal distances)\r\n if (rangeSize <= ParameterDataSetLoader.minChunkLoadingRangeSizeMs()) {\r\n let sizeIncrease = ParameterDataSetLoader.minChunkLoadingRangeSizeMs() - rangeSize;\r\n\r\n wholeRangeToLoad.start = +(wholeRangeToLoad.start) - sizeIncrease;\r\n }\r\n\r\n wholeRangeToLoad.start = new Date(wholeRangeToLoad.start);\r\n wholeRangeToLoad.end = new Date(wholeRangeToLoad.end);\r\n\r\n this.initialChunksLoaded = true;\r\n }\r\n\r\n // Round the range dates to the start/ends of the month\r\n wholeRangeToLoad.start = moment(wholeRangeToLoad.start).startOf(\"month\").utc().toDate();\r\n\r\n let endDate = moment(wholeRangeToLoad.end);\r\n wholeRangeToLoad.end = endDate.isSame(endDate.clone().startOf(\"month\")) ? endDate.utc().toDate() : endDate.add(1, \"months\").startOf(\"month\").utc().toDate();\r\n\r\n // Split the range into chunks by month\r\n let rangesToLoad = [wholeRangeToLoad];\r\n\r\n for (let i = 0; i < rangesToLoad.length; i++) {\r\n let rangeToLoad = rangesToLoad[i];\r\n\r\n if (rangeToLoad.start.getMonth() === rangeToLoad.end.getMonth() && rangeToLoad.start.getFullYear() === rangeToLoad.end.getFullYear()) {\r\n continue;\r\n }\r\n\r\n let splitDate = moment(rangeToLoad.start).add(1, 'months').startOf('month').utc().toDate();\r\n let splitRangesForThisRange = rangeToLoad.split(splitDate);\r\n\r\n let spliceArgs = [i, 1].concat(splitRangesForThisRange); // spread operator doesn't work with babel\r\n rangesToLoad.splice.apply(rangesToLoad, spliceArgs);\r\n }\r\n\r\n for (let i = 0; i < rangesToLoad.length; i++) {\r\n this.dataSet.loadDataForRange(rangesToLoad[i]);\r\n }\r\n }\r\n}\r\n\r\nexport default ParameterDataSetLoader;","import moment from \"moment\";\r\nclass ParameterDataService {\r\n constructor() {\r\n \r\n }\r\n \r\n getData(parameterId, from, to) {\r\n let query = new URLSearchParams();\r\n query.set(\"parameterId\", parameterId);\r\n query.set(\"from\", this.formatDate(from));\r\n query.set(\"to\", this.formatDate(to));\r\n \r\n let url = `/graph/getdata?${query.toString()}`;\r\n \r\n return $.ajax(url, {context: this}).then(result => {\r\n result.data = this.convertDatesInArray(result.data);\r\n return result;\r\n });\r\n }\r\n \r\n getUpdates(parameterId, chunkUpdateRequests) {\r\n let query = new URLSearchParams();\r\n query.set(\"parameterId\", parameterId);\r\n \r\n let url = `/graph/getdata?${query.toString()}`;\r\n \r\n return $.ajax(url, {\r\n context: this,\r\n method: 'POST',\r\n contentType: \"application/json\",\r\n processData: false,\r\n data: JSON.stringify(chunkUpdateRequests)\r\n }).then(result => {\r\n result.data = this.convertDatesInArray(result.data);\r\n return result;\r\n })\r\n }\r\n \r\n convertDatesInArray(array) {\r\n return array.map(d => {\r\n d.x = new Date(d.x);\r\n return d;\r\n });\r\n }\r\n \r\n formatDate(date) {\r\n return date.toISOString();\r\n }\r\n}\r\n\r\nexport default ParameterDataService;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nimport Range from \"NRW/Util/Range\";\r\nimport ParameterDataChunk from \"./ParameterDataChunk\";\r\nclass ParameterDataSetView {\r\n constructor(dataSet) {\r\n this.dataSet = dataSet;\r\n\r\n this._range = this.dataSet.startChunk.range;\r\n this.dataUpdated = new EventDispatcher();\r\n this.dataRangesRequested = new EventDispatcher();\r\n this.rangeChanged = new EventDispatcher();\r\n\r\n dataSet.chunkLoaded.addListener((chunk, range) => {\r\n this.dataUpdated.invokeListeners([range], this);\r\n });\r\n }\r\n\r\n get startChunk() {\r\n return this.dataSet.startChunk;\r\n }\r\n\r\n checkForUnloadedChunks() {\r\n let rangeChunk = new ParameterDataChunk(new Range(+this.range.start, +this.range.end));\r\n let currentChunk = this.dataSet.startChunk;\r\n\r\n while (currentChunk.next !== null && currentChunk.range.end <= rangeChunk.range.start) {\r\n currentChunk = currentChunk.next;\r\n }\r\n\r\n if (currentChunk.range.start > rangeChunk.range.start) {\r\n rangeChunk = rangeChunk.split(currentChunk.range.start);\r\n }\r\n\r\n let currentRangeChunk = rangeChunk;\r\n\r\n let rangesToLoad = [];\r\n \r\n while (currentChunk !== null && currentRangeChunk !== null && currentRangeChunk.range.start >= currentChunk.range.start && currentRangeChunk.range.end > currentChunk.range.start) {\r\n let relevantRangeChunk = currentRangeChunk;\r\n\r\n if (currentChunk.range.end < currentRangeChunk.range.end) {\r\n currentRangeChunk = currentRangeChunk.split(currentChunk.range.end);\r\n }\r\n\r\n if (currentChunk.loaded || currentChunk.loading) {\r\n relevantRangeChunk.loaded = true;\r\n }\r\n \r\n currentChunk = currentChunk.next;\r\n }\r\n\r\n while (rangeChunk !== null) {\r\n if (!rangeChunk.loaded) {\r\n rangesToLoad.push(rangeChunk.range);\r\n }\r\n\r\n rangeChunk = rangeChunk.next;\r\n }\r\n\r\n return rangesToLoad;\r\n }\r\n\r\n get range() {\r\n return this._range;\r\n }\r\n\r\n set range(range) {\r\n this._range = range;\r\n this.rangeChanged.invokeListeners([range], this);\r\n\r\n let rangesToLoad = this.checkForUnloadedChunks();\r\n if (rangesToLoad.length > 0) {\r\n this.dataRangesRequested.invokeListeners([rangesToLoad], this);\r\n }\r\n }\r\n}\r\nexport default ParameterDataSetView;","class ParameterLinearDataSetAdapter {\r\n constructor() {\r\n this.clear();\r\n this.minTimeMsBetweenDataToNotDrawLine = 60 * 60 * 1000;\r\n }\r\n\r\n pushValues(date, value) {\r\n this.data.push({\r\n x: date.valueOf(),\r\n y: value\r\n });\r\n }\r\n\r\n clear() {\r\n this.data = [];\r\n }\r\n\r\n convert(currentChunk) {\r\n let lastItem = null;\r\n currentChunk = currentChunk || null; // type coersion \r\n\r\n this.clear();\r\n\r\n while (currentChunk !== null) {\r\n if (!currentChunk.loaded) {\r\n // This chunk must be connected to 2 adjacent chunks to draw gaps in the data\r\n if (currentChunk.previous !== null && currentChunk.next !== null) {\r\n this.pushValues(currentChunk.range.start, NaN);\r\n this.pushValues(currentChunk.range.end, NaN);\r\n }\r\n } else {\r\n for (let i = 0; i < currentChunk.data.length; i++) {\r\n let item = currentChunk.data[i];\r\n\r\n if (lastItem !== null && !isNaN(lastItem.y) && item.x - lastItem.x > this.minTimeMsBetweenDataToNotDrawLine) {\r\n this.pushValues(lastItem.x, NaN);\r\n this.pushValues(item.x, NaN);\r\n }\r\n\r\n this.data.push(item);\r\n lastItem = item;\r\n }\r\n }\r\n\r\n currentChunk = currentChunk.next;\r\n }\r\n\r\n return {\r\n //labels: this.labels,\r\n datasets: [{\r\n data: this.data,\r\n lineTension: 0,\r\n tension: 0,\r\n fill: false,\r\n pointRadius: 0,\r\n borderWidth: 2,\r\n borderColor: \"#047687\",\r\n pointBackgroundColor: \"transparent\",\r\n pointHoverBackgroundColor: \"transparent\",\r\n pointHoverBorderColor: \"#ff4600\",\r\n pointHoverBorderWidth: 3,\r\n pointHoverRadius: 10\r\n }]\r\n };\r\n }\r\n}\r\nexport default ParameterLinearDataSetAdapter;\r\n","class ParameterCategoryDataSetAdapter {\r\n constructor() {\r\n this.clear();\r\n }\r\n\r\n pushValues(date, value) {\r\n this.data.push({\r\n x: date.valueOf(),\r\n y: value\r\n });\r\n }\r\n\r\n clear() {\r\n this.categories = {};\r\n }\r\n\r\n convert(currentChunk) {\r\n currentChunk = currentChunk || null; // type coersion \r\n\r\n this.clear();\r\n\r\n while (currentChunk !== null) {\r\n if (currentChunk.previous !== null && currentChunk.next !== null) {\r\n let mid = (+currentChunk.range.start + +currentChunk.range.end) / 2;\r\n this.categories[mid] = currentChunk;\r\n }\r\n\r\n currentChunk = currentChunk.next;\r\n }\r\n\r\n let labels = Object.keys(this.categories).map(l => +l);\r\n return {\r\n labels: labels,\r\n datasets: [{\r\n data: labels.map(c => this.categories[c]).map(c => c.loaded ? c.data[0] : NaN),\r\n backgroundColor: \"#20C4F4\",\r\n hoverBackgroundColor: \"#007485\",\r\n borderWidth: 1,\r\n borderColor: \"white\"\r\n }],\r\n categories: this.categories\r\n };\r\n }\r\n}\r\n\r\nexport default ParameterCategoryDataSetAdapter;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nimport Range from \"NRW/Util/Range\";\r\nimport ParameterDataChunk from \"./ParameterDataChunk\";\r\nimport ParameterDataSet from \"./ParameterDataSet\";\r\nimport ParameterAggregateDataSetViewBase from \"./ParameterAggregateDataSetViewBase\";\r\nimport MomentUnitPartitioner from \"./MomentUnitPartitioner\";\r\nimport MomentDurationOffsettingPartitioner from \"./MomentDurationOffsettingPartitioner\";\r\nimport moment from \"moment\";\r\nimport OffsetDataSetViewChunk from \"./OffsetDataSetViewChunk\";\r\nimport Configuration from \"NRW/Util/Configuration\";\r\nclass RainfallAggregateDataSetView extends ParameterAggregateDataSetViewBase {\r\n constructor(dataSetView) {\r\n super(dataSetView);\r\n \r\n this.partitionerKey = null; // input: Date. output: Range object with moments;\r\n this.partitionerChanged = new EventDispatcher();\r\n \r\n this.offsetDuration = Configuration.rainfallReadingOffsetMilliseconds;\r\n \r\n this.availablePartitioners = {\r\n month: new MomentDurationOffsettingPartitioner(new MomentUnitPartitioner(\"month\"), this.offsetDuration),\r\n day: new MomentDurationOffsettingPartitioner(new MomentUnitPartitioner(\"day\"), this.offsetDuration),\r\n week: new MomentDurationOffsettingPartitioner(new MomentUnitPartitioner(\"week\"), this.offsetDuration),\r\n hour: new MomentDurationOffsettingPartitioner(new MomentUnitPartitioner(\"hour\"), this.offsetDuration),\r\n }\r\n }\r\n \r\n get startChunk() {\r\n return OffsetDataSetViewChunk.getOrCreateInstance(super.startChunk, (c) => {\r\n return new OffsetDataSetViewChunk(c, this.offsetDuration);\r\n });\r\n }\r\n \r\n getPartitioner() {\r\n return this.availablePartitioners[this.partitionerKey];\r\n }\r\n \r\n selectPartitionerKeyForRange(range) {\r\n let duration = moment.duration(range.end - range.start);\r\n \r\n if (duration.asMonths() >= 12) {\r\n return \"month\";\r\n }\r\n if (duration.asMonths() >= 4) {\r\n return \"week\";\r\n }\r\n if (duration.asDays() >= 7) {\r\n return \"day\";\r\n }\r\n \r\n return \"hour\";\r\n }\r\n \r\n get range() {\r\n return super.range;\r\n }\r\n \r\n set range(range) {\r\n let newPartitionerKey = this.selectPartitionerKeyForRange(range);\r\n let partitionerKeyHasChanged = false;\r\n \r\n if (newPartitionerKey !== this.partitionerKey) {\r\n this.partitionerKey = newPartitionerKey;\r\n this.partitionerChanged.invokeListeners([newPartitionerKey], this);\r\n \r\n partitionerKeyHasChanged = true;\r\n }\r\n \r\n super.range = range;\r\n \r\n if (partitionerKeyHasChanged) {\r\n this.buildAggregateChunks();\r\n this.dataUpdated.invokeListeners([range], this);\r\n } else {\r\n if (this.buildNecessaryAggregateChunks() > 0) {\r\n this.dataUpdated.invokeListeners([range], this);\r\n }\r\n }\r\n }\r\n}\r\nexport default RainfallAggregateDataSetView;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nclass PerPartitionSizeYAxisRangeStrategy {\r\n constructor(graphConfig, aggregateDataSetView, serverParameterGraphConfiguration) {\r\n this.aggregateDataSetView = aggregateDataSetView;\r\n this.serverParameterGraphConfiguration = serverParameterGraphConfiguration;\r\n this.graphConfig = graphConfig;\r\n this.yAxisRangeChanged = new EventDispatcher;\r\n\r\n this.aggregateDataSetView.partitionerChanged.addListener(() => {\r\n this.apply(this.graphConfig);\r\n });\r\n }\r\n\r\n apply() {\r\n let partitionerKeyToYAxisRangeMap = {\r\n \"day\": \"dailyYAxis\",\r\n \"month\": \"monthlyYAxis\",\r\n \"week\": \"weeklyYAxis\",\r\n \"hour\": \"hourlyYAxis\"\r\n };\r\n\r\n let yAxisRange = this.serverParameterGraphConfiguration[partitionerKeyToYAxisRangeMap[this.aggregateDataSetView.partitionerKey]];\r\n \r\n const ticks = this.graphConfig.options.scales.yAxes[0].ticks;\r\n if (\"originalMin\" in ticks) {\r\n delete ticks.originalMin;\r\n }\r\n if (\"originalMax\" in ticks) {\r\n delete ticks.originalMax;\r\n }\r\n\r\n if (yAxisRange) {\r\n $.extend(ticks, {\r\n min: yAxisRange.min,\r\n max: yAxisRange.max\r\n });\r\n\r\n this.yAxisRangeChanged.invokeListeners([yAxisRange], this);\r\n }\r\n }\r\n}\r\n \r\nexport default PerPartitionSizeYAxisRangeStrategy;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nclass FixedYAxisRangeStrategy {\r\n constructor(graphConfig, serverParameterGraphConfiguration) {\r\n this.graphConfig = graphConfig;\r\n this.serverParameterGraphConfiguration = serverParameterGraphConfiguration;\r\n this.yAxisRangeChanged = EventDispatcher.noop; // Fixed = never changes\r\n }\r\n\r\n apply() {\r\n $.extend(this.graphConfig.options.scales.yAxes[0].ticks, {\r\n min: this.serverParameterGraphConfiguration.yAxis.min,\r\n max: this.serverParameterGraphConfiguration.yAxis.max\r\n });\r\n }\r\n}\r\n\r\nexport default FixedYAxisRangeStrategy;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nimport Range from \"NRW/Util/Range\";\r\nimport moment from \"moment\";\r\n\r\nclass PerPartitionSizeXAxisRangeStrategy {\r\n constructor(graphConfig, aggregateDataSetView, serverParameterGraphConfiguration) {\r\n this.aggregateDataSetView = aggregateDataSetView;\r\n this.serverParameterGraphConfiguration = serverParameterGraphConfiguration;\r\n this.graphConfig = graphConfig;\r\n this.xAxisRangeChanged = new EventDispatcher;\r\n\r\n this.aggregateDataSetView.partitionerChanged.addListener(() => {\r\n this.apply();\r\n });\r\n\r\n let xScaleOptions = this.graphConfig.findScaleByIndex(\"x\", 0);\r\n xScaleOptions.afterBuildTicks = function (scale) {\r\n scale.ticks = scale.chart.data.labels.filter(a => a >= scale.min && a <= scale.max).map(a => +a);\r\n }\r\n\r\n // Need a self-executing function here to keep \"this\" (GraphConfigurationBase)\r\n // and the \"this\" passed to the callback (the scale)\r\n xScaleOptions.ticks.callback = (function (_this) {\r\n return function (value, index, values) {\r\n if (!values || values.length === 0) {\r\n return [\" 00/00/0000 \"]; // Representation label for chartjs to determine size of labels\r\n }\r\n\r\n let scale = this;\r\n let category = this.chart.data.categories[value];\r\n\r\n let momentifiedDate = moment(category.range.start);\r\n\r\n if ([0, 3, 6, 9, 12, 15, 18, 21].indexOf(momentifiedDate.hour()) === -1) {\r\n return [];\r\n }\r\n \r\n if (_this.aggregateDataSetView.partitionerKey === \"hour\") {\r\n return [momentifiedDate.format(_this.graphConfig.shortTimeFormat), momentifiedDate.format(\"DD/MM/YY\")]\r\n } else if (_this.aggregateDataSetView.partitionerKey === \"month\") {\r\n return [momentifiedDate.format(\"MMM\"), momentifiedDate.format(\"YYYY\")]\r\n } else if (_this.aggregateDataSetView.partitionerKey === \"week\") {\r\n return [`${momentifiedDate.date()}–${moment(category.range.end).subtract(1, 'day').date()}`, momentifiedDate.format(\"MMM YY\")]\r\n } else if (_this.aggregateDataSetView.partitionerKey === \"day\") {\r\n return [momentifiedDate.date(), momentifiedDate.format(\"MMM YY\")]\r\n }\r\n }\r\n })(this);\r\n }\r\n\r\n apply() {\r\n // Get the underlying dataSetView range, which wholly includes the first partition\r\n let configMin = this.serverParameterGraphConfiguration.xAxis.min;\r\n let partitioner = this.aggregateDataSetView.getPartitioner();\r\n\r\n let newMin = 1;\r\n if (configMin) {\r\n if (this.aggregateDataSetView.partitioner) {\r\n newMin = Math.min(partitioner.getPartitionRange(configMin).start, configMin);\r\n } else {\r\n newMin = configMin;\r\n }\r\n }\r\n\r\n $.extend(this.graphConfig.options.pan.rangeMin, {\r\n x: newMin\r\n });\r\n\r\n $.extend(this.graphConfig.options.pan.rangeMax, {\r\n x: () => {\r\n let fourHoursFromNow = new Date();\r\n fourHoursFromNow.setTime(fourHoursFromNow.getTime() + (4 * 60 * 60 * 1000));\r\n return +(partitioner ? partitioner.getPartitionRange(fourHoursFromNow).end : fourHoursFromNow);\r\n }\r\n });\r\n\r\n this.xAxisRangeChanged.invokeListeners([], this);\r\n }\r\n}\r\n \r\nexport default PerPartitionSizeXAxisRangeStrategy;","import { EventDispatcher } from \"@nrw.core/styles\";\r\nclass FixedYAxisRangeStrategy {\r\n constructor(graphConfig, serverParameterGraphConfiguration) {\r\n this.graphConfig = graphConfig;\r\n this.serverParameterGraphConfiguration = serverParameterGraphConfiguration;\r\n this.xAxisRangeChanged = new EventDispatcher;\r\n }\r\n \r\n apply() {\r\n $.extend(this.graphConfig.options.pan.rangeMin, {\r\n x: this.serverParameterGraphConfiguration.xAxis.min || 1\r\n });\r\n }\r\n}\r\n\r\nexport default FixedYAxisRangeStrategy;","class ServerParameterGraphConfigurationMapper {\r\n map(serverParameterGraphConfiguration) {\r\n if (typeof serverParameterGraphConfiguration.xAxis.min === \"string\") {\r\n serverParameterGraphConfiguration.xAxis.min = new Date(serverParameterGraphConfiguration.xAxis.min).valueOf();\r\n }\r\n \r\n return serverParameterGraphConfiguration;\r\n }\r\n}\r\nexport default new ServerParameterGraphConfigurationMapper();\r\n","import TooltipConfigurationBase from \"./TooltipConfigurationBase\";\r\nimport moment from \"moment\";\r\nclass ParameterTooltipConfiguration extends TooltipConfigurationBase {\r\n constructor(parameter, graphConfig) {\r\n super();\r\n\r\n this.parameter = parameter;\r\n Object.defineProperties(this, {\r\n graphConfig: {\r\n enumerable: false,\r\n get: function () {\r\n return graphConfig\r\n }\r\n }\r\n });\r\n\r\n $.extend(true, this, {\r\n intersect: false,\r\n axis: 'x',\r\n mode: \"nearest-within-chart-area\",\r\n \r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n let value = Math.round((+tooltipItem.yLabel) * 1000) / 1000;\r\n\r\n return \"\" + value + \" \" + this.parameter.unit;\r\n },\r\n title: (tooltipItem, data) => {\r\n return moment(+(tooltipItem[0].xLabel)).format(this.graphConfig.dateFormat);\r\n }\r\n }\r\n });\r\n\r\n this.applyTooltipOnRailsPositioning(\"nearest\");\r\n }\r\n}\r\n\r\nexport default ParameterTooltipConfiguration;","import ParameterTooltipConfiguration from \"./ParameterTooltipConfiguration\";\r\nimport moment from \"moment\";\r\n\r\nclass RainfallTooltipConfiguration extends ParameterTooltipConfiguration {\r\n constructor(parameter, graphConfig, aggregateDataSetView) {\r\n super(parameter, graphConfig);\r\n\r\n Object.defineProperties(this, {\r\n aggregateDataSetView: {\r\n enumerable: false,\r\n get: function () {\r\n return aggregateDataSetView\r\n }\r\n }\r\n })\r\n $.extend(true, this, {\r\n callbacks: {\r\n title: (function (_this) {\r\n return function (tooltipItem, data) {\r\n let title = \"\";\r\n let chunk = data.categories[data.labels[tooltipItem[0].index]];\r\n let start = moment(chunk.range.start);\r\n let end = moment(chunk.dataRange.end);\r\n\r\n switch (_this.aggregateDataSetView.partitionerKey) {\r\n\r\n case \"hour\":\r\n title = `${start.format(\"ddd Do MMM \" + _this.graphConfig.timeFormat)} - ${end.format(_this.graphConfig.timeFormat)}`;\r\n break;\r\n\r\n case \"day\":\r\n title = `${start.format(\"ddd Do MMM YYYY\")}`;\r\n break;\r\n\r\n case \"week\":\r\n //#region Fix for defect 26528\r\n end.add(-1, 'ms'); // fix 00:00:00 being the end time, causing week range to be Monday-Monday and not Monday-Sunday\r\n //#endregion\r\n if (start.isSame(end, \"month\")) {\r\n title = `${start.format(\"ddd Do\")} – ${end.format(\"Do\")} ${start.format(\"MMM YYYY\")}`;\r\n } else if (start.isSame(end, \"year\")) {\r\n title = `${start.format(\"ddd Do MMM\")} – ${end.format(\"Do MMM YYYY\")}`;\r\n } else {\r\n title = `${start.format(\"ddd Do MMM YYYY\")} – ${end.format(\"Do MMM YYYY\")}`;\r\n }\r\n break;\r\n\r\n case \"month\":\r\n title = `${start.format(\"MMMM YYYY\")}`;\r\n break;\r\n\r\n }\r\n return title;\r\n }\r\n })(this)\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default RainfallTooltipConfiguration;","import LevelGraphConfiguration from \"./Configuration/LevelGraphConfiguration\";\r\nimport RainfallGraphConfiguration from \"./Configuration/RainfallGraphConfiguration\";\r\nimport ParameterType from \"NRW/ParameterType\";\r\nimport ParameterDataSet from \"./Data/ParameterDataSet\";\r\nimport ParameterDataSetLoader from \"./Data/ParameterDataSetLoader\";\r\nimport ParameterDataService from \"./Data/ParameterDataService\";\r\nimport ParameterDataSetView from \"./Data/ParameterDataSetView\";\r\nimport ParameterLinearDataSetAdapter from \"./Data/ParameterLinearDataSetAdapter\";\r\nimport ParameterCategoryDataSetAdapter from \"./Data/ParameterCategoryDataSetAdapter\";\r\nimport RainfallAggregateDataSetView from \"./Data/RainfallAggregateDataSetView\";\r\nimport PerPartitionSizeYAxisRangeStrategy from \"./Configuration/PerPartitionSizeYAxisRangeStrategy\";\r\nimport FixedYAxisRangeStrategy from \"./Configuration/FixedYAxisRangeStrategy\";\r\nimport PerPartitionSizeXAxisRangeStrategy from \"./Configuration/PerPartitionSizeXAxisRangeStrategy\";\r\nimport FixedXAxisRangeStrategy from \"./Configuration/FixedXAxisRangeStrategy\";\r\nimport ServerParameterGraphConfigurationMapper from \"./Configuration/ServerParameterGraphConfigurationMapper\";\r\nimport RainfallTooltipConfiguration from \"./Configuration/RainfallTooltipConfiguration\";\r\nimport ParameterTooltipConfiguration from \"./Configuration/ParameterTooltipConfiguration\";\r\nclass StationParameterGraphServiceContainer {\r\n constructor(parameter) {\r\n this.parameter = parameter;\r\n\r\n this.configureServices();\r\n }\r\n\r\n configureServices() {\r\n this.parameter.graphConfiguration = ServerParameterGraphConfigurationMapper.map(this.parameter.graphConfiguration);\r\n\r\n this.dataService = new ParameterDataService();\r\n this.dataSet = new ParameterDataSet(this.parameter.id, this.dataService);\r\n this.dataSetView = this.underlyingDataSetView = new ParameterDataSetView(this.dataSet);\r\n this.dataSetLoader = new ParameterDataSetLoader(this.dataSet).listenForDataRangeRequestsFrom(this.dataSetView);\r\n\r\n switch (this.parameter.typeId) {\r\n case ParameterType.rainfall:\r\n this.graphConfig = new RainfallGraphConfiguration(this.parameter);\r\n this.dataSetAdapter = new ParameterCategoryDataSetAdapter();\r\n this.dataSetView = new RainfallAggregateDataSetView(this.dataSetView);\r\n this.yAxisRangeStrategy = new PerPartitionSizeYAxisRangeStrategy(this.graphConfig, this.dataSetView, this.parameter.graphConfiguration);\r\n this.xAxisRangeStrategy = new PerPartitionSizeXAxisRangeStrategy(this.graphConfig, this.dataSetView, this.parameter.graphConfiguration);\r\n this.graphConfig.options.tooltips = new RainfallTooltipConfiguration(this.parameter, this.graphConfig, this.dataSetView);\r\n\r\n break;\r\n default:\r\n this.graphConfig = new LevelGraphConfiguration(this.parameter);\r\n this.dataSetAdapter = new ParameterLinearDataSetAdapter();\r\n this.yAxisRangeStrategy = new FixedYAxisRangeStrategy(this.graphConfig, this.parameter.graphConfiguration);\r\n this.xAxisRangeStrategy = new FixedXAxisRangeStrategy(this.graphConfig, this.parameter.graphConfiguration);\r\n this.graphConfig.options.tooltips = new ParameterTooltipConfiguration(this.parameter, this.graphConfig);\r\n\r\n break;\r\n }\r\n\r\n this.xAxisRangeStrategy.apply();\r\n this.yAxisRangeStrategy.apply();\r\n\r\n this.graphConfig.data = this.dataSetAdapter.convert(null);\r\n }\r\n}\r\n\r\nexport default StationParameterGraphServiceContainer;","import IconResolver from \"NRW/IconResolver\";\r\nimport GraphConstants from \"./Graph/Configuration/GraphConstants\";\r\nimport moment from \"moment\";\r\nclass LatestReadingBarComponent {\r\n constructor(element, parameter) {\r\n this.$element = $(element);\r\n\r\n this.$statusImage = this.$element.find(\".latest-reading-bar__status-image img\");\r\n this.$readingValue = this.$element.find(\".latest-reading-bar__reading-value\");\r\n this.$readingDate = this.$element.find(\".latest-reading-bar__reading-date\");\r\n\r\n this.is24Hour = GraphConstants.DEFAULT_TIME_FORMAT_24_HOURS;\r\n\r\n this.update(parameter);\r\n }\r\n\r\n setTimeFormatTo24Hours(is24Hour) {\r\n this.is24Hour = is24Hour;\r\n this.updateDate(this.parameter);\r\n }\r\n \r\n getDateTimeFormat() {\r\n if (this.is24Hour) {\r\n return GraphConstants.DATE_FORMAT + \" \" + GraphConstants.TIME_FORMAT_24_HOURS;\r\n } else {\r\n return GraphConstants.DATE_FORMAT + \" \" + GraphConstants.TIME_FORMAT_12_HOURS;\r\n }\r\n }\r\n\r\n update(parameter) {\r\n var icon = IconResolver.getParameterStatusIcon(parameter, \"white\");\r\n this.$statusImage\r\n .attr(\"src\", icon.src)\r\n .attr(\"alt\", icon.alt)\r\n .attr(\"title\", icon.alt);\r\n this.$readingValue.text(\"\" + parameter.latestValue + parameter.unit);\r\n\r\n this.updateDate(parameter);\r\n\r\n this.parameter = parameter;\r\n }\r\n\r\n updateDate(parameter) {\r\n this.$readingDate.text(moment(parameter.latestTime).format(this.getDateTimeFormat()));\r\n }\r\n}\r\n\r\nexport default LatestReadingBarComponent;","import StationParameterGraphComponent from \"./Graph/StationParameterGraphComponent\";\r\nimport GraphOptionsComponent from \"./Graph/GraphOptionsComponent\";\r\nimport GraphOptionsEvents from \"./Graph/GraphOptionsEvents\";\r\nimport AnnotationKeyComponent from \"./Graph/Annotations/AnnotationKeyComponent\";\r\nimport DateRangeSelectorComponent from \"./Graph/DateRangeSelectorComponent\";\r\nimport LongTermComparisonModal from \"./Graph/Rainfall/LongTermComparisonModal\";\r\nimport LongTermComparisonComponent from \"./Graph/Rainfall/LongTermComparisonComponent\";\r\nimport StationParameterGraphServiceContainer from \"./Graph/StationParameterGraphServiceContainer\";\r\nimport ParameterDataSetView from \"./Graph/Data/ParameterDataSetView\";\r\nimport ModalHelper from \"Helpers/ModalHelper\";\r\nimport Range from \"NRW/Util/Range\";\r\nimport LatestReadingBarComponent from \"./LatestReadingBarComponent\";\r\nimport Orientation from \"NRW/Util/Orientation\";\r\nimport { Breakpoint } from \"@nrw.core/styles\";\r\nimport SeparateScaleLabelComponent from \"./Graph/SeparateScaleLabelComponent\";\r\nimport GraphKeyComponent from \"./Graph/Key/GraphKeyComponent\";\r\nclass StationParameterComponent {\r\n constructor(element, station, parameter) {\r\n this.element = element;\r\n this.station = station;\r\n this.parameter = parameter;\r\n\r\n this.latestReadingBarComponent = new LatestReadingBarComponent(this.element.querySelector(\".latest-reading-bar\"), parameter);\r\n\r\n this.graphOptions = this.buildGraphOptionsComponent();\r\n this.annotationKey = this.buildAnnotationKeyComponent();\r\n this.graphKey = this.buildGraphKeyComponent();\r\n this.rangeSelectorComponent = new DateRangeSelectorComponent(this.element.querySelector(\".graph-filters__filter-controls\"));\r\n this.graphServices = new StationParameterGraphServiceContainer(this.parameter);\r\n\r\n this.graphServices.graphConfig.updateResponsiveProperties(Breakpoint.getCurrentBreakpoint(), Orientation.getCurrentOrientation());\r\n this.graphServices.graphConfig\r\n .listenForBreakpointChangesFrom(Breakpoint)\r\n .listenForOrientationChangesFrom(Orientation);\r\n\r\n this.graph = this.buildStationParameterGraphComponent();\r\n this.buildScaleLabelComponent();\r\n\r\n this.longTermComparisonComponent = null;\r\n this.longTermComparisonModal = null;\r\n this.registerLongTermComparisonClickHandler();\r\n\r\n this.graphServices.graphConfig.onConfigChanged.addListener((neededChanges) => {\r\n if (neededChanges.resize) {\r\n this.graph.resizeGraph();\r\n } else {\r\n this.graph.updateGraph();\r\n }\r\n });\r\n\r\n this.graphOptions.onChange.addListener(event => {\r\n if (GraphOptionsEvents.isTimeFormat(event)) {\r\n this.latestReadingBarComponent.setTimeFormatTo24Hours(event.value);\r\n }\r\n });\r\n\r\n $(this.element).on(\"click\", \".export-data-modal\", function (e) {\r\n e.stopPropagation();\r\n });\r\n }\r\n\r\n buildScaleLabelComponent() {\r\n let scaleLabelDiv = this.element.querySelector(\".scale-label\");\r\n this.separateScaleLabelComponent = new SeparateScaleLabelComponent(this.graphServices.graphConfig, scaleLabelDiv);\r\n\r\n Breakpoint.onChange.addListener((breakpoint) => {\r\n this.separateScaleLabelComponent.showScaleLabelSeparately(breakpoint === Breakpoint.mobile);\r\n });\r\n this.separateScaleLabelComponent.onGraphConfigUpdated.addListener(() => {\r\n this.graph.updateGraph();\r\n });\r\n\r\n this.separateScaleLabelComponent.showScaleLabelSeparately(Breakpoint.getCurrentBreakpoint() === Breakpoint.mobile); \r\n\r\n }\r\n\r\n registerLongTermComparisonClickHandler() {\r\n let _this = this;\r\n\r\n $(this.element).on(\"click\", \".button--long-term-comparison\", function (e) {\r\n _this.showLongTermComparisonModal();\r\n return false;\r\n })\r\n }\r\n\r\n useExportDataModal(exportDataModal) {\r\n this.exportDataModal = exportDataModal;\r\n\r\n let _this = this;\r\n\r\n $(this.element).on(\"click\", \".button--export-data\", function (e) {\r\n e.preventDefault();\r\n\r\n let minLimit = _this.parameter.graphConfiguration.xAxis.min;\r\n\r\n var range = _this.graph.getGraphRange();\r\n \r\n //#region Fix for defect #26290\r\n range.end = new Date(range.end);\r\n if (range.end.getHours() === 0 && range.end.getMinutes() === 0 && range.end.getSeconds() === 0 && range.end.getMilliseconds() === 0) {\r\n range.end.setDate(range.end.getDate() - 1); // Round down to the previous day if 00:00:00\r\n }\r\n //#endregion\r\n\r\n _this.exportDataModal\r\n .useParameterId(_this.parameter.id)\r\n .useLocation(_this.station.id)\r\n .useDateRange(range)\r\n .useDateRangeLimit(new Range(minLimit, new Date()))\r\n .open();\r\n });\r\n\r\n\r\n return this;\r\n }\r\n\r\n updateGraphsWhen(updateTriggerEventSource) {\r\n updateTriggerEventSource.addListener(() => {\r\n this.graphServices.dataSet.updateAllLoadedChunks();\r\n });\r\n\r\n return this;\r\n }\r\n\r\n receiveStationUpdatesFrom(stationUpdateEventSource) {\r\n stationUpdateEventSource.addListener((station) => {\r\n // Update latest reading bar if parameter exists\r\n let parameter = station.parameters.filter(p => p.id === this.parameter.id)[0];\r\n\r\n if (parameter) {\r\n this.latestReadingBarComponent.update(parameter);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n\r\n showLongTermComparisonModal() {\r\n if (this.longTermComparisonModal === null) {\r\n this.longTermDataSetView = new ParameterDataSetView(this.graphServices.dataSet);\r\n this.graphServices.dataSetLoader.listenForDataRangeRequestsFrom(this.longTermDataSetView);\r\n\r\n this.longTermComparisonComponent = new LongTermComparisonComponent(\r\n this.station,\r\n this.parameter,\r\n this.graphServices.dataSet,\r\n this.longTermDataSetView);\r\n\r\n this.longTermComparisonModal = new LongTermComparisonModal(this.longTermComparisonComponent);\r\n }\r\n\r\n this.longTermComparisonModal.open();\r\n }\r\n\r\n buildStationParameterGraphComponent() {\r\n let canvas = this.element.querySelector(\"canvas.station-parameter-component__graph\");\r\n let loadingModal = this.element.querySelector(\".station-parameter-component__loading-modal-container .graph-loading-modal\");\r\n return new StationParameterGraphComponent(canvas, this.station, this.parameter, this.graphOptions, this.annotationKey, this.rangeSelectorComponent, loadingModal, this.graphServices, this.graphKey);\r\n }\r\n\r\n buildGraphOptionsComponent() {\r\n let elements = this.element.querySelectorAll(\".graph-options\");\r\n let components = [];\r\n for (let i = 0; i < elements.length; i++) {\r\n let component = new GraphOptionsComponent(elements[i]);\r\n components.push(component);\r\n }\r\n return GraphOptionsComponent.syncAll(components);\r\n }\r\n\r\n buildAnnotationKeyComponent() {\r\n let element = this.element.querySelector(\".station-parameter-component__threshold-keys\");\r\n let component = new AnnotationKeyComponent(element);\r\n return component;\r\n }\r\n\r\n buildAnnotationKeyComponent() {\r\n let element = this.element.querySelector(\".station-parameter-component__threshold-keys\");\r\n let component = new AnnotationKeyComponent(element);\r\n return component;\r\n }\r\n\r\n buildGraphKeyComponent() {\r\n let element = this.element.querySelector(\".graph-key\");\r\n let component = new GraphKeyComponent().addClass(\"station-parameter-component__graph-keys\");\r\n\r\n $(element).replaceWith(component.render());\r\n\r\n return component;\r\n }\r\n}\r\n\r\nexport default StationParameterComponent;","import TabController from \"../../TabController\";\r\nimport ViewType from \"./ViewType\";\r\nimport ParameterViewType from \"./ParameterViewType\";\r\nimport ParameterType from \"NRW/ParameterType\";\r\n\r\nconst viewTypes = Object.freeze((function () {\r\n // These are fixed view types\r\n const viewTypes = {\r\n details: new ViewType(\"details\"),\r\n navigator: new ViewType(\"navigator\")\r\n };\r\n\r\n // These are parameter view types\r\n let parameterTypeNames = Object.keys(ParameterType);\r\n for (let i = 0; i < parameterTypeNames.length; i++) {\r\n let parameterTypeName = parameterTypeNames[i];\r\n let parameterTypeValue = ParameterType[parameterTypeName];\r\n\r\n let viewType = new ParameterViewType(parameterTypeValue);\r\n viewTypes[viewType.key] = viewType;\r\n }\r\n\r\n return viewTypes;\r\n})());\r\n\r\nclass ViewController {\r\n get viewTypes() {\r\n return viewTypes;\r\n }\r\n\r\n constructor() {\r\n this.tabController = new TabController($(\".station-graph__tabs\"));\r\n this.$viewContainer = $(\".station-graph__view-container\");\r\n\r\n this._onViewChangedListeners = [];\r\n\r\n //get tabs\r\n this.tabController.addActiveTabChangeListener((oldTab, newTab) => {\r\n this.goToView(viewTypes[newTab.tabId]);\r\n return true;\r\n });\r\n \r\n this._currentViewType = null;\r\n }\r\n\r\n get currentViewType() {\r\n return this._currentViewType;\r\n }\r\n\r\n goToView(newViewType) {\r\n let previousViewType = this._currentViewType;\r\n if (newViewType === previousViewType) {\r\n return;\r\n }\r\n\r\n let $contentsOfTabs = $(\"[data-tab-content-id]\").toggleClass(\"station-graph__form-view--show\", false);\r\n\r\n let $newActiveTabContent = $contentsOfTabs.filter((i, tab) => $(tab).data(\"tabContentId\") === newViewType.key);\r\n if ($newActiveTabContent.length === 0) {\r\n this.goToView(viewTypes.details);\r\n return;\r\n }\r\n $newActiveTabContent.toggleClass(\"station-graph__form-view--show\", true);\r\n\r\n this.tabController.setActiveTab(this.getTabForViewType(newViewType), false);\r\n\r\n this._currentViewType = newViewType;\r\n\r\n this.invokeViewChangedListeners(newViewType, $newActiveTabContent.get(0));\r\n }\r\n\r\n getTabForViewType(viewType) {\r\n let tabs = this.tabController.tabs.filter(tab => tab.tabId === viewType.key);\r\n\r\n if (tabs.length === 0) {\r\n return null;\r\n }\r\n\r\n return tabs[0];\r\n }\r\n\r\n addViewChangedListener(callback, callImmediately) {\r\n if (this._onViewChangedListeners.indexOf(callback) === -1) {\r\n this._onViewChangedListeners.push(callback);\r\n }\r\n\r\n if (callImmediately) {\r\n callback.bind(this)(this._currentViewType);\r\n }\r\n }\r\n\r\n invokeViewChangedListeners(viewType, viewContentDiv) {\r\n for (let i = 0, x = this._onViewChangedListeners.length; i < x; i++) {\r\n this._onViewChangedListeners[i].bind(this)(viewType, viewContentDiv);\r\n }\r\n }\r\n}\r\n\r\nexport default ViewController;","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.github.io/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 assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","/**\n * SSR Window 1.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2018, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: July 18, 2018\n */\nvar doc = (typeof document === 'undefined') ? {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: '',\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {},\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n },\n };\n },\n location: { hash: '' },\n} : document; // eslint-disable-line\n\nvar win = (typeof window === 'undefined') ? {\n document: doc,\n navigator: {\n userAgent: '',\n },\n location: {},\n history: {},\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n },\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n} : window; // eslint-disable-line\n\nexport { win as window, doc as document };\n","/**\n * Dom7 2.1.3\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2019, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: February 11, 2019\n */\nimport { document, window } from 'ssr-window';\n\nclass Dom7 {\n constructor(arr) {\n const self = this;\n // Create array-like object\n for (let i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n}\n\nfunction $(selector, context) {\n const arr = [];\n let i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n let els;\n let tempParent;\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf('<li') === 0) toCreate = 'ul';\n if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n if (html.indexOf('<tbody') === 0) toCreate = 'table';\n if (html.indexOf('<option') === 0) toCreate = 'select';\n tempParent = document.createElement(toCreate);\n tempParent.innerHTML = html;\n for (i = 0; i < tempParent.childNodes.length; i += 1) {\n arr.push(tempParent.childNodes[i]);\n }\n } else {\n if (!context && selector[0] === '#' && !selector.match(/[ .<>:~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || document).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) arr.push(els[i]);\n }\n }\n } else if (selector.nodeType || selector === window || selector === document) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\n\nfunction unique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\n\nfunction requestAnimationFrame(callback) {\n if (window.requestAnimationFrame) return window.requestAnimationFrame(callback);\n else if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(callback);\n return window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n if (window.cancelAnimationFrame) return window.cancelAnimationFrame(id);\n else if (window.webkitCancelAnimationFrame) return window.webkitCancelAnimationFrame(id);\n return window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n }\n }\n return this;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n }\n\n // Set attrs\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n // eslint-disable-next-line\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n}\nfunction data(key, value) {\n let el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n if (el.dataset) {\n // eslint-disable-next-line\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n // eslint-disable-next-line\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n // eslint-disable-next-line\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;\n else if (dataset[key] === 'true') dataset[key] = true;\n else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n const dom = this;\n if (typeof value === 'undefined') {\n if (dom[0]) {\n if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\n values.push(dom[0].selectedOptions[i].value);\n }\n return values;\n }\n return dom[0].value;\n }\n return undefined;\n }\n\n for (let i = 0; i < dom.length; i += 1) {\n const el = dom[i];\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n return dom;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = `${duration}ms`; // eslint-disable-line\n }\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);\n else {\n const parents = $(target).parents(); // eslint-disable-line\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n}\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger(...args) {\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let evt;\n try {\n evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const events = ['webkitTransitionEnd', 'transitionend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction animationEnd(callback) {\n const events = ['webkitAnimationEnd', 'animationend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\n// Sizing/Styles\nfunction width() {\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n let i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (let prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n const arr = [];\n for (let i = 0; i < this.length; i += 1) {\n arr.push(this[i]);\n }\n return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction forEach(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], this[i], i) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction filter(callback) {\n const matchedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n }\n return new Dom7(matchedItems);\n}\nfunction map(callback) {\n const modifiedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n modifiedItems.push(callback.call(dom[i], i, dom[i]));\n }\n return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n } else if (selector === document) return el === document;\n else if (selector === window) return el === window;\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction indexOf(el) {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i] === el) return i;\n }\n return -1;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n let returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append(...args) {\n let newChild;\n\n for (let k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n// eslint-disable-next-line\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n const after = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].childNodes;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n}\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add(...args) {\n const dom = this;\n let i;\n let j;\n for (i = 0; i < args.length; i += 1) {\n const toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n el.textContent = '';\n }\n }\n return this;\n}\n\nfunction scrollTo(...args) {\n let [left, top, duration, easing, callback] = args;\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n if (typeof easing === 'undefined') easing = 'swing';\n\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n let scrollLeft; // eslint-disable-line\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2));\n let done;\n if (animateTop) scrollTop = currentTop + (easeProgress * (newTop - currentTop));\n if (animateLeft) scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft));\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n requestAnimationFrame(render);\n }\n requestAnimationFrame(render);\n });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing', // or 'linear'\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - (Math.cos(progress * Math.PI) / 2);\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = [];\n\n // Define & Cache Initials & Units\n a.elements.each((index, el) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n\n elements[index] = {\n container: el,\n };\n Object.keys(props).forEach((prop) => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue,\n };\n });\n });\n\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress;\n // let el;\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\n }\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), ((startTime + params.duration) - time < 0 ? 0 : (startTime + params.duration) - time), startTime);\n }\n\n elements.forEach((element) => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach((prop) => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const { initialValue, finalValue, unit } = el[prop];\n el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue));\n const currentValue = el[prop].currentValue;\n\n if (\n (finalValue > initialValue && currentValue >= finalValue) ||\n (finalValue < initialValue && currentValue <= finalValue)) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return;\n // Then call\n a.frameId = requestAnimationFrame(render);\n }\n a.frameId = requestAnimationFrame(render);\n return a;\n },\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = ('resize scroll').split(' ');\nfunction eventShortcut(name, ...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();\n else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n}\n\nfunction click(...args) {\n return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur(...args) {\n return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus(...args) {\n return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin(...args) {\n return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout(...args) {\n return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup(...args) {\n return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown(...args) {\n return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress(...args) {\n return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit(...args) {\n return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change(...args) {\n return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown(...args) {\n return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove(...args) {\n return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup(...args) {\n return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter(...args) {\n return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave(...args) {\n return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout(...args) {\n return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover(...args) {\n return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart(...args) {\n return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend(...args) {\n return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove(...args) {\n return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize(...args) {\n return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll(...args) {\n return eventShortcut.bind(this)('scroll', ...args);\n}\n\nexport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, prop, data, removeData, dataset, val, transform, transition, on, off, once, trigger, transitionEnd, animationEnd, width, outerWidth, height, outerHeight, offset, hide, show, styles, css, toArray, each, forEach, filter, map, html, text, is, indexOf, index, eq, append, appendTo, prepend, prependTo, insertBefore, insertAfter, next, nextAll, prev, prevAll, siblings, parent, parents, closest, find, children, remove, detach, add, empty, scrollTo, scrollTop, scrollLeft, animate, stop, click, blur, focus, focusin, focusout, keyup, keydown, keypress, submit, change, mousedown, mousemove, mouseup, mouseenter, mouseleave, mouseout, mouseover, touchstart, touchend, touchmove, resize, scroll };\n","/**\n * Swiper 4.5.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://www.idangero.us/swiper/\n *\n * Copyright 2014-2019 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: September 13, 2019\n */\n\nimport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, data, transform, transition as transition$1, on, off, trigger, transitionEnd as transitionEnd$1, outerWidth, outerHeight, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, remove, add, styles } from 'dom7/dist/dom7.modular';\nimport { window, document } from 'ssr-window';\n\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n data,\n transform,\n transition: transition$1,\n on,\n off,\n trigger,\n transitionEnd: transitionEnd$1,\n outerWidth,\n outerHeight,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n remove,\n add,\n styles,\n};\n\nObject.keys(Methods).forEach((methodName) => {\n $.fn[methodName] = $.fn[methodName] || Methods[methodName];\n});\n\nconst Utils = {\n deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n },\n now() {\n return Date.now();\n },\n getTranslate(el, axis = 'x') {\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map((a) => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n parseUrlQuery(url) {\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter((paramsPart) => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend(...args) {\n const to = Object(args[0]);\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n};\n\nconst Support = (function Support() {\n const testDiv = document.createElement('div');\n return {\n touch: (window.Modernizr && window.Modernizr.touch === true) || (function checkTouch() {\n return !!((window.navigator.maxTouchPoints > 0) || ('ontouchstart' in window) || (window.DocumentTouch && document instanceof window.DocumentTouch));\n }()),\n\n pointerEvents: !!(window.navigator.pointerEnabled || window.PointerEvent || ('maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints > 0)),\n prefixedPointerEvents: !!window.navigator.msPointerEnabled,\n\n transition: (function checkTransition() {\n const style = testDiv.style;\n return ('transition' in style || 'webkitTransition' in style || 'MozTransition' in style);\n }()),\n transforms3d: (window.Modernizr && window.Modernizr.csstransforms3d === true) || (function checkTransforms3d() {\n const style = testDiv.style;\n return ('webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style);\n }()),\n\n flexbox: (function checkFlexbox() {\n const style = testDiv.style;\n const styles = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');\n for (let i = 0; i < styles.length; i += 1) {\n if (styles[i] in style) return true;\n }\n return false;\n }()),\n\n observer: (function checkObserver() {\n return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in window;\n }()),\n };\n}());\n\nconst Browser = (function Browser() {\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isIE: !!window.navigator.userAgent.match(/Trident/g) || !!window.navigator.userAgent.match(/MSIE/g),\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n };\n}());\n\nclass SwiperClass {\n constructor(params = {}) {\n const self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n handler.apply(self, args);\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`);\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach((m) => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nfunction updateSize () {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\n\nfunction updateSlides () {\n const swiper = this;\n const params = swiper.params;\n\n const {\n $wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.snapGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({ marginLeft: '', marginTop: '' });\n else slides.css({ marginRight: '', marginBottom: '' });\n\n let slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (\n (params.slidesPerColumnFill === 'column')\n || (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1)\n ) {\n if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n const groupIndex = Math.floor(i / params.slidesPerGroup);\n row = Math.floor(i / params.slidesPerView) - groupIndex * params.slidesPerColumn;\n column = i - row * params.slidesPerView - groupIndex * params.slidesPerView;\n }\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide\n .css(\n `margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\n (row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`)\n )\n .attr('data-swiper-column', column)\n .attr('data-swiper-row', row);\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n const slideStyles = window.getComputedStyle(slide[0], null);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide.outerWidth(true)\n : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n const width = parseFloat(slideStyles.getPropertyValue('width'));\n const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box' && !Browser.isIE) {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n const height = parseFloat(slideStyles.getPropertyValue('height'));\n const paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n const paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n const marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n const marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box' && !Browser.isIE) {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = `${slideSize}px`;\n } else {\n slides[i].style.height = `${slideSize}px`;\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (i === 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index) % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index) % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n if (!Support.flexbox || params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.css({ marginLeft: `${spaceBetween}px` });\n else slides.css({ marginRight: `${spaceBetween}px` });\n } else slides.css({ marginBottom: `${spaceBetween}px` });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Utils.extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n\nfunction updateAutoHeight (speed) {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\n\nfunction updateSlidesOffset () {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n\nfunction updateSlidesProgress (translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtlTranslate: rtl } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress = (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)\n || (slideAfter > 1 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\n\nfunction updateProgress (translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress,\n isBeginning,\n isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses () {\n const swiper = this;\n\n const {\n slides, params, $wrapperEl, activeIndex, realIndex,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n}\n\nfunction updateActiveIndex (newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n snapIndex = Math.floor(activeIndex / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide (e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide,\n};\n\nfunction getTranslate (axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const {\n params, rtlTranslate: rtl, translate, $wrapperEl,\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n}\n\nfunction setTranslate (translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl, params, $wrapperEl, progress,\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (!params.virtualTranslate) {\n if (Support.transforms3d) $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n else $wrapperEl.transform(`translate(${x}px, ${y}px)`);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate () {\n return (-this.snapGrid[0]);\n}\n\nfunction maxTranslate () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n}\n\nvar translate = {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n};\n\nfunction setTransition (duration, byController) {\n const swiper = this;\n\n swiper.$wrapperEl.transition(duration);\n\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionStart (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, params, previousIndex } = swiper;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n\nfunction transitionEnd (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, previousIndex } = swiper;\n swiper.animating = false;\n swiper.setTransition(0);\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd,\n};\n\nfunction slideTo (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params, snapGrid, slidesGrid, previousIndex, activeIndex, rtlTranslate: rtl,\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n let snapIndex = Math.floor(slideIndex / params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n\n if (speed === 0 || !Support.transition) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nfunction slideToLoop (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params, animating, snapGrid, slidesGrid, rtlTranslate,\n } = swiper;\n\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n const normalizedSlidesGrid = slidesGrid.map((val) => normalize(val));\n\n const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n const prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n let prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let index = swiper.activeIndex;\n const snapIndex = Math.floor(index / swiper.params.slidesPerGroup);\n\n if (snapIndex < swiper.snapGrid.length - 1) {\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if ((translate - currentSnap) > (nextSnap - currentSnap) / 2) {\n index = swiper.params.slidesPerGroup;\n }\n }\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide,\n};\n\nfunction loopCreate () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\n swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10);\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((index, el) => {\n const slide = $(el);\n if (index < swiper.loopedSlides) appendSlides.push(el);\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n\nfunction loopFix () {\n const swiper = this;\n const {\n params, activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtlTranslate: rtl,\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex >= slides.length - loopedSlides)) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n}\n\nfunction loopDestroy () {\n const swiper = this;\n const { $wrapperEl, params, slides } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy,\n};\n\nfunction setGrabCursor (moving) {\n const swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked)) return;\n const el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n\nfunction unsetGrabCursor () {\n const swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked)) return;\n swiper.el.style.cursor = '';\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor,\n};\n\nfunction appendSlide (slides) {\n const swiper = this;\n const { $wrapperEl, params } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n}\n\nfunction prependSlide (slides) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide (index, slides) {\n const swiper = this;\n const { $wrapperEl, params, activeIndex } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide (slidesIndexes) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides () {\n const swiper = this;\n\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nvar manipulation = {\n appendSlide,\n prependSlide,\n addSlide,\n removeSlide,\n removeAllSlides,\n};\n\nconst Device = (function Device() {\n const ua = window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n windows: false,\n iphone: false,\n ipod: false,\n ipad: false,\n cordova: window.cordova || window.phonegap,\n phonegap: window.cordova || window.phonegap,\n };\n\n const windows = ua.match(/(Windows Phone);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n const ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n\n\n // Windows\n if (windows) {\n device.os = 'windows';\n device.osVersion = windows[2];\n device.windows = true;\n }\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.iphone = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Desktop\n device.desktop = !(device.os || device.android || device.webView);\n\n // Webview\n device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);\n\n // Minimal UI\n if (device.os && device.os === 'ios') {\n const osVersionArr = device.osVersion.split('.');\n const metaViewport = document.querySelector('meta[name=\"viewport\"]');\n device.minimalUi = !device.webView\n && (ipod || iphone)\n && (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7)\n && metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0;\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Export object\n return device;\n}());\n\nfunction onTouchStart (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n if (params.noSwiping && $(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$(e).closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= window.screen.width - edgeSwipeThreshold))\n ) {\n return;\n }\n\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($(e.target).is(data.formElements)) preventDefault = false;\n if (\n document.activeElement\n && $(document.activeElement).is(data.formElements)\n && document.activeElement !== e.target\n ) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type === 'mousemove') return;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt((diffX ** 2) + (diffY ** 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n e.preventDefault();\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = (swiper.minTranslate() - 1) + ((-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = (swiper.maxTranslate() + 1) - ((swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger) return;\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n\n const {\n params, touches, rtlTranslate: rtl, $wrapperEl, slidesGrid, snapGrid,\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = Utils.now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) > 300) {\n if (data.clickTimeout) clearTimeout(data.clickTimeout);\n data.clickTimeout = Utils.nextTick(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.emit('click', e);\n }, 300);\n }\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n if (data.clickTimeout) clearTimeout(data.clickTimeout);\n swiper.emit('doubleTap', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n\n swiper.setTransition(params.speed);\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += params.slidesPerGroup) {\n if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) {\n stopIndex = i;\n groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + params.slidesPerGroup);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + params.slidesPerGroup);\n else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + params.slidesPerGroup);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize () {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n if (params.freeMode) {\n const newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick (e) {\n const swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction attachEvents() {\n const swiper = this;\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n {\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n const target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n const capture = !!params.nested;\n\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture);\n target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.addEventListener('click', swiper.onClick, true);\n }\n }\n\n // Resize handler\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n}\n\nfunction detachEvents() {\n const swiper = this;\n\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n const target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n const capture = !!params.nested;\n\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.removeEventListener('click', swiper.onClick, true);\n }\n }\n\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n}\n\nvar events = {\n attachEvents,\n detachEvents,\n};\n\nfunction setBreakpoint () {\n const swiper = this;\n const {\n activeIndex, initialized, loopedSlides = 0, params,\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n // Set breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup'].forEach((param) => {\n const paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n Utils.extend(swiper.params, breakpointParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}\n\nfunction getBreakpoint (breakpoints) {\n const swiper = this;\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n const points = [];\n Object.keys(breakpoints).forEach((point) => {\n points.push(point);\n });\n points.sort((a, b) => parseInt(a, 10) - parseInt(b, 10));\n for (let i = 0; i < points.length; i += 1) {\n const point = points[i];\n if (swiper.params.breakpointsInverse) {\n if (point <= window.innerWidth) {\n breakpoint = point;\n }\n } else if (point >= window.innerWidth && !breakpoint) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = { setBreakpoint, getBreakpoint };\n\nfunction addClasses () {\n const swiper = this;\n const {\n classNames, params, rtl, $el,\n } = swiper;\n const suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (!Support.flexbox) {\n suffixes.push('no-flexbox');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n // WP8 Touch Events Fix\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n suffixes.push(`wp8-${params.direction}`);\n }\n\n suffixes.forEach((suffix) => {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n}\n\nfunction removeClasses () {\n const swiper = this;\n const { $el, classNames } = swiper;\n\n $el.removeClass(classNames.join(' '));\n}\n\nvar classes = { addClasses, removeClasses };\n\nfunction loadImage (imageEl, src, srcset, sizes, checkForComplete, callback) {\n let image;\n function onReady() {\n if (callback) callback();\n }\n if (!imageEl.complete || !checkForComplete) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n\nfunction preloadImages () {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n}\n\nvar images = {\n loadImage,\n preloadImages,\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const wasLocked = swiper.isLocked;\n\n swiper.isLocked = swiper.snapGrid.length === 1;\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n swiper.navigation.update();\n }\n}\n\nvar checkOverflow$1 = { checkOverflow };\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n //\n preventInteractionOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsInverse: false,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n centeredSlides: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: true,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n\n // Callbacks\n runCallbacksOnInit: true,\n};\n\n/* eslint no-param-reassign: \"off\" */\n\nconst prototypes = {\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes,\n images,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper extends SwiperClass {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = Utils.extend({}, params);\n if (el && !params.el) params.el = el;\n\n super(params);\n\n Object.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n const swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach((moduleName) => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n const $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n const swipers = [];\n $el.each((index, containerEl) => {\n const newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n const $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n\n // Extend Swiper\n Utils.extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend'];\n let desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n } else if (Support.prefixedPointerEvents) {\n desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }()),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n slidesPerViewDynamic() {\n const swiper = this;\n const {\n params, slides, slidesGrid, size: swiperSize, activeIndex,\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\n return swiper;\n }\n\n swiper.$el\n .removeClass(`${swiper.params.containerModifierClass}${currentDirection} wp8-${currentDirection}`)\n .addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}wp8-${newDirection}`);\n }\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each((slideIndex, slideEl) => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n\n return swiper;\n }\n\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params, $el, $wrapperEl, slides,\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index')\n .removeAttr('data-swiper-column')\n .removeAttr('data-swiper-row');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n }\n\n static extendDefaults(newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static get Class() {\n return SwiperClass;\n }\n\n static get $() {\n return $;\n }\n}\n\nvar Device$1 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n};\n\nvar Support$1 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\n\nvar Browser$1 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n};\n\nvar Resize = {\n name: 'resize',\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n // Emit resize\n window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy() {\n const swiper = this;\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n\nconst Observer = {\n func: window.MutationObserver || window.WebkitMutationObserver,\n attach(target, options = {}) {\n const swiper = this;\n\n const ObserverFunc = Observer.func;\n const observer = new ObserverFunc((mutations) => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!Support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach((observer) => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nvar Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.observer.init();\n },\n destroy() {\n const swiper = this;\n swiper.observer.destroy();\n },\n },\n};\n\nconst Virtual = {\n update(force) {\n const swiper = this;\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n renderSlide,\n offset: previousOffset,\n } = swiper.virtual;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\n }\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n Utils.extend(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: (function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n appendIndexes.forEach((index) => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach((index) => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n },\n renderSlide(slide, index) {\n const swiper = this;\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n const $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index))\n : $(`<div class=\"${swiper.params.slideClass}\" data-swiper-slide-index=\"${index}\">${slide}</div>`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide(slides) {\n const swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n swiper.virtual.update(true);\n },\n prependSlide(slides) {\n const swiper = this;\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach((cachedIndex) => {\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cache[cachedIndex];\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide(slidesIndexes) {\n const swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides() {\n const swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n },\n};\n\nvar Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n removeSlide: Virtual.removeSlide.bind(swiper),\n removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n const overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n },\n },\n};\n\nconst Keyboard = {\n handle(event) {\n const swiper = this;\n const { rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && kc === 39) || (swiper.isVertical() && kc === 40) || kc === 34)) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && kc === 37) || (swiper.isVertical() && kc === 38) || kc === 33)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (kc === 33 || kc === 34 || kc === 37 || kc === 39 || kc === 38 || kc === 40)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\n ];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (\n point[0] >= 0 && point[0] <= windowWidth\n && point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (kc === 33 || kc === 34 || kc === 37 || kc === 39) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (((kc === 34 || kc === 39) && !rtl) || ((kc === 33 || kc === 37) && rtl)) swiper.slideNext();\n if (((kc === 33 || kc === 37) && !rtl) || ((kc === 34 || kc === 39) && rtl)) swiper.slidePrev();\n } else {\n if (kc === 33 || kc === 34 || kc === 38 || kc === 40) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (kc === 34 || kc === 40) swiper.slideNext();\n if (kc === 33 || kc === 38) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable() {\n const swiper = this;\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable() {\n const swiper = this;\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n};\n\nvar Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n};\n\nfunction isEventSupported() {\n const eventName = 'onwheel';\n let isSupported = eventName in document;\n\n if (!isSupported) {\n const element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported\n && document.implementation\n && document.implementation.hasFeature\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && document.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\nconst Mousewheel = {\n lastScrollTime: Utils.now(),\n event: (function getEvent() {\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n }()),\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter() {\n const swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave() {\n const swiper = this;\n swiper.mouseEntered = false;\n },\n handle(event) {\n let e = event;\n const swiper = this;\n const params = swiper.params.mousewheel;\n\n if (!swiper.mouseEntered && !params.releaseOnEdges) return true;\n\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n const data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = data.pixelX * rtlFactor;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = data.pixelY;\n else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n\n if (params.invert) delta = -delta;\n\n if (!swiper.params.freeMode) {\n if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) {\n if (delta < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) return true;\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) return true;\n }\n swiper.mousewheel.lastScrollTime = (new window.Date()).getTime();\n } else {\n // Freemode or scrollContainer:\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + (delta * params.sensitivity);\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n swiper.slideToClosest();\n }, 300);\n }\n // Emit event\n swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n },\n enable() {\n const swiper = this;\n if (!Mousewheel.event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n if (!Mousewheel.event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nvar Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n lastScrollTime: Utils.now(),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy() {\n const swiper = this;\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n },\n },\n};\n\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.nextEl === 'string'\n && $nextEl.length > 1\n && swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.prevEl === 'string'\n && $prevEl.length > 1\n && swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy() {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n};\n\nvar Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n fromEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n destroy() {\n const swiper = this;\n swiper.navigation.destroy();\n },\n click(e) {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if (\n swiper.params.navigation.hideOnClick\n && !$(e.target).is($prevEl)\n && !$(e.target).is($nextEl)\n ) {\n let isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n },\n },\n};\n\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\n }\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`);\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\n if ($el.length > 1) {\n bullets.each((index, bullet) => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\n $el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `<span class=\"${params.currentClass}\"></span>`\n + ' / '\n + `<span class=\"${params.totalClass}\"></span>`;\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (\n swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n && swiper.$el.find(params.el).length === 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', `.${params.bulletClass}`, function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el,\n el: $el[0],\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', `.${params.bulletClass}`);\n }\n },\n};\n\nvar Pagination$1 = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number) => number,\n formatFractionTotal: (number) => number,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy() {\n const swiper = this;\n swiper.pagination.destroy();\n },\n click(e) {\n const swiper = this;\n if (\n swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n const isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\n\nconst Scrollbar = {\n setTranslate() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtlTranslate: rtl, progress } = swiper;\n const {\n dragSize, trackSize, $dragEl, $el,\n } = scrollbar;\n const params = swiper.params.scrollbar;\n\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n if (Support.transforms3d) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n } else {\n $dragEl.transform(`translateX(${newPos}px)`);\n }\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n if (Support.transforms3d) {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n } else {\n $dragEl.transform(`translateY(${newPos}px)`);\n }\n $dragEl[0].style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n const { scrollbar } = swiper;\n const { $dragEl, $el } = scrollbar;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n const divider = swiper.size / swiper.virtualSize;\n const moveDivider = divider * (trackSize / swiper.size);\n let dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize,\n divider,\n moveDivider,\n dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition(e) {\n const swiper = this;\n if (swiper.isHorizontal()) {\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX);\n }\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY);\n },\n setDragPosition(e) {\n const swiper = this;\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const {\n $el,\n dragSize,\n trackSize,\n dragStartPos,\n } = scrollbar;\n\n let positionRatio;\n positionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top']\n - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl)\n ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove(e) {\n const swiper = this;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd(e) {\n const swiper = this;\n\n const params = swiper.params.scrollbar;\n const { scrollbar } = swiper;\n const { $el } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const { scrollbar, $el: $swiperEl } = swiper;\n const params = swiper.params.scrollbar;\n\n let $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n if ($dragEl.length === 0) {\n $dragEl = $(`<div class=\"${swiper.params.scrollbar.dragClass}\"></div>`);\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\n\nvar Scrollbar$1 = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n getPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate() {\n const swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n};\n\nconst Parallax = {\n setTransform(el, progress) {\n const swiper = this;\n const { rtl } = swiper;\n\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if ((x).indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if ((y).indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n },\n setTranslate() {\n const swiper = this;\n const {\n $el, slides, progress, snapGrid,\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each((slideIndex, slideEl) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition(duration = this.params.speed) {\n const swiper = this;\n const { $el } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, parallaxEl) => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n },\n};\n\nvar Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n },\n },\n};\n\nconst Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2));\n return distance;\n },\n // Events\n onGestureStart(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest('.swiper-slide');\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n gesture.$imageEl.transition(0);\n swiper.zoom.isScaling = true;\n },\n onGestureChange(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (((zoom.scale - gesture.maxRatio) + 1) ** 0.5);\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (((params.minRatio - zoom.scale) + 1) ** 0.5);\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n onGestureEnd(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (Device.android) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal()\n && (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } if (\n !swiper.isHorizontal()\n && (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n e.preventDefault();\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = (image.minX + 1) - (((image.minX - image.currentX) + 1) ** 0.8);\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (((image.currentX - image.maxX) + 1) ** 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (((image.minY - image.currentY) + 1) ** 0.8);\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (((image.currentY - image.maxY) + 1) ** 0.8);\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTouchEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTransitionEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in(e) {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture, image } = zoom;\n\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n out() {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture } = zoom;\n\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove);\n },\n disable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n\n swiper.zoom.enabled = false;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove);\n },\n};\n\nvar Zoom$1 = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create() {\n const swiper = this;\n const zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach((methodName) => {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom,\n });\n\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n const slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.zoom.disable();\n },\n touchStart(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap(e) {\n const swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n\nconst Lazy = {\n loadInSlide(index, loadInDuplicate = true) {\n const swiper = this;\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n const $slideEl = isVirtual\n ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`)\n : swiper.slides.eq(index);\n\n let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) return;\n\n $images.each((imageIndex, imageEl) => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return;\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load() {\n const swiper = this;\n const {\n $wrapperEl, params: swiperParams, slides, activeIndex,\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n\n let slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n return false;\n }\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n // Prev Slides\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n};\n\nvar Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll() {\n const swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n },\n};\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\nconst Controller = {\n LinearSpline: function LinearSpline(x, y) {\n const binarySearch = (function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction(c) {\n const swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate(setTranslate, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition(duration, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n Utils.nextTick(() => {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n};\nvar Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate(translate, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n },\n },\n};\n\nconst a11y = {\n makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey(e) {\n const swiper = this;\n const params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n const $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\n $targetEl[0].click();\n }\n },\n notify(message) {\n const swiper = this;\n const notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation() {\n const swiper = this;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n }\n }\n },\n updatePagination() {\n const swiper = this;\n const params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each((bulletIndex, bulletEl) => {\n const $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1));\n });\n }\n },\n init() {\n const swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n const params = swiper.params.a11y;\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n};\nvar A11y = {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $(`<span class=\"${swiper.params.a11y.notificationClass}\" aria-live=\"assertive\" aria-atomic=\"true\"></span>`),\n },\n });\n Object.keys(a11y).forEach((methodName) => {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n },\n },\n};\n\nconst History = {\n init() {\n const swiper = this;\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n const history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState() {\n const swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues() {\n const pathArray = window.location.pathname.slice(1).split('/').filter((part) => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return { key, value };\n },\n setHistory(key, index) {\n const swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n const slide = swiper.slides.eq(index);\n let value = History.slugify(slide.attr('data-history'));\n if (!window.location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({ value }, null, value);\n } else {\n window.history.pushState({ value }, null, value);\n }\n },\n slugify(text) {\n return text.toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide(speed, value, runCallbacks) {\n const swiper = this;\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n};\n\nvar History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n};\n\nconst HashNavigation = {\n onHashCange() {\n const swiper = this;\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash() {\n const swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, (`#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || ''));\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) return;\n swiper.hashNavigation.initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n};\nvar HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n};\n\n/* eslint no-underscore-dangle: \"off\" */\n\nconst Autoplay = {\n run() {\n const swiper = this;\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = Utils.nextTick(() => {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n }, delay);\n },\n start() {\n const swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop() {\n const swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause(speed) {\n const swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n};\n\nvar Autoplay$1 = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n }\n },\n beforeTransitionStart(speed, internal) {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove() {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n },\n },\n};\n\nconst Fade = {\n setTranslate() {\n const swiper = this;\n const { slides } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, $wrapperEl } = swiper;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n slides.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n },\n },\n};\n\nconst Cube = {\n setTranslate() {\n const swiper = this;\n const {\n $el, $wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtlTranslate: rtl, size: swiperSize,\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + (round * 4 * swiperSize);\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = (3 * swiperSize) + (swiperSize * 4 * round);\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) wrapperRotate = (-slideIndex * 90) - (progress * 90);\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}\"></div>`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}\"></div>`);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`,\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${(swiperWidth / 2) + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\n const multiplier = 1.5 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\n + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${(swiperHeight / 2) + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n const zFactor = (Browser.isSafari || Browser.isUiWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n },\n setTransition(duration) {\n const swiper = this;\n const { $el, slides } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n};\n\nvar EffectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n },\n },\n};\n\nconst Flip = {\n setTranslate() {\n const swiper = this;\n const { slides, rtlTranslate: rtl } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(`<div class=\"swiper-slide-shadow-${swiper.isHorizontal() ? 'left' : 'top'}\"></div>`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`<div class=\"swiper-slide-shadow-${swiper.isHorizontal() ? 'right' : 'bottom'}\"></div>`);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n $slideEl\n .transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, activeIndex, $wrapperEl } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n },\n },\n};\n\nconst Coverflow = {\n setTranslate() {\n const swiper = this;\n const {\n width: swiperWidth, height: swiperHeight, slides, $wrapperEl, slidesSizesGrid,\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2);\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n\n let translateY = isHorizontal ? 0 : params.stretch * (offsetMultiplier);\n let translateX = isHorizontal ? params.stretch * (offsetMultiplier) : 0;\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}\"></div>`);\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}\"></div>`);\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;\n }\n }\n\n // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n const ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = `${center}px 50%`;\n }\n },\n setTransition(duration) {\n const swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n};\n\nvar EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n\n swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n};\n\nconst Thumbs = {\n init() {\n const swiper = this;\n const { thumbs: thumbsParams } = swiper.params;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n },\n update(initial) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;\n else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;\n else newThumbsIndex = prevThumbsIndex;\n } else {\n newThumbsIndex = swiper.realIndex;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n },\n};\nvar Thumbs$1 = {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n const { thumbs } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition(duration) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n};\n\n// Swiper Class\n\nconst components = [\n Device$1,\n Support$1,\n Browser$1,\n Resize,\n Observer$1,\n Virtual$1,\n Keyboard$1,\n Mousewheel$1,\n Navigation$1,\n Pagination$1,\n Scrollbar$1,\n Parallax$1,\n Zoom$1,\n Lazy$1,\n Controller$1,\n A11y,\n History$1,\n HashNavigation$1,\n Autoplay$1,\n EffectFade,\n EffectCube,\n EffectFlip,\n EffectCoverflow,\n Thumbs$1\n];\n\nif (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n}\n\nSwiper.use(components);\n\nexport default Swiper;\n","import \"../../polyfills/index\";\r\nimport \"NRW/Common\";\r\nimport \"Chartjs/with-all-plugins\";\r\n\r\nimport AccordionHelper from \"Helpers/AccordionHelper\";\r\nimport Configuration from \"NRW/Util/Configuration\";\r\nimport { EventDispatcher } from \"@nrw.core/styles\";\r\nimport ExportDataModalComponent from \"./StationDetails/ExportDataModalComponent\";\r\nimport LinkBuilder from \"NRW/LinkBuilder\";\r\nimport ModalHelper from \"Helpers/ModalHelper\";\r\nimport ParameterViewType from \"./StationDetails/ParameterViewType\";\r\nimport Resource from \"NRW/Util/Resource\";\r\nimport Scheduler from \"NRW/Util/Scheduler\";\r\nimport StartUpVariables from \"NRW/StartUpVariables\";\r\nimport StationDataMapper from \"./StationDetails/StationDataMapper\";\r\nimport StationDataService from \"./StationDetails/StationDataService\";\r\nimport StationParameterComponent from \"./StationDetails/StationParameterComponent\";\r\nimport ViewController from \"./StationDetails/ViewController\";\r\nimport swiper from \"swiper\";\r\n\r\nconst desktopWidthPx = 920;\r\n\r\nconst socialMediaShareUrls = Object.freeze([\r\n { id: 'fb', link: 'https://www.facebook.com/sharer/sharer.php?u=' },\r\n { id: 'tw', link: 'https://twitter.com/intent/tweet?url=' },\r\n { id: 'li', link: 'https://www.linkedin.com/shareArticle?mini=true&url=' }\r\n]);\r\nconst browserSupportHelper = window.__browserSupportHelper;\r\n\r\nclass StationDetailsPage {\r\n constructor(station) {\r\n browserSupportHelper.trackTrace(\"StationDetailsPage constructor start\", undefined, 0);\r\n\r\n // station is set from the page in a <script> tag\r\n this.station = StationDataMapper.map(station);\r\n \r\n this.startUpVariables = new StartUpVariables(() => window.location.search);\r\n this.viewController = new ViewController();\r\n \r\n this.stationDataService = new StationDataService();\r\n this.onStationUpdate = new EventDispatcher();\r\n this.autoRefreshScheduler = new Scheduler(Configuration.refreshIntervalMilliseconds);\r\n this.registerAutoRefreshListener();\r\n this.autoRefreshScheduler.start();\r\n \r\n let accordionHelper = new AccordionHelper();\r\n \r\n this.views = {};\r\n \r\n this.viewController.addViewChangedListener((viewType, viewContentDiv) => {\r\n this.renderView(viewType, viewContentDiv);\r\n });\r\n \r\n this.exportDataModalComponent = new ExportDataModalComponent(document.querySelector(\".export-data-modal\"));\r\n \r\n //#region Start up variables for parameterType=1|2|3\r\n let startingParameterId = this.startUpVariables.tryParseParameterTypeUsingQueryString();\r\n let startingParameterViewType = this.viewController.viewTypes[\"parameter:\" + startingParameterId] || null;\r\n \r\n if (startingParameterViewType === null) {\r\n this.viewController.goToView(this.viewController.viewTypes.details);\r\n } else {\r\n this.viewController.goToView(startingParameterViewType);\r\n }\r\n //#endregion\r\n \r\n //#region Modal event listeners\r\n\r\n $(document).on(\"submit\", \"#disclaimerForm\", ModalHelper.Close);\r\n\r\n accordionHelper.Close(\".about-us-section__accordion\");\r\n \r\n $(document).on(\"click\", \"#aboutUsAccordionTitleBar\", function () {\r\n accordionHelper.ToggleState(\".about-us-section__accordion\");\r\n });\r\n \r\n $(document).on(\"click\", \".modal__close-button\", (e) => {\r\n e.preventDefault();\r\n ModalHelper.Close();\r\n });\r\n \r\n $(document).on(\"click\", \".parameter-description__help-link\", (e) => {\r\n e.preventDefault();\r\n ModalHelper.Open('howtousegraph', true);\r\n });\r\n \r\n $(document).on(\"click\", \".button--share-data\", (e) => {\r\n e.preventDefault();\r\n ModalHelper.Open('sharedata', false);\r\n this.updateShareModal();\r\n });\r\n \r\n ModalHelper.CloseWhenClickedOutside(\"howtousegraph\");\r\n ModalHelper.CloseWhenClickedOutside(\"sharedata\");\r\n ModalHelper.CloseWhenClickedOutside(\"exportdata\");\r\n \r\n this._copiedAnimationLock = false;\r\n \r\n $(document).on(\"click\", \".share-data-modal__link-field\", (e) => {\r\n this.copyLinkToClipboard();\r\n if (!this._copiedAnimationLock) {\r\n this._copiedAnimationLock = true;\r\n $(\".share-data-modal__link-field\").addClass(\"share-data-modal__link-field--copied\");\r\n setTimeout(() => {\r\n $(\".share-data-modal__link-field\").removeClass(\"share-data-modal__link-field--copied\");\r\n this._copiedAnimationLock = false;\r\n }, 1000);\r\n }\r\n \r\n });\r\n \r\n //#endregion\r\n \r\n this.desktopMediaQuery = window.matchMedia(`screen and (min-width: ${desktopWidthPx}px)`);\r\n this.desktopMediaQuery.addListener((event) => this.onDesktopMediaQueryStateChange(event));\r\n \r\n this.navigatorCarouselDirection = this.desktopMediaQuery.matches ? 'horizontal' : 'vertical';\r\n var $navigatoritems = $(\".swiper-wrapper\").children();\r\n var pipelineStartingIndex = 0;\r\n for (var index = 0; index < $navigatoritems.length; index++) {\r\n var $navigatoritem = $($navigatoritems[index]);\r\n \r\n if ($navigatoritem.data(\"currentlyviewing\")) {\r\n pipelineStartingIndex = index;\r\n }\r\n }\r\n \r\n this.navigatorCarouselConfig = {\r\n init: false,\r\n initialSlide: pipelineStartingIndex,\r\n direction: 'vertical',\r\n slidesPerView: 'auto',\r\n centeredSlides: true,\r\n slideToClickedSlide: false,\r\n preventInteractionOnTransition: true,\r\n allowTouchMove: false,\r\n navigation: {\r\n nextEl: '.swiper-button-next',\r\n prevEl: '.swiper-button-prev'\r\n },\r\n on: {\r\n init: function() {\r\n $(\".button--upstream-button\").toggleClass(\"button--disabled\", this.isBeginning);\r\n $(\".button--downstream-button\").toggleClass(\"button--disabled\", this.isEnd);\r\n },\r\n reachBeginning: function () {\r\n $(\".button--upstream-button\").addClass(\"button--disabled\");\r\n },\r\n reachEnd: function () {\r\n $(\".button--downstream-button\").addClass(\"button--disabled\");\r\n },\r\n fromEdge: function () {\r\n $(\".button--upstream-button\").removeClass(\"button--disabled\");\r\n $(\".button--downstream-button\").removeClass(\"button--disabled\");\r\n }\r\n },\r\n breakpointsInverse: true,\r\n breakpoints: {\r\n 920: {\r\n direction: 'horizontal',\r\n slidesPerView: 7\r\n },\r\n 1220: {\r\n direction: 'horizontal',\r\n slidesPerView: 9\r\n }\r\n },\r\n a11y: {\r\n prevSlideMessage: $('.swiper-button-prev:first-child').text(),\r\n nextSlideMessage: $('.swiper-button-next:first-child').text(),\r\n }\r\n };\r\n \r\n $(\".reset-navigator-button\").on(\"click\", (e) => {\r\n e.preventDefault();\r\n this.navigatorCarousel.slideTo(this.navigatorCarousel.params.initialSlide);\r\n });\r\n\r\n browserSupportHelper.trackTrace(\"StationDetailsPage constructor end\", undefined, 0);\r\n }\r\n \r\n registerAutoRefreshListener() {\r\n this.autoRefreshScheduler.onTick.addListener(() => {\r\n this.stationDataService.getStation(this.station.id, true).then(updatedStation => {\r\n // We can't update the .parameters array using $.extend(true) (it adds them onto the array instead of modifying)\r\n // Let's pop it out of the object before extending\r\n let updatedParameters = updatedStation.parameters;\r\n delete updatedStation.parameters;\r\n $.extend(true, this.station, updatedStation);\r\n \r\n let parametersBeforeById = this.station.parameters.reduce((obj, parameter) => {\r\n obj[parameter.id] = parameter;\r\n return obj;\r\n }, {});\r\n \r\n for (let i = 0; i < updatedParameters.length; i++) {\r\n let parameterWithUpdates = updatedParameters[i];\r\n let id = parameterWithUpdates.id;\r\n \r\n if (!(id in parametersBeforeById)) {\r\n continue;\r\n }\r\n \r\n $.extend(true, parametersBeforeById[id], parameterWithUpdates);\r\n }\r\n \r\n this.onStationUpdate.invokeListeners([this.station], this);\r\n });\r\n });\r\n }\r\n \r\n renderView(viewType, viewContentDiv) {\r\n if (viewType.key in this.views && typeof this.views[viewType.key] !== 'undefined') {\r\n browserSupportHelper.trackTrace(\"StationDetailsPage start re-render view: \" + viewType.key, {\r\n \"ViewType\": viewType.key\r\n }, 0);\r\n\r\n if (\"component\" in this.views[viewType.key] && \"rerender\" in this.views[viewType.key].component) {\r\n this.views[viewType.key].rerender();\r\n }\r\n\r\n browserSupportHelper.trackTrace(\"StationDetailsPage end re-render view: \" + viewType.key, {\r\n \"ViewType\": viewType.key\r\n }, 0);\r\n return;\r\n }\r\n\r\n browserSupportHelper.trackTrace(\"StationDetailsPage start render view: \" + viewType.key, {\r\n \"ViewType\": viewType.key\r\n }, 0);\r\n \r\n if (viewType instanceof ParameterViewType) {\r\n let parameterType = viewType.parameterType;\r\n \r\n let parameters = this.station.parameters.filter(p => p.typeId === parameterType);\r\n \r\n if (parameters.length === 0) {\r\n throw new Error(`Parameter of type ${parameterType} doesn't exist`);\r\n }\r\n \r\n let component = new StationParameterComponent(viewContentDiv, this.station, parameters[0])\r\n .useExportDataModal(this.exportDataModalComponent)\r\n .updateGraphsWhen(this.autoRefreshScheduler.onTick)\r\n .receiveStationUpdatesFrom(this.onStationUpdate);\r\n \r\n this.views[viewType.key] = {\r\n type: viewType,\r\n component: component\r\n };\r\n }\r\n else {\r\n if (viewType.key === 'navigator') {\r\n this.initialiseStationNavigatorCarousel();\r\n \r\n this.views[viewType.key] = {\r\n type: viewType\r\n };\r\n }\r\n }\r\n\r\n browserSupportHelper.trackTrace(\"StationDetailsPage end render view: \" + viewType.key, {\r\n \"ViewType\": viewType.key\r\n }, 0);\r\n }\r\n \r\n initialiseStationNavigatorCarousel() {\r\n this.navigatorCarousel = new swiper('.swiper-container', this.navigatorCarouselConfig);\r\n var navigatorCarousel = this.navigatorCarousel;\r\n \r\n this.navigatorCarousel.on('slideNextTransitionStart', function () {\r\n if ($(navigatorCarousel.slides[this.realIndex]).hasClass(\"swiper-no-swiping\")) {\r\n navigatorCarousel.slideNext();\r\n }\r\n });\r\n \r\n this.navigatorCarousel.on('slidePrevTransitionStart', function () {\r\n if ($(navigatorCarousel.slides[this.realIndex]).hasClass(\"swiper-no-swiping\")) {\r\n navigatorCarousel.slidePrev();\r\n }\r\n });\r\n \r\n this.navigatorCarousel.init();\r\n }\r\n \r\n onDesktopMediaQueryStateChange(event) {\r\n var newNavigatorCarouselDirection = event.matches ? 'horizontal' : 'vertical';\r\n \r\n if (newNavigatorCarouselDirection !== this.navigatorCarouselDirection) {\r\n this.navigatorCarouselDirection = newNavigatorCarouselDirection;\r\n \r\n if (typeof this.navigatorCarousel !== typeof undefined) {\r\n this.navigatorCarousel.destroy(true, true);\r\n this.initialiseStationNavigatorCarousel();\r\n }\r\n }\r\n }\r\n \r\n updateShareModal() {\r\n var parameterUrl = `${window.location.protocol}//${window.location.host}${LinkBuilder.linkToGraph(this.station, this.viewController._currentViewType.parameterType)}&lang=${document.documentElement.lang}`;\r\n for (var i = 0; i < socialMediaShareUrls.length; i++) {\r\n $(`[data-social-media=${socialMediaShareUrls[i].id}]`).prop('href', `${socialMediaShareUrls[i].link}${encodeURIComponent(parameterUrl)}`);\r\n }\r\n $(\".share-data-modal__link-text\").text(parameterUrl);\r\n }\r\n \r\n copyLinkToClipboard() {\r\n const ta = document.createElement('textarea');\r\n ta.value = `${window.location.protocol}//${window.location.host}${LinkBuilder.linkToGraph(this.station, this.viewController._currentViewType.parameterType)}&lang=${document.documentElement.lang}`;\r\n ta.readOnly = true;\r\n ta.contentEditable = true;\r\n \r\n ta.style.position = 'fixed';\r\n ta.style.left = '0';\r\n ta.style.right = '0';\r\n ta.style.top = '15vh';\r\n ta.style.bottom = '0';\r\n ta.style.height = '1px';\r\n ta.style.width = '1px';\r\n ta.style.zIndex = '0';\r\n ta.style.margin = '0 auto';\r\n document.body.appendChild(ta);\r\n \r\n ta.select();\r\n \r\n const range = document.createRange();\r\n range.selectNodeContents(ta);\r\n \r\n const selection = window.getSelection();\r\n selection.removeAllRanges();\r\n selection.addRange(range);\r\n \r\n ta.setSelectionRange(0, 999999);\r\n document.execCommand('copy');\r\n document.body.removeChild(ta);\r\n }\r\n}\r\nexport default StationDetailsPage;\r\n"],"names":["this","check","global_1","global","fails","descriptors","nativePropertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","f","createPropertyDescriptor","toString","classofRaw","split","indexedObject","classof","requireObjectCoercible","toIndexedObject","IndexedObject","isObject","toPrimitive","hasOwnProperty","has","document","EXISTS","documentCreateElement","ie8DomDefine","DESCRIPTORS","createElement","nativeGetOwnPropertyDescriptor","IE8_DOM_DEFINE","propertyIsEnumerableModule","anObject","nativeDefineProperty","createNonEnumerableProperty","definePropertyModule","store","sharedStore","functionToString","inspectSource","WeakMap","id","postfix","uid","keys","shared","sharedKey","hiddenKeys","set","get","enforce","getterFor","NATIVE_WEAK_MAP","STATE","objectHas","internalState","InternalStateModule","path","aFunction","getBuiltIn","ceil","floor","min","toLength","max","toAbsoluteIndex","createMethod","arrayIncludes","indexOf","require$$0","objectKeysInternal","enumBugKeys","internalObjectKeys","ownKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","copyConstructorProperties","getOwnPropertyDescriptorModule","replacement","isForced","data","normalize","POLYFILL","NATIVE","isForced_1","_export","isArray","toObject","createProperty","useSymbolAsUid","NATIVE_SYMBOL","WellKnownSymbolsStore","Symbol","createWellKnownSymbol","USE_SYMBOL_AS_UID","wellKnownSymbol","SPECIES","arraySpeciesCreate","engineUserAgent","process","versions","v8","match","version","userAgent","engineV8Version","arrayMethodHasSpeciesSupport","V8_VERSION","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","FORCED","$","functionBindContext","push","bind","arrayIteration","defineProperty","$filter","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","objectKeys","objectDefineProperties","html","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","NullProtoObjectViaIFrame","activeXDocument","NullProtoObject","objectCreate","defineProperties","UNSCOPABLES","ArrayPrototype","create","addToUnscopables","$find","FIND","SKIPS_HOLES","$map","arrayMethodIsStrict","STRICT_METHOD","test","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","freezing","FREEZING","onFreeze","FAILS_ON_PRIMITIVES","regexpFlags","UNSUPPORTED_Y","BROKEN_CARET","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","stickyHelpers","NPCG_INCLUDED","PATCH","regexpExec","exec","REPLACE_SUPPORTS_NAMED_GROUPS","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","fixRegexpWellKnownSymbolLogic","regexpExecAbstract","fixRegExpWellKnownSymbolLogic","regExpExec","window","CustomEvent","event","params","bubbles","cancelable","detail","undefined","evt","createEvent","initCustomEvent","defaultPrevented","Object","value","prototype","Event","sign","HTMLElement","enumerable","hasAttribute","inert","setAttribute","removeAttribute","addEventListener","applyStyle","css","style","type","styleSheet","cssText","appendChild","createTextNode","body","dispatchTabEvent","opt_shiftKey","ev","KeyboardEvent","keyCode","which","key","code","keyIdentifier","shiftKey","e","initKeyboardEvent","dispatchEvent","madeInertBy","documentElement","parentElement","findShadowRoot","ShadowRoot","parentNode","targetForEvent","p","target","lastTabDirection","focusedShadowRoot","updateFocusedShadowRoot","root","Error","removeEventListener","shadowFocusHandler","last","length","sharedFocusHandler","preventDefault","stopPropagation","inertElement","hasFocus","getFocused","activeElement","previous","filter","acceptNode","node","focus","tabIndex","NodeFilter","FILTER_SKIP","contained","contains","FILTER_REJECT","FILTER_ACCEPT","walker","createTreeWalker","SHOW_ELEMENT","currentNode","nextFunc","Math","previousNode","nextNode","next","candidate","blur","ModalHelper","_classCallCheck","_createClass","classModalContainer","classModalContainerVisibleModifier","classModal","classModalVisibleModifier","classContent","classContentHeightModifier","dataModalName","Open","modalName","lockScreen","arguments","callback","lastFocusedElement","addClass","$modal","attr","firstEl","find","toggleClass","Close","removeClass","CloseWhenClickedOutside","click","isOpen","concat","escapeSelector","closest","Initialize","openModal","locked","on","_typeof","trigger","require","pageLanguage","lang","select","twoLetterLanguageCode","object","englishFn","welshFn","toLowerCase","console","warn","Language","language","text","englishProperties","_loop","i","a","_ret","welshProperties","_loop2","_ret2","moment","tz","setDefault","momentLocaleMap","en","cy","locale","jQuery","ready","AccessibilityHelper","attributes","aria","describedBy","disabled","expanded","hidden","labelledBy","class","displayNone","activeTab","events","change","dragend","keydown","keyup","load","mouseleave","mouseout","mouseover","mousewheel","mousedown","move","moveend","movestart","remove","touchcancel","touchend","touchmove","touchstart","zoomend","false","true","Keys","codes","tab","return","shift","control","alt","escape","spacebar","arrowLeft","arrowUp","arrowRight","arrowDown","meta","isArrowKey","keycode","call","NATIVE_BIND","$propertyIsEnumerable","FunctionPrototype","uncurryThis","stringSlice","$Object","$TypeError","$String","isPrototypeOf","globalThis","hasOwn","$getOwnPropertyDescriptor","$defineProperty","CONFIGURABLE","V8_PROTOTYPE_DEFINE_BUG","TypeError","makeBuiltIn","trunc","$indexOf","nativeIndexOf","NEGATIVE_ZERO","TO_STRING_TAG","toStringTagSupport","CORRECT_ARGUMENTS","tryGet","TO_STRING_TAG_SUPPORT","noop","$Array","setArrayLength","EventDispatcher","listeners","invokeListeners","args","context","x","invokeListener","listener","apply","addListener","EventDispatcherSubscription","NoopEventDispatcher","eventDispatcher","reference","disposed","dispose","index","splice","Mobile","Tablet","Desktop","Breakpoint","_this","tabletMediaQuery","matchMedia","onBreakpointStateChange","desktopMediaQuery","lastBreakpoint","getCurrentBreakpoint","onChange","newBreakpoint","mobile","matches","tablet","desktop","Throttler","duration","_timerId","_fn","executeSoon","fn","_startTimer","debounce","_clearTimer","clearTimeout","setTimeout","_executeNow","definePropertiesModule","nativeKeys","$RegExp","MISSED_STICKY","getInternalState","charAt","replace","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","RegExpPrototype","charCodeAt","stringMultibyte","advanceStringIndex","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","stringIndexOf","maybeToString","PER_PAGE_OPTIONS","MAX_ADJACENT_PAGE_LINKS_PER_SIDE_MOBILE","MAX_ADJACENT_PAGE_LINKS_PER_SIDE_TABLET","MAX_ADJACENT_PAGE_LINKS_PER_SIDE","PaginationControls","options","_pageNumberLabel","pageNumberLabel","$paginationRoot","$pageSelector","$firstPage","$previousPage","$nextPage","$lastPage","$perPageSelector","$perPage","$pageLinkLeftSpacer","buildPageLinkSpacer","$pageLinkRightSpacer","isPaginating","displayedNumberOfItemsPerPage","currentPage","totalNumberOfItems","maxAdjacentPageLinksPerSide","allowPerPageConfiguration","fixedPerPageCount","previousPerPageConfiguration","_onPageSelectedListeners","_onPaginationEnabledListeners","populatePerPageSelectorOptions","perPage","val","page","totalPages","currentTarget","oldBreakpoint","showPerPageSelector","updatePageLinkSpacers","populatePageLinks","detach","$lastPageLink","$pageLink","buildPageLink","after","updatePageLinks","$pageLinks","$currentPageLink","currentPageIndex","newLeftSpacerIndex","newRightSpacerIndex","rightSpacerIndexOffset","leftSpacerIndexOffset","eq","before","updateFixedPageLinks","canDoPrevious","canDoNext","canDoFirst","canDoLast","_this2","append","map","v","pageNumber","$text","firstElementIndexForPage","lastElementIndexForPage","lastPossibleElementIndexForPage","firstElementIndex","itemsOnPage","totalPagesForPerPage","addPageSelectedListener","invokePageSelectedListeners","invokePageSelectedListenersWithCurrentState","oldPage","newPage","range","addPaginationEnabledListener","invokePaginationEnabledListeners","willShowPerPage","lastElementIndex","willPaginate","enabled","totalItems","samePage","iterators","correctPrototypeGetter","ObjectPrototype","objectGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","ITERATOR","BUGGY_SAFARI_ITERATORS","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","getPrototypeOf","iteratorsCore","setToStringTag","returnThis","Iterators","aPossiblePrototype","objectSetPrototypeOf","uncurryThisAccessor","PROPER_FUNCTION_NAME","FunctionName","IteratorsCore","KEYS","VALUES","ENTRIES","createIteratorConstructor","setPrototypeOf","ARRAY_ITERATOR","setInternalState","es_array_iterator","defineIterator","objectToString","domIterables","ArrayValues","ArrayIteratorMethods","handlePrototype","DOMIterables","COLLECTION_NAME","DOMTokenListPrototype","ListStatsControls","$statsRoot","totalFormatString","rangedFormatString","emptyString","isShowingRange","values","total","numberVisible","start","update","formatString","replacePlaceholders","input","setVisibility","StationListItem","station","stationDetailComponent","stationDetailComponentOptions","$element","buildHtml","relevant","_visible","render","willBeVisible","widthElementSelectors","StationListView","_stationDetailComponent","$scrollingContainer","$container","$listView","stations","stationIds","_currentHighlightedStationId","_onListItemMouseenterListeners","_onListItemMouseleaveListeners","updateWidthsThrottler","firstUpdateWidths","updateWidths","invokeListItemMouseenterListeners","invokeListItemMouseleaveListeners","listStats","pagination","updateView","resize","scheduleUpdateWidths","showRange","relevantStationIndex","stationId","visible","items","anyUpdated","selector","width","updateWidthsOfElements","querySelectorAll","elements","maxWidthOfElements","element","clientWidth","setHighlightedStationId","highlight","scrollTop","offset","top","outerHeight","animate","addStations","addStation","ignoreViewUpdate","listItem","removeStation","_id","clearStations","empty","updateStationRelevance","willBeRelevant","shouldStationBeRelevant","mapExtent","withinMapExtent","point","updateAllStationsRelevance","filteredStations","relevantStations","updateStations","stationsById","idsOfStationsInListView","idsToRemove","info","idToRemove","newStationsInData","stationToAdd","addListItemMouseenterListener","addListItemMouseleaveListener","_this3","s","$forEach","arrayForEach","forEach","nativeJoin","ES3_STRINGS","nativeSlice","UA","V8","FF","IE_OR_EDGE","WEBKIT","internalSort","$getOwnPropertyNames","ARRAY_BUFFER_NON_EXTENSIBLE","isExtensible","getOwnPropertyNamesExternalModule","inheritIfRequired","MATCH","isRegexp","regExpFlags","setSpecies","getOwnPropertyNames","require$$1","NativeRegExp","re1","re2","CORRECT_NEW","RegExpWrapper","isRegExp","getRegExpFlags","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","$toString","ParameterType","freeze","river","rainfall","tidal","RegExp","Html","unsafe","wrap","item","searchText","startTag","endTag","regex","renderTemplate","templateHtmlString","componentMap","$dom","componentKeys","component","divToReplace","querySelector","domToReplaceWith","replaceWith","children","staticComponent","StationDetailComponent","parametersComponents","_dataExpanded","isPopup","LinkBuilder","Constants","stationTitle","title","stationStatusText","statusText","statusImage","getStationStatusImage","components","getStationStatusSpan","statusSpan","parameters","parameter","parameterComponents","parameterDetails","getStationParameterDetailElements","details","parameterStatusImageContainer","getStationParameterStatusImageContainer","statusImageContainer","_updateDataExpandedViewState","$station","$graphButton","$button","$parameters","lessData","viewLessData","hide","each","$parameter","$parameterGraphButton","moreData","viewMoreData","show","isFirst","_renderParameter","isHidden","modifier","parameterTypeIcon","getParameterTypeIcon","graphButtonTooltip","getGraphButtonText","graphButtonModifier","src","linkToGraph","typeId","viewGraph","showMore","graphParameterType","showMoreHtml","graphButtonHtml","stationComment","graph","comment","hideFooter","param","footerHtml","htmlString","icon","getStationTypeIconFromParameters","div","status","upToDateReadingNotAvailable","typeText","round","latestValue","unit","latestTime","format","rainfallHelpText","ainfallHelpText","parameterStatusIcon","getParameterStatusIcon","TRANSPARENT_PIXEL_DATA_URI","getParameterStatusText","img","slice","getStationStatusIcon","sort","b","join","colour","statuses","offline","levelFalling","levelSteady","levelRising","rainfallDry","rainfallLightRain","rainfallModerateRain","rainfallHeavyRain","cleanStatusText","Resource","Water","types","viewRiverLevelGraph","viewRainfallLevelGraph","viewTidalLevelGraph","wrappedWellKnownSymbolModule","SymbolPrototype","RangeError","getOwnPropertyNamesExternal","nativeObjectCreate","defineWellKnownSymbol","defineSymbolToPrimitive","SymbolToStringRegistry","NATIVE_SYMBOL_REGISTRY","getReplacerFunction","quot","createHtml","stringHtmlForced","forcedStringHTMLMethod","createHTML","NotificationPopupItemHandler","clear","ul","innerHTML","active","li","classList","add","link","spanText","innerText","spanDate","description","date","typeIconCss","typeIcon","typeIconTitle","container","statusIconCss","activeIcon","statusIconTitle","_itemChangedEventListeners","handler","addItemChangedEventListener","activeClass","notificationButtonId","closeButton","_notificationCounter","_popupContainer","_popupItemHander","_items","init","popupItemHander","updateCounter","toggle","esc","parent","count","setCount","addItem","clearItems","IS_IOS","task","Promise","IS_NODE","notify","newPromiseCapability","NativePromise","$fetch","newPromiseCapabilityModule","INCORRECT_ITERATION","iterate","Collection","CollectionPrototype","pow","log","repeat","flags","WEBKIT_BUG","callRegExpExec","forcedStringTrimMethod","dmsSeparator","Dms","parse","dms","isNaN","parseFloat","isFinite","Number","dmsParts","String","trim","NaN","deg","toDms","dp","Infinity","abs","d","m","toFixed","separator","toLat","lat","wrap90","toLon","lon","wrap180","toBrng","brng","wrap360","fromLocale","str","toLocaleString","thousands","decimal","toLocale","compassPoint","bearing","precision","includes","cardinals","n","cardinal","degrees","char","toRadians","PI","toDegrees","Vector3d","y","z","plus","minus","times","dividedBy","dot","cross","negate","norm","angleTo","sinθ","cosθ","atan2","rotateAround","axis","angle","θ","sin","c","cos","t","r","rp","p2","sqrt","ellipsoids","WGS84","datums","ellipsoid","LatLonEllipsoidal","height","_lat","_lon","_height","toCartesian","datum","referenceFrame","φ","λ","h","sinφ","cosφ","sinλ","cosλ","eSq","ν","Cartesian","equals","EPSILON","epoch","dpHeight","_datum","_len","Array","_key","ll","coordinates","_ll$coordinates","_slicedToArray","latitude","longitude","lng","JSON","stringify","_args$0$split","_args$0$split2","_Vector3d","_inherits","_possibleConstructorReturn","_getPrototypeOf","toLatLon","e2","ε2","R","tanβ","sinβ","cosβ","Airy1830","AiryModified","Bessel1841","Clarke1866","Clarke1880IGN","GRS80","Intl1924","WGS72","ED50","transform","ETRS89","Irl1975","NAD27","NAD83","NTF","OSGB36","Potsdam","TokyoJapan","LatLonEllipsoidal_Datum","_LatLonEllipsoidal","convertDatum","toDatum","oldCartesian","newCartesian","newLatLon","cartesian","_get","cartesianDatum","Cartesian_Datum","_get2","pop","_Cartesian","deprecatedDatum","latLon","applyTransform","x1","y1","z1","tx","ty","rx","ry","rz","x2","y2","z2","OsGridRef","easting","northing","E","N","F0","φ0","λ0","N0","E0","n2","n3","M","Ma","Mb","Mc","Md","Ï","η2","tanφ","tan","tan2φ","tan4φ","tan6φ","secφ","ν3","ν5","ν7","VII","VIII","IX","X","XI","XII","XIIA","dE","dE2","dE3","dE4","dE5","dE6","dE7","LatLon_OsGridRef","digits","useGrouping","minimumIntegerDigits","maximumFractionDigits","ePad","nPad","e100km","n100km","l1","l2","letterPair","fromCharCode","padStart","gridref","toUpperCase","padEnd","toOsGrid","cos3φ","cos5φ","I","II","III","IIIA","IV","V","VI","Δλ","Δλ2","Δλ3","Δλ4","Δλ5","Δλ6","MapExtentRestrictionStrategy","boundingExtent","centerPoint","spatialReference","wkid","_validResult","center","clone","extentErrors","MapExtentRestrictionStrategyErrors","xmin","diff","xmax","ymin","ymax","any","_invalidResult","extent","ok","errors","AccordionHelper","ToggleState","accordion","force","$accordion","classAccordionCloseModifier","$title","$content","classAccordionContent","contentId","random","titleId","hasClass","slideUp","removeAttr","slideDown","IS_PURE","USE_NATIVE_URL","URLSearchParams","URLSearchParamsModule","toASCII","assign","parameterType","url","query","Configuration","extend","serviceRefreshInterval","rainfallReadingOffset","mapBasemap","config","string","number","asMilliseconds","instance","OS_GB_SPATIAL_REFERENCE","SpatialReference","LAT_LNG_SPATIAL_REFERENCE","WEB_MERCATOR_SPATIAL_REFERENCE","WALES_EXTENT","Extent","LOCATION_ZOOM_RADIUS_KM","WALES_MASK_LAYER_URL","FONT_FAMILY","CookieJar","readCookie","viewTypeCookieKey","createCookie","persistentCookieExpiryTimeInDays","name","days","Date","setTime","getTime","expires","toGMTString","cookie","nameEQ","ca","substring","from","InternalMetadataModule","availableResources","pageResources","__resources","__resourcesList","Set","resourceMap","reduce","resources","Filter","validLayerTypes","$filterCheckboxes","$filterElements","$mobileMenuButton","$mobileFilterContainer","$mobileActiveFilterCounter","filterChanged","keypress","checked","toggleMobileMenu","_validLayerTypes","_updatingFilters","_filterDidChange","_state","validLayerType","updateActiveFilterCounter","layerId","layerIsActive","getNumberOfActiveFilters","state","setLayerState","alert","FiltersNeedsAtLeastOneSelected","didChangeState","$checkbox","prop","replaceState","filterState","newState","layerTypes","layerType","patchState","layerIds","Geometry","extentOfRadius","radiusKm","Circle","radius","radiusUnit","extentOfPoints","points","multipoint","Multipoint","addPoint","MapBasemapConfigurationMapper","basemapConfig","Basemap","baseLayers","TileLayer","referenceLayers","Scheduler","intervalMs","timerId","onTick","setInterval","stop","clearInterval","correctIsRegExpLogic","notARegExp","require$$2","getFlags","toArray","itemSelector","array","mapObject","itemTransform","result","unique","PlacesSearchLocator","_defineProperty","layerQueryTask","QueryTask","_search","_asyncToGenerator","regeneratorRuntime","mark","_callee","results","_callee$","_context","prev","removeAccents","Query","where","orderByFields","outFields","_toConsumableArray","PROPERTY_MAP_EXTENT_ATTRIBUTES","num","execute","sent","abrupt","_sortFeaturesByCountry","features","g","AddressCandidate","_convertGraphicToExtent","address","_formatTextForGraphic","search","_x","_isWelshFeature","feature","english","welsh","county","country","parts","graphic","extentParams","some","_objectSpread","StationQuery","filterStationsByIds","ids","filterStationsByRiverId","riverId","waterBodyId","filterStationsByCatchmentId","catchmentId","filterStationsByFilterState","filters","filterKeys","allowedParameterTypes","POSTAL_CATEGORIES","SEARCH_SOURCE_TYPES","PLACES","NGR","POSTCODES","NRW","SEARCH_RESULT_TYPES","RIVERS","CATCHMENTS","STATIONS","ADDRESS","GPS","DATA_TYPES","WATER_BODY","CATCHMENT","STATION","SEARCH_RESULT_TYPE_OPTIONS","_SEARCH_RESULT_TYPE_O","textFn","addressCandidate","dataType","YourLocationSearchTerm","searchedText","SearchedNrwRiver","SearchedNrwCatchment","SearchedNrwStation","SearchLocator","locator","placesLocator","suggest","searchForPlaces","convertSuggestionToLocation","suggestion","addressToLocations","magicKey","countryCode","outSpatialReference","searchForPostcode","categories","searchExtent","then","response","_mergePartialPostcodeResults","score","mergableResults","startsWith","substr","mergedExtent","union","mergedResult","location","searchForNgr","deferred","Deferred","gridRef","Point","isTextGridReference","STARTS_WITH_LETTER_REGEX","resultText","resolve","ex","reject","searchForCurrentLocation","navigator","geolocation","getCurrentPosition","position","_position$coords","coords","LatLon","positionError","enableHighAccuracy","timeout","SearchMapper","mapRequestsToResults","searchRequests","searchResults","nrw","waterBodies","catchments","mappings","mapping","to","SearchViewModel","$root","stationData","$results","addBack","$resultsContainer","$noExactMatch","$errorMessage","$searchedText","hasContainerAroundSearchResults","is","isSearchActive","searchResultDataFn","onBlur","onEsc","onVisibilityChanged","containsElement","relatedTarget","focusSearchedText","el","focusErrorMessage","focusNoExactMatch","showRoot","showResults","showSearchedText","searchTerm","_","searchedTextSegment","outerHTML","clearSegment","SearchedClearHint","SearchedClearHintLink","showErrorMessage","showNoExactMatchText","linkText","reset","setSearchResults","numberOfResults","searchResultTypes","tooManyResultsInAnySearchResultType","searchResultType","searchResultForType","numberOfSearchResultsForType","handleSearchResultsByType","NoExactMatchActionWithTooManyResults","NoExactMatchAction","NoExactMatchClearLink","NoResults","showSearchResultsByType","hideSearchResultsByType","getSearchResultsTypeContainer","getListStatsControlsForSearchResultsTypeContainer","$searchResultsTypeContainer","$listStats","listStatsControls","$resultTypeContainer","mappedResults","sortSearchResults","MAX_RESULTS","textWithHighlightedResult","buildSearchResult","willShowListStats","localeCompare","contents","StationDataSearcher","testTextAgainstQuery","waterBody","catchment","convertObjectToArray","resultArray","needle","testStringAgainstQuery","testStationAgainstQuery","haystack","Search","_this$_lastSearchProm","esriLocator","Locator","stationDataSearcher","mapper","_onSearchResultSelectedListeners","_onSearchClearedListeners","autocompleteViewModel","searchResultsViewModel","buildSearchResultDataObject","searchInput","searchSubmit","$combobox","_lastInput","_searching","$mobileLocationContainer","_suggestTimeout","_hasAutocompleteResults","_autocompleteResultsInvalidated","_lastSearchPromises","promise","registerSearchResultClickedHandler","registerSearchSubmittedHandler","registerSearchClearedHandler","registerSearchAutocompleteHandler","registerSearchFocusHandlers","registerCurrentLocationHandler","registerFilterChangedHandler","registerSearchAutocompleteVisibilityHandler","registerSearchInputResponsivePlaceholderHandler","_this4","updateSearchInputPlaceholder","breakpoint","placeholder","SearchPlaceholder","_this5","_this6","newFilterState","doSearch","_this7","doAutocompleteSearch","toggleLocationButton","focusWithinAutocomplete","focusOnLocation","hideAutocomplete","_this8","searchResult","delegateTarget","handleSingleSearchResult","_this9","invokeSearchClearedListeners","_this10","onSearchSubmit","_this11","killSuggestTimeout","_this12","fail","errorType","error","YourLocationErrorMessage","focusSearchInput","clearSearchInput","resetState","_this13","handleSearchResults","requestsWithResults","ngrSearchDeferred","wrapRequests","_this$wrapRequests2","esriPostcodeSearchRequest","esriPlacesSearchRequest","nrwSearchRequest","requests","postcodes","isSearchResultRelevant","abort","cancel","allPromise","whenAllRequestsAreDone","activeSearchPromise","immediatelySelectSingleResult","_this14","singleResult","singularResultSourceTypes","foundSingleResult","foundSingleResultType","invokeSearchResultSelectedListeners","SearchedSpatial","_this$wrapRequests3","_this15","activeSearchAutocompletePromise","anyResults","intersects","getSearchResultDataType","wrappedRequests","requestKey","done","_this16","requestWithResult","ifAllDoneThenResolve","resolveWith","addSearchResultSelectedListener","addSearchClearedListener","queryStringKeys","layers","ngr","parseFailure","success","parseSuccess","geographicWkid","StartUpVariables","getQueryString","configureFilterUsingQueryString","queryStringFilters","tryParseFiltersUsingQueryString","outFilters","queryString","queryStringLayers","activeLayerTypes","activeLayerType","configureMapUsingQueryString","mapController","queryStringExtent","tryParseExtentUsingQueryString","applied","isExtentWithinWales","queryStringNgr","tryParseNgrUsingQueryString","gridReg","isPointWithinWales","extentComponents","isLatLng","extentProps","tryParseParameterTypeUsingQueryString","queryStringParameterType","parsedInt","parseInt","StationPopup","_MapPopup","mapView","mapPopupDetailComponent","_station","clearPopupHideTimeout","_buildContent","viewModel","MapPopup","FlareClusterLayer","_viewLoadCount","_clusters","layer","GraphicsLayer","view","singlePopupTemplate","clusterRatio","clusterToScale","clusterMinCount","singleFlareTooltipProperty","clusterAreaDisplay","maxFlareCount","maxSingleFlareCount","displayFlares","displaySubTypeFlares","subTypeFlareProperty","flareBufferPixels","xPropertyName","yPropertyName","zPropertyName","clusterRenderer","areaRenderer","singleRenderer","singleSymbol","flareRenderer","refreshOnStationary","flareSymbol","SimpleMarkerSymbol","size","color","Color","outline","SimpleLineSymbol","textSymbol","TextSymbol","font","family","yoffset","flareTextSymbol","_data","_layerViewCreated","draw","watchUtils","pausable","layerView","isStationary","_viewStationary","_activeView","_readyToDraw","_queuedInitialDraw","_addViewEvents","fclPointerMove","_viewPointerMove","fclPointerDown","_activeCluster","_deactivateCluster","removeAll","setData","drawData","activeView","fclSurface","currentExtent","_extent","_is2d","time","_isClustered","_scale","webExtent","isWebMercator","webMercatorUtils","project","extentIsUnioned","normalizedWebExtent","_createClusterGrid","web","obj","dataLength","xVal","yVal","_passesFilter","isWGS84","lngLatToXY","j","jLen","_gridClusters","cl","clusterCount","subTypeExists","sLen","subTypeCounts","singles","_createSingle","len","jlen","_createCluster","emit","timeEnd","_createSurface","passes","propertyName","valExists","propertyValues","keepOnlyIfValueExists","isGeographic","geographicToWebMercator","Graphic","geometry","popupTemplate","symbol","getSymbol","defaultSymbol","_createCluster2","gridCluster","cluster","cbi","mp","area","areaAttr","areaPoly","Cluster","isCluster","clusterObject","clusterGraphic","getClassBreakInfo","rotation","clusterId","textGraphic","isClusterText","isText","geometryEngine","convexHull","isClusterArea","rings","Polygon","addRing","areaGraphic","xCount","yCount","xw","yh","gsxmin","gsxmax","gsymin","gsymax","ext","surfaceParentElement","canvas","surface","gfx","createSurface","containerGroup","createGroup","domStyle","rawNode","zIndex","domAttr","mousePos","_getMousePos","clusterGroup","bbox","getBoundingClientRect","left","right","bottom","hitTest","graphics","_activateCluster","reorder","_showGraphic","_initSurface","_initCluster","_initFlares","_hideGraphic","_removeClassFromElement","_clearSurface","sp","toScreen","wsw","worldScreenWidth","ratio","overflow","domConstruct","destroy","_initCluster2","_callee2","clonedClusterElement","clonedTextElement","_callee2$","_context2","_addClassToElement","_createClonedElementFromGraphic","_translateClonedClusterElement","_createClonedElementFromGraphic2","_callee3","svg","clusterElement","_callee3$","_context3","symbolUtils","renderPreviewHTML","tagName","_x2","_initFlares2","_callee4","singleFlares","subTypeFlares","flares","subTypes","_f","willContainSummaryFlare","flareCount","degreeVariance","viewRotation","clusterSymbolSize","_i2","flare","flareAttributes","isSummaryFlare","tooltipText","_i3","_callee4$","_context5","Flare","singleData","flareText","isFlare","flareTextGraphic","clusterGraphicId","isSummary","_getFlareSymbol","flareElement","flareTextElement","_loop$","_context4","flareGroup","_setFlarePosition","mouseEnter","_createTooltip","mouseLeave","_destroyTooltip","delegateYield","t0","flareIndex","degree","radian","buffer","setTransform","dx","dy","_getFlareSymbol2","_callee5","flareGraphic","_callee5$","_context6","_x3","bb","_createTooltip2","_callee6","tooltipLength","lines","tooltipGroup","xPos","yPos","textShapes","textShape","rectPadding","textBox","rectShape","_i4","_len2","_callee6$","_context7","createText","align","setFill","setFont","weight","getBoundingBox","createRect","setStroke","moveToFront","_x4","scale","className","timeoutMs","_element","_className","currentClass","getAttribute","newClass","rect","removeMany","addMany","dst","GraphicSymbolAnimator","_graphic","_originalYOffset","step","progress","timeInIteration","scaledValue","ClusterAnimator","_cluster","_textAnimator","_clusterAnimator","StationAnimation","animator","_animator","_stationId","_runningAnimationFrameRequest","_startTimestamp","_lastTickProgress","_lastTickTimeInIteration","_iteration","_options","easingFn","easing","sineIn","_callbacks","tick","deltaMs","DURATION","HALF_DURATION","easedProgress","doTick","iteration","lastIteration","_stopping","scheduleTick","requestAnimationFrame","cancelScheduledTick","cancelAnimationFrame","invokeCallbacks","stopAfterCompletion","LanguageResolver","Offline","LevelFalling","LevelSteady","LevelRising","RainfallDry","RainfallLightRain","RainfallModerateRain","RainfallHeavyRain","IconResolver","isHorizontal","StationRenderer","getIcon","graphicWithAttributes","stationWithPoint","PictureMarkerSymbol","StationWithPointAccessor","latLngSpatialReference","StationsLayer","clusterLayer","buildClusterLayer","_runningAnimations","updateRunningAnimationSymbols","findGraphicForStationId","clusterIds","clusterIdIndex","singleIndex","single","stationGraphics","relevantStationGraphics","buildAnimatorForGraphic","animation","runningAnimations","buildClusterMarker","buildSingleClusterMarker","buildClusterRenderer","clusterMarker","singleClusterMarker","ClassBreaksRenderer","addClassBreakInfo","field","buildClusterCountTextSymbol","xoffset","horizontalalignment","clusterCountTextSymbol","stationRenderer","fcl","applyStations","findStationsByGraphics","includeClustered","includeSingle","foundStationsWithPoint","screenPoint","promiseUtils","hitTestPromise","TabController","$tabsContainerElement","_tabs","_onActiveTabChangeListeners","initialise","$tabElements","Tab","setActiveTab","newActiveTab","callChangeListeners","previousActiveTab","findActiveTab","willBecomeActive","invokeActiveTabChangeListeners","addActiveTabChangeListener","oldTab","newTab","thisCallbackResult","tabs","tabController","tabElement","tabId","_active","_onClickListeners","viewTypes","combinedView","listView","ViewController","cookieJar","$viewContainer","_onViewChangedListeners","_this$tabController$t","mapViewTab","combinedViewTab","listViewTab","goToView","onBreakpointChange","_currentViewType","lastUserViewType","viewType","isValidViewType","registerCheckFloodWarningsServiceButton","newViewType","previousViewType","invokeViewChangedListeners","getTabForViewType","originalEvent","href","queryIndex","urlWithoutQuery","viewTypeKeys","addViewChangedListener","callImmediately","oldViewType","currentViewType","dataExpanded","browserSupportHelper","__browserSupportHelper","_text","trackTrace","defaultActiveStationQuery","stationDataUpdateSource","stationsLayer","autoRefreshScheduler","refreshIntervalMilliseconds","basemap","fromId","MapController","buildWalesExtentForEachSpatialReference","LessData","ViewLessData","MoreData","ViewMoreData","ViewGraph","Graph","UpToDateReadingNotAvailable","RainfallHelpText","ViewRiverLevelGraph","ViewRainfallLevelGraph","ViewTidalLevelGraph","stationPopup","startUpVariables","MapLayerPointData","dataUrl","convertPointToOSGridRef","homePage","stationListView","PageNumber","accordionHelper","useMapExtent","stationsSource","activeStationsQuery","resetActiveStationQuery","_mapInvisiblyMovingToExtent","defaultLayerArguments","currentLayerFilterArguments","layerFilterArguments","extentArgument","currentConfigUrl","history","addMapExtentChangedListener","stationsOnMap","showTheseStationsInStationsList","onMapReady","addMapClickListener","_ref","clusteredStations","buildExtentForPointsWithMinimumRadius","goTo","singleStations","pointerType","newCenter","newExtent","centerAt","domNode","clientHeight","alignment","action","goToExtent","addMapPointerMoveListener","_ref2","onMapPinMouseleave","setMapCursorToPointer","onMouseEnter","loaded","searchTypes","searchVm","UserLocationOutsideWales","dataTypes","updateStationsInStationsLayer","updateStationsInStationsList","stationsFromSearch","applyActiveStationsQuery","$el","searchPosition","firstRun","fetch","processAndSortStationData","dict","renderedComponent","hideMap","forceListView","whenAllBasemapLayersLoaded","showTechnicalIssuesMessage","setMessageToError","trackException","initialiseStationsList","britishNationalGrid","getElementById","trackEvent","mapTab","combinedTab","remaining","onInvisibleMapCallback","mapIsVisible","safeGoTo","beginPopupHideTimeout","isHovering","cursor","expandFactor","pointsExtent","expand","minimumExtent","define","fill","module","exports","o","u","colorNames","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","keyword","abbr","hex","rgba","per","rgb","hsl","alpha","l","hwb","w","hsla","vals","hexDouble","reverseNames","convert","valid","hsv","cmyk","setValues","red","lightness","whiteness","cyan","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","hue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","yiq","light","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","mix","mixinColor","color1","w1","w2","toJSON","source","spaces","maxes","getValues","space","chans","capped","sname","svalues","rgb2hsl","rgb2hsv","rgb2hwb","rgb2cmyk","rgb2keyword","rgb2xyz","rgb2lab","rgb2lch","hsl2rgb","hsl2hsv","hsl2hwb","hsl2cmyk","hsl2keyword","hsv2rgb","hsv2hsl","hsv2hwb","hsv2cmyk","hsv2keyword","hwb2rgb","hwb2hsl","hwb2hsv","hwb2cmyk","hwb2keyword","cmyk2rgb","cmyk2hsl","cmyk2hsv","cmyk2hwb","cmyk2keyword","keyword2rgb","keyword2hsl","keyword2hsv","keyword2hwb","keyword2cmyk","keyword2lab","keyword2xyz","xyz2rgb","xyz2lab","xyz2lch","lab2xyz","lab2rgb","lab2lch","lch2lab","lch2xyz","lch2rgb","delta","k","reverseKeywords","xyz","t1","t2","t3","sv","hi","q","sl","wh","bl","lab","hr","lch","cssKeywords","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellowgreen","conversions","Converter","func","arg","pair","convs","routeSpace","fspace","Chart","helpers","Animation","animationService","defaults","Element","Interaction","layouts","platform","plugins","Scale","scaleService","Ticks","Tooltip","register","initialize","Legend","legend","Title","pluginService","PluginBase","canvasHelpers","layoutService","Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter","_set","hover","mode","scales","xAxes","categoryPercentage","barPercentage","gridLines","offsetGridLines","yAxes","rectangle","borderSkipped","tooltips","callbacks","yLabel","labels","label","datasetLabel","datasets","datasetIndex","xLabel","computeMinSampleSize","pixels","ticks","getTicks","curr","ilen","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","isNullOrUndef","chunk","computeFlexCategoryTraits","percent","end","controllers","bar","DatasetController","dataElementType","Rectangle","me","getMeta","stack","getDataset","rects","_ruler","getRuler","updateElement","chart","dataset","custom","rectangleOptions","_xScale","getScaleForId","xAxisID","_yScale","yAxisID","_datasetIndex","_index","_model","backgroundColor","valueAtIndexOrDefault","borderColor","borderWidth","updateElementGeometry","pivot","model","vscale","getValueScale","base","getBasePixel","horizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","getValueScaleId","getIndexScaleId","getIndexScale","_getStacks","stacked","stacks","getDatasetMeta","isDatasetVisible","getStackCount","getStackIndex","getPixelForValue","getRightValue","imeta","ivalue","controller","stackIndex","valueOrDefault","maxBarThickness","clipArea","ctx","chartArea","unclipArea","horizontalBar","dataPoint","bubble","xScale","yScale","_resolveElementOptions","dsIndex","getPixelForDecimal","hitRadius","pointStyle","skip","setHoverStyle","$previousStyle","hoverBackgroundColor","getHoverColor","hoverBorderColor","hoverBorderWidth","hoverRadius","dataIndex","animateRotate","animateScale","legendCallback","generateLabels","ds","arc","arcOpts","stroke","bw","fillStyle","strokeStyle","lineWidth","onClick","legendItem","cutoutPercentage","circumference","tooltipItem","dataLabel","doughnut","pie","Arc","linkScales","getRingIndex","ringIndex","opts","availableWidth","availableHeight","minSize","startAngle","endAngle","contains0","contains90","contains180","contains270","cutout","getMaxBorderWidth","outerRadius","innerRadius","radiusLength","getVisibleDatasetCount","offsetX","offsetY","calculateTotal","animationOpts","centerX","centerY","calculateCircumference","elementOpts","arcs","hoverWidth","_chart","showLines","spanGaps","lineEnabled","showLine","line","datasetElementType","lineElementOptions","tension","lineTension","_children","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","steppedLine","stepped","cubicInterpolationMode","updateBezierControlPoints","getPointBackgroundColor","pointBackgroundColor","getPointBorderColor","pointBorderColor","getPointBorderWidth","pointBorderWidth","getPointRotation","pointRotation","pointOptions","pointRadius","pointHitRadius","calculatePointY","sumPos","sumNeg","dsMeta","stackedRightValue","rightValue","controlPoints","pt","capControlPoint","splineCurveMonotone","splineCurve","previousItem","nextItem","controlPointPreviousX","controlPointPreviousY","controlPointNextX","controlPointNextY","capBezierPoints","halfBorderWidth","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointHoverRadius","angleLines","display","circular","pointLabels","beginAtZero","polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","xCenter","yCenter","datasetStartAngle","distance","getDistanceFromCenterForValue","resetRadius","radar","pointElementOptions","pointPosition","getPointPositionForValue","scatter","currentStep","numSteps","onAnimationProgress","onAnimationComplete","onProgress","onComplete","frameDuration","animations","dropFrames","request","addAnimation","lazy","animating","cancelAnimation","findIndex","requestAnimFrame","startDigest","startTime","now","framesToDrop","advance","endTime","instances","initConfig","configMerge","updateConfig","newOptions","removeBox","ensureScalesHaveIDs","buildOrUpdateScales","tooltip","positionIsHorizontal","construct","acquireContext","aspectRatio","_bufferedRender","retinaScale","devicePixelRatio","bindEvents","responsive","initToolTip","silent","maintainAspectRatio","newWidth","getMaximumWidth","newHeight","getMaximumHeight","newSize","onResize","responsiveAnimationDuration","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","getScaleConstructor","mergeTicksOptions","hasUpdated","addScalesToLayout","buildOrUpdateControllers","newControllers","destroyDatasetMeta","updateIndex","ControllerClass","resetElements","_invalidate","buildOrUpdateElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","updateDataset","animationOptions","animationObject","easingFunction","effects","stepDecimal","easingValue","transition","boxes","box","drawDatasets","_drawTooltip","drawDataset","getElementAtEvent","modes","getElementsAtEvent","intersect","getElementsAtXAxis","getElementsAtEventForMode","method","getDatasetAtEvent","_meta","generateLegend","unbindEvents","releaseContext","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","changed","handleEvent","_start","bufferedRequest","animationDuration","hoverOptions","onHover","native","arrayEquals","Controller","arrayEvents","listenArrayEvents","_chartjs","configurable","res","unlistenArrayEvents","stub","addElements","scaleID","createMetaDataset","createMetaData","metaData","addElementAndReset","resyncElements","removeHoverStyle","merge","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","inherits","scope","interpolate","ease","actual","origin","c0","c1","configuration","_view","tooltipPosition","hasValue","isNumber","merger","tval","sval","scaleMerge","getScaleDefaults","_merger","slen","collection","filterCallback","filtered","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","epsilon","almostWhole","rounded","NEGATIVE_INFINITY","POSITIVE_INFINITY","log10","exponent","LOG10E","powerOf10","isPowerOf10","radians","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","distanceBetweenPoints","pt1","pt2","aliasPixel","pixelWidth","firstPoint","middlePoint","afterPoint","current","d01","d12","s01","s12","fa","fb","pointsWithTangents","deltaK","mK","pointsLen","pointBefore","pointCurrent","pointAfter","slopeDeltaX","alphaK","betaK","tauK","squaredMagnitude","deltaX","loop","niceNum","fraction","niceFraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","getRelativePosition","mouseX","mouseY","srcElement","boundingRect","touches","clientX","clientY","paddingLeft","getStyle","paddingTop","paddingRight","paddingBottom","currentDevicePixelRatio","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","getConstraintWidth","getConstraintHeight","_calculatePadding","padding","parentDimension","host","cw","ch","property","currentStyle","getPropertyValue","forceRatio","pixelRatio","fontString","pixelSize","fontStyle","fontFamily","longestText","arrayOfThings","cache","gc","garbageCollect","longest","thing","measureText","nestedThing","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","defaultColor","colorValue","CanvasPattern","parseVisibleItems","getIntersectItems","inRange","getNearestItems","distanceMetric","minDistance","nearestItems","getCenterPoint","getDistanceMetricForAxis","useX","useY","deltaY","indexMode","xAxis","nearest","sizeA","getArea","sizeB","ret","intersectsItem","inXRange","inYRange","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","layout","filterByPosition","sortByWeight","reverse","_tmpIndex_","v0","v1","addBox","fullWidth","layoutItem","configure","props","layoutOptions","toPadding","leftPadding","rightPadding","topPadding","bottomPadding","leftBoxes","rightBoxes","topBoxes","bottomBoxes","chartAreaBoxes","chartWidth","chartHeight","chartAreaWidth","chartAreaHeight","verticalBoxWidth","horizontalBoxHeight","maxChartAreaWidth","maxChartAreaHeight","minBoxSizes","getMinimumBoxSize","maxHorizontalLeftPadding","maxHorizontalRightPadding","maxVerticalTopPadding","maxVerticalBottomPadding","horizontalBox","getPadding","boxPadding","verticalBox","totalLeftBoxesWidth","totalRightBoxesWidth","totalTopBoxesHeight","totalBottomBoxesHeight","fitBox","minBoxSize","minBox","scaleMargin","finalFitVerticalBox","leftPaddingAddition","topPaddingAddition","newMaxChartAreaHeight","newMaxChartAreaWidth","placeBox","_plugins","_cacheId","plugin","unregister","idx","getAll","hook","descriptor","$plugins","drawBorder","drawOnChartArea","drawTicks","tickMarkLength","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","lineHeight","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","formatters","minor","major","labelsFromTicks","getLineValue","lineValue","computeTextSize","parseFontOptions","globalDefaults","fontSize","parseLineHeight","toLineHeight","_ticks","beforeUpdate","maxWidth","maxHeight","margins","longestTextCache","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","beforeTickToLabelConversion","convertTicksToLabels","afterTickToLabelConversion","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","afterUpdate","tickOpts","userCallback","tickFont","labelRotation","originalLabelWidth","labelWidth","cosRotation","sinRotation","tickWidth","angleRadians","scaleLabelOpts","gridLineOpts","isFullWidth","scaleLabelLineHeight","scaleLabelPadding","deltaHeight","largestTextWidth","tallestLabelHeightInLines","lineSpace","tickPadding","longestLabelWidth","labelHeight","firstLabelWidth","lastLabelWidth","handleMargins","rawValue","getLabelForIndex","getValueForPixel","innerWidth","pixel","finalVal","innerHeight","valueOffset","getBaseValue","_autoSkip","skipRatio","optionTicks","tickCount","labelRotationRadians","longestRotatedLabel","shouldSkip","maxTicks","maxTicksLimit","optionMajorTicks","isRotated","tickFontColor","fontColor","majorTickFontColor","majorTickFont","tl","scaleLabelFontColor","scaleLabelFont","itemsToDraw","axisWidth","xTickStart","xTickEnd","yTickStart","yTickEnd","lineColor","zeroLineIndex","tx1","ty1","tx2","ty2","labelX","labelY","textAlign","textBaseline","labelYOffset","xLineValue","isLeft","labelXOffset","yLineValue","glWidth","glColor","glBorderDash","glBorderDashOffset","itemToDraw","save","setLineDash","lineDashOffset","beginPath","moveTo","lineTo","restore","translate","lineCount","fillText","scaleLabelX","scaleLabelY","halfLineHeight","constructors","registerScaleType","scaleConstructor","scaleDefaults","updateScaleDefaults","additions","linear","tickValue","logDelta","tickString","maxTick","logTick","toExponential","numDecimal","logarithmic","remain","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","cornerRadius","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","pos","eventPosition","nearestElement","tp","mergeOpacity","colorString","opacity","pushOrConcat","toPush","splitNewlines","createTooltipItem","getBaseModel","tooltipOpts","xAlign","yAlign","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","getTooltipSize","combinedBodyLength","bodyItem","titleLineCount","footerLineCount","widthPadding","maxLineWidth","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","vm","paddingAndSize","radiusAndPadding","getBeforeAfterBodyLines","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","drawBody","xLinePadding","fillLineOfText","drawColorBoxes","textColor","fillRect","strokeRect","drawFooter","drawBackground","quadraticCurveTo","closePath","hasTooltipContent","inLabelRange","chartX","chartY","pointRelativePosition","betweenAngles","withinRadius","halfAngle","halfRadius","centreAngle","rangeFromCentre","sA","eA","lineJoin","globalOptionLineElements","lastDrawnIndex","currentVM","lineCap","xRange","yRange","errMargin","drawPoint","isVertical","getBarBounds","halfWidth","halfHeight","signX","signY","barSize","halfStroke","borderLeft","borderRight","borderTop","borderBottom","corners","borders","startCorner","cornerAt","corner","bounds","clearRect","roundedRect","arcTo","edgeLength","xOffset","yOffset","drawImage","SQRT2","leftX","topY","sideSize","clip","flip","bezierCurveTo","drawRoundedRectangle","defaultValue","thisArg","loopable","a0","a1","klen","_mergerIf","mergeIf","sources","setFn","extensions","ChartElement","constructor","Surrogate","__super__","callCallback","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","easingEffects","inputs","getContext","EXPANDO_KEY","CSS_PREFIX","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","initCanvas","renderHeight","renderWidth","initial","displayWidth","displayHeight","supportsEventListenerOptions","supports","eventListenerOptions","passive","nativeEvent","fromNativeEvent","throttled","ticking","createResizer","resizer","cls","maxSize","childNodes","shrink","_reset","scrollLeft","onScroll","watchForRender","expando","proxy","renderProxy","animationName","reflow","offsetParent","unwatchForRender","addResizeListener","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","_style","getElementsByTagName","_enabled","keyframes","proxies","addEvent","removeEvent","basic","dom","implementation","filler","propagate","mappers","boundary","decodeFill","computeBoundary","scaleBottom","scaleTop","scaleZero","getBasePosition","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","span","p0","p1","d0","d1","afterDatasetsUpdate","$filler","beforeDatasetDraw","ci","boxWidth","lineDash","getBoxWidth","labelOpts","usePointStyle","legendHitBoxes","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","globalDefault","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","totalWidth","currentColWidth","currentColHeight","itemHeight","itemWidth","lineDefault","legendWidth","drawLegendBox","isLineWidthZero","offSet","halfFontSize","xLeft","yMiddle","lh","hitBox","createNewLegendAndAttach","legendOpts","beforeInit","afterEvent","textSize","titleFont","titleX","titleY","createNewTitleBlockAndAttach","titleOpts","titleBlock","defaultConfig","DatasetScale","getLabels","xLabels","yLabels","minIndex","maxIndex","offsetAmt","valueCategory","valueWidth","widthOffset","valueHeight","heightOffset","horz","valueDimension","LinearScale","LinearScaleBase","DEFAULT_MIN","DEFAULT_MAX","IDMatches","hasStacks","valuesPerStack","positiveValues","negativeValues","relativePoints","valuesForType","minVal","maxVal","handleTickRangeOptions","getTickLimit","tickFontSize","handleDirectionalChanges","innerDimension","ticksAsNumbers","generateTicks","generationOptions","dataRange","factor","spacing","stepSize","niceRange","niceMin","niceMax","numSpaces","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","numericGeneratorOptions","fixedStepSize","tickVal","endExp","endSignificand","exp","significand","minNotZero","lastTick","LogarithmicScale","tickValues","_getFirstTickValue","firstTickValue","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getValueCount","getPointLabelFontOptions","pointLabelOptions","measureLabelSize","determineLimits","fitWithPointLabels","plFont","largestPossibleRadius","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","getIndexAngle","hLimits","vLimits","setReductions","drawingArea","setCenterPoint","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","angleLineOpts","pointLabelOpts","outerDistance","outerPosition","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","LinearRadialScale","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","startAngleRadians","scalingFactor","distanceFromCenter","thisAngle","tickFontStyle","tickFontFamily","tickLabelFont","yCenterOffset","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","INTERVALS","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","arrayUnique","hash","out","buildLookupTable","timestamps","distribution","table","lookup","lo","mid","i0","i1","skey","tkey","momentify","parser","startOf","valueOf","determineStepSize","capacity","interval","milliseconds","determineUnitForAutoTicks","minUnit","determineUnitForFormatting","as","determineMajorUnit","generate","timeOpts","unitStepSize","weekday","isoWeekday","majorTicksEnabled","first","computeOffsets","upper","lower","ticksFromTimestamps","majorUnit","determineLabelFormat","momentDate","hasTime","displayFormat","displayFormats","TimeScale","timestamp","endOf","_horizontal","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","_labelFormat","tooltipFormat","tickFormatFunction","formatOverride","formats","minorFormat","majorFormat","majorTime","majorTickOpts","formatter","getPixelForOffset","getLabelWidth","ticksOpts","tickLabelWidth","exampleTime","exampleLabel","isNil","clamp","defaultsDeep","findInArray","compareFunction","findIndexInArray","DataMipmap","minNumPoints","originalData","mipMaps","resolution","computeResolution","createMipMap","setMinNumPoints","getMipMapForResolution","getMipMapLevel","getMipMapIndexForResolution","utils","getMipMaps","getNumLevel","minTimeDistance","targetResolution","targetLength","lastMipMap","downsampleToResolution","output","aggregationValues","currentPoint","timeDistance","newPoint","getAverage","__extends","extendStatics","__proto__","__","LTTBDataMipmap","_super","resolutions","levelResolution","computeAverageResolution","splitDataIntoContinuousSeries","segments","currentSegment","newSegment","segmentIsValid","validDataLength","outData","segment","targetLengthOfSegment","performLTTBAlgorithmOnSegment","bucksetSize","maxAreaPoint","maxArea","nextA","avgX","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","pointA","pointAX","pointAY","timeDistances","data_mipmap_1","moment_module","getCompareValue","toDate","rangeIsEqual","previousValue","currentValue","getScaleRange","cullData","startValue","endValue","endIndex","compareValue","ResponsiveDownsamplePlugin","getPluginOptions","responsiveDownsample","aggregationAlgorithm","desiredDataPointDistance","hasDataChanged","mipMap","createDataMipMap","lttb_data_mipmap_1","restoreOriginalData","getTargetResolution","updateMipMap","rangeChanged","mipMalLevel","currentMipMapLevel","newData","data_culling","scaleRange","needsUpdate","beforeDatasetsUpdate","beforeRender","chartjs","responsive_downsample_plugin","chartHelpers","AnnotationElement","hovering","setDataLimits","getWidth","getHeight","chartInstance","annotation","objectId","decorate","prefix","callEach","fns","getEventHandlerName","eventName","createMouseEvent","previousEvent","MouseEvent","exception","initMouseEvent","canBubble","screenX","screenY","ctrlKey","altKey","metaKey","button","exception2","initEvent","Annotation","annotations","labelDefaults","getScaleLimits","scaleId","scaleMin","scaleMax","ranges","adjustScaleRange","drawTime","nonInteractive","horizontalKeyword","verticalKeyword","LineAnnotation","endPixel","LineFunction","labelBackgroundColor","labelFontFamily","labelFontSize","labelFontStyle","labelFontColor","labelXPadding","labelYPadding","labelCornerRadius","labelPosition","labelXAdjust","xAdjust","labelYAdjust","yAdjust","labelEnabled","labelContent","content","textHeight","calculateLabelPosition","getX","getY","padWidth","padHeight","xa","ya","BoxAnnotation","xScaleID","yScaleID","xMin","xMax","yMin","yMax","collapseHoverEvents","filteredEvents","dispatcher","ns","dblClickSpeed","eventHandlers","eventHandlerName","_el","hoverEvent","onDblclick","clickTimeout","stopImmediatePropagation","annotationTypes","setAfterDataLimitsHook","axisOptions","easingDecimal","defaultDrawTime","chartOptions","onDestroy","supported","elementIds","afterScaleUpdate","beforeDatasetsDraw","afterDatasetsDraw","afterDraw","afterInit","watchFor","deregisterers","drawTimeOptions","annotationPlugin","require$$3","Hammer","zoomNS","Zoom","zoomFunctions","panFunctions","defaultOptions","pan","speed","threshold","zoom","sensitivity","directionEnabled","dir","rangeMaxLimiter","zoomPanOptions","newMax","scaleAxes","rangeMax","rangeMinLimiter","newMin","rangeMin","zoomIndexScale","zoomOptions","lastLabelIndex","chartCenter","centerPointer","zoomCumulativeDelta","zoomTimeScale","min_percent","max_percent","newDiff","minDelta","maxDelta","diffMinMax","minLimitExceeded","maxLimitExceeded","zoomNumericalScale","cursorPixel","zoomScale","doZoom","whichAxes","zoomMode","_whichAxes","onBeforeUpdate","onZoom","panIndexScale","panOptions","panSpeed","panCumulativeDelta","panTimeScale","limitedMax","limitedMin","limitedTimeDelta","panNumericalScale","panScale","doPan","panMode","onPan","getYAxis","category","zoomPlugin","originalOptions","resetZoom","timeOptions","tickOptions","panThreshold","drag","_mouseDownHandler","_dragZoomStart","_mouseMoveHandler","_dragZoomEnd","_mouseUpHandler","yAxis","beginPoint","startX","endX","dragDistance","chartDistance","_wheelHandler","mc","Manager","Pinch","Pan","currentPinchScaling","handlePinch","pointers","xy","currentDeltaX","currentDeltaY","panning","handlePan","_ghostClickHandler","_mc","endPoint","rectWidth","datepicker","regional","closeText","prevText","nextText","currentText","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","weekHeader","dateFormat","firstDay","isRTL","showMonthAfterYear","yearSuffix","setDefaults","gotoToday","_gotoToday","inst","_getInst","_selectDate","_formatDate","JQueryUiDatepickerComponent","datepicker_en_GB","datepicker_cy_GB","changeMonth","showButtonPanel","gotoTodayChangesDate","beforeShow","zIndices","parents","maxZIndex","datepickerZIndex","dpDiv","ariaLabel","getDate","setDate","setMinDate","minDate","setMaxDate","maxDate","ExportDataModalComponent","modalElement","$modalElement","fromField","fromDatepicker","newDate","validateFromField","swapDatepickersIfNeeded","updateFromField","toField","toDatepicker","validateToField","updateToField","validateForm","fromValid","toValid","fromDate","useDateRangeLimit","useDateRange","useParameterId","parameterId","useLocation","open","ViewType","ParameterViewType","_ViewType","StationDataMapper","StationDataService","getStation","withParameters","ajax","Range","getRangePositionWithinRange","inside","outside","bordering","partialSize","partialDirection","DataAvailabilityPlugin","dataSet","loading","hasDataInView","_chart$getDatasetMeta","chunks","getChunksForRange","CanvasResizeNotifierPlugin","hasChangedState","setValue","beforeDraw","AnnotationManager","annotationKeyComponent","graphKeyComponent","_alphaLabelsEnabled","_graphKeyItemsByAnnotationId","useAlphaLabels","useLabels","newLabel","intToAlpha","patchAnnotationById","_nonAlpha","alphaLabel","setItems","int","_drawTime","attachTooltip","annotationId","toggleDrawTime","updateFn","findAnnotationInConfigById","onMouseenter","customTooltip","topCaretYOffset","bold","onMouseleave","annotationOptions","DataAvailabilityComponent","$spinner","$info","hasData","onDataAvailibilityChange","message","NoDataAvailableForCurrentRange","NoDataAvailable","onAnyDataLoaded","onCanvasSizeChange","styles","MobileControlsComponent","panButtons","zoomButtons","direction","TimeFormatId","GraphOptionsEvents","isTimeFormat","isAnnotation","StationParameterGraphComponent","defaultRangeSizeMs","graphOptionsComponent","rangeSelectorComponent","loadingModal","serviceContainer","initialChunksLoaded","rangeSelectorUpdateThrottler","services","dataAvailabilityComponent","buildDataAvailabilityComponent","setXAxisMin","graphConfig","defaultEndDate","setHours","getHours","defaultStartDate","defaultRange","setGraphRange","setRange","dataSetView","dataUpdated","dataSetAdapter","startChunk","updateGraph","onGraphOptionsComponentUpdate","onReset","getRangeForDate","onBeforePanOrZoomUpdate","updateGraphRange","buildMobileControlsComponent","annotationManager","getAllAnnotations","getGraphRange","updateDataSetViewRange","deferredRangeSelectorComponentSetChange","hasValidMin","mobileControlsComponent","dataAvailabilityPlugin","addPlugin","canvasResizeNotifierPlugin","resizeGraph","setTimeFormatTo24Hours","GraphOptionsComponent","titleElement","$optionCheckboxes","optionChanged","_applyingChangeEvent","toggleState","addWindowMouseInteractivityListener","optionId","_optionChanged$split","_optionChanged$split2","isActive","optionChangedEvent","applyOptionChangedEvent","syncAll","CompositeGraphOptionsComponent","componentToUpdate","AnnotationKeyComponent","buildItem","alphaKey","$item","rangeParseRegex","DateRangeSelectorComponent","rangePicker","toDatePicker","applyButton","resetButton","possibleRangeOptions","getRange","datePickerDate","calculateFromDate","rangeMatch","parseRange","subtract","option","selectedIndex","setToDate","getMinutes","getSeconds","getMilliseconds","NEXT_ID","TEMPLATE_FN","LongTermComparison","Back","LongTermComparisonModal","longTermComparisonComponent","$modalContainer","template","modalDom","longTermComparison","mobileHelpIcon","ContextualGraphHelpText","backButton","LongTermRainfallDataService","getData","indexDate","FONT_SIZE","MOBILE","DEFAULT","FONT_COLOUR","BORDER_COLOR","TIME_FORMAT_24_HOURS","TIME_FORMAT_12_HOURS","SHORT_TIME_FORMAT_24_HOURS","SHORT_TIME_FORMAT_12_HOURS","DATE_FORMAT","FULL_DATE_FORMAT","BLUE","GREY","LIGHT_GREEN_1","DARK_GREY","LINE_RED","DEFAULT_TIME_FORMAT_24_HOURS","LANDSCAPE","PORTRAIT","Orientation","landscapeMediaQuery","onOrientationStateChange","lastOrientation","getCurrentOrientation","newOrientation","GraphConfigurationBase","onConfigChanged","GraphConstants","updateResponsiveProperties","orientation","notifyOfNeededUpdates","updateResponsivePropertiesInternal","neededUpdates","updateFontSize","updateAspectRatio","findScaleByIndex","listenForBreakpointChangesFrom","breakpointClass","listenForOrientationChangesFrom","orientationClass","dimension","findPluginInstance","PluginClass","RemovePaddingRightPlugin","afterLayout","widthDiff","LineThroughTooltipPlugin","drawUnderDatasets","YAxisRangePlugin","yTicks","ensureSetTicksMinMax","ensureSetTicksOriginalMinMax","originalMin","originalMax","actualMin","actualMax","barWidth","_chart$scales$xAxis","rangeBuffer","paddedMax","paddedMin","validify","TooltipConfigurationBase","applyTooltipOnRailsPositioning","newYAlign","CumulativeDailyGraphTooltipConfiguration","_TooltipConfiguration","_assertThisInitialized","existingCustom","firstItem","roundedVal","actualDatasetIndex","averageDatasetIndex","actualValueIndex","averageValueIndex","actualValue","averageValue","percentage","isPercentPositive","ScaleConsistentTicksFix","CumulativeDailyGraphConfiguration","_GraphConfigurationBa","tooltipConfig","momentifiedDate","TEMPLATE","CumulativeDailyGraphComponent","neededChanges","renderedComponents","GraphAccessibilityLabel","CumulativeDailyHeading","buildGraph","resetYAxisScale","PreviousMonth","NextMonth","CumulativeDailyMonthSelectorComponent","selectedMonth","$previousButton","$nextButton","selectedMonthText","setMonthLimit","selectMonth","willNotify","currentSelectedMonth","isSame","updateControlStates","updateSelectedText","isAtStartBoundary","isAtEndBoundary","isSameOrBefore","isSameOrAfter","isBefore","isAfter","registerButtonEventHandlersForDom","CumulativeDailyGraphDataSetAdapter","dailyDataSetView","currentMonth","daysInMonth","monthAverageMap","CumulativeActual","MonthlyAverage","buildActualDataset","setMonthUsingDate","buildDayLabelsForMonth","buildAverageDataset","setLongTermAverageData","getMonth","longTermAverageValue","currentDay","averageAmountInMonth","valueForDay","currentChunk","firstDayOfNextMonth","lastValidChunkInMonth","getLastValidChunkInMonth","afterLastValidEntry","lastValidValue","getFullYear","MAX_DATE_MSEC","ParameterDataChunk","isDateInChunk","startInclusive","isDataDateInChunk","sortByDataDateAsc","newNextChunk","versionId","updateData","tryMergeWithNext","canMergeWithNext","mergeWithNext","otherChunk","chunkToMerge","ParameterDataSet","parameterDataService","dataService","chunkLoaded","getChunkForDate","chunksForRange","rangePosition","loadDataForRange","firstChunk","lastChunk","mergeChunks","chunksToPatch","chunkToPatch","updateAllLoadedChunks","chunkUpdateRequests","getUpdates","didMergeWithNext","ParameterAggregateDataSetViewBase","aggregateDataSet","_range","dataRangesRequested","chunksToUpdate","rebuildAggregateChunk","getPartitioner","getOverallAggregateRange","partitioner","startBar","getPartitionRange","endBar","getAllAggregateRanges","currentDate","partition","buildAggregateChunks","currentAggregateChunk","aggregateChunk","currentDataSetChunk","sourceChunks","dataCount","buildNecessaryAggregateChunks","chunksToBuild","endDiff","chunksToBuildArray","MomentUnitPartitioner","MomentDurationOffsettingPartitioner","offsetDuration","dateRange","OffsetDataSetViewChunk","previousRef","nextRef","_offsetRange","_offsetDataRange","isOffsetRangeInvalid","offsetRange","buildOffsetRange","subtractEndTime","getOrCreateInstance","instanceFactory","CumulativeDailyGraphAggregateDataSetView","_ParameterAggregateDa","rainfallReadingOffsetMilliseconds","_dailyPartitioner","getLastValidValueForChunk","GraphKeyItemComponent","visibility","$colour","GraphKeyComponent","classes","SeparateScaleLabelComponent","scaleLabelElement","$scaleLabelElement","onGraphConfigUpdated","showingScaleLabelSeparately","showScaleLabelSeparately","CumulativeDailyGraphContainerComponent","monthSelector","currentMonthSubHeading","Actual","Average","monthPartitioner","newMonthDate","resetAndUpdateGraph","StatefulDataAvailablityComponentProxy","minDataDate","graphConfiguration","buildScaleLabelComponent","$scaleLabelDiv","updateCurrentMonthSubHeading","domElements","dataAvailablityComponentDom","build","separateScaleLabelComponent","preRenderDataAvailabilityComponentState","_construct","InteractionModeKey","NearestWithinChartAreaInteractionModePlugin","addNewInteractionMode","nearestWithinChartArea","nearestFn","nearestResults","MonthlyGraphTooltipConfiguration","MonthlyGraphConfiguration","activeElements","MonthlyGraphComponent","onMonthClicked","monthDate","getMonthDate","relativePosition","hitOnBar","hitOnBarVerticalSlice","MonthlyGraphHeading","MonthlyGraphDataAdapter","ForPrevious12Months","MonthlyGraphContainerComponent","dataAdapter","MonthlyGraphDataSetAdapter","LongTermComparisonComponent","loadingSpinnerElement","graphContainerElement","longTermRainfallDataService","monthly","cumulativeDaily","setLoaded","setLoadingSpinnerVisibility","setGraphsVisibility","DetachedPointsPlugin","afterDatasetUpdate","datasetInfo","patchPointDrawMethod","previousConnected","nextConnected","__DetachedPointsPlugin_detached","__DetachedPointsPlugin","AnnotationBase","RecordLevelAnnotation","_AnnotationBase","record","textToId","TypicalLevelAnnotation","typicalLevel","TypicalLevel","BorderedChartAreaPlugin","PluginPrefix","SwapTooltipTitleAndBodyPlugin","beforeTooltipDraw","ZoomRespectRangesPlugin","patchGlobalZoomMethods","patchedZoomGenericScale","setLinearScaleMinMax","originalMethod","minMaxAccessor","minMaxSetter","_minMaxAccessor","_minMaxAccessor2","rangeMinOptions","rangeSize","minRangeSize","diffRangeSize","newMinMax","respectPanRangeOptions","respectPanRange","diffMin","diffMax","PanFixRangeMinMaxPlugin","patchGlobalPanMethods","patchedPanGenericScale","fixZoomOnPan","diffSize","MIN_VALUE","MAX_VALUE","HysteresisValue","PositionerKey","TooltipNearestOnRailsPositionerPlugin","addNewPositioner","self","positionerOnRails","existingMode","nearestPosition","maxY","lastRailYAlign","_lastRailYAlign","newRailYAlign","AnnotationPositionFixPlugin","lastAnnotation","overlap","neighbourAnnotation","neighbourOverlap","CustomTooltipPlugin","defaultTextStyle","chartJsTooltipVisibilityPredicateForPlugin","tooltipVisibilityPredicates","_tooltip$caretPositio","lineModel","outerPadding","interLinePadding","acc","topCaret","FixLinearScaleForBarChartPlugin","patchMethods","old_linear_getPixelForValue","DynamicRangeMinMaxPlugin","propsToPatch","propToPatch","propPath","HideTooltipOnPanPlugin","predicateForPlugin","TooltipVisibilityPredicatePlugin","predicates","ParameterGraphConfigurationBase","portrait","getRecordLevelAnnotations","getTypicalLevelAnnotation","recordLevels","recordLevel","recordLevelAnnotation","buildRecordLevelAnnotation","typicalLevelAnnotation","buildTypicalLevelAnnotation","timeFormat","shortTimeFormat","ScaleRemoveOutOfChartAreaTicksFix","_scale$options$ticks","increments","increment","StationParameterLevelGraphConfiguration","_ParameterGraphConfig","patchScaleBuildTicks","roughTickSize","flooredMinDate","getTimezoneOffset","patchConvertTicksToLabels","dateLabel","updateRoughTickSize","newRoughTickSize","patched","_arguments","includedDates","theOnlyTimeString","FixMissingTicksPlugin","StationParameterRainfallGraphConfiguration","ParameterDataSetLoader","listenForDataRangeRequestsFrom","loadChunksForRange","wholeRangeToLoad","minChunkLoadingRangeSizeMs","sizeIncrease","utc","endDate","rangesToLoad","rangeToLoad","splitDate","splitRangesForThisRange","spliceArgs","initialChunkRangeSizeMs","ParameterDataService","formatDate","convertDatesInArray","contentType","processData","toISOString","ParameterDataSetView","checkForUnloadedChunks","rangeChunk","currentRangeChunk","relevantRangeChunk","ParameterLinearDataSetAdapter","minTimeMsBetweenDataToNotDrawLine","pushValues","lastItem","ParameterCategoryDataSetAdapter","RainfallAggregateDataSetView","partitionerKey","partitionerChanged","availablePartitioners","selectPartitionerKeyForRange","asMonths","asDays","newPartitionerKey","partitionerKeyHasChanged","PerPartitionSizeYAxisRangeStrategy","aggregateDataSetView","serverParameterGraphConfiguration","yAxisRangeChanged","partitionerKeyToYAxisRangeMap","yAxisRange","FixedYAxisRangeStrategy","PerPartitionSizeXAxisRangeStrategy","xAxisRangeChanged","xScaleOptions","configMin","fourHoursFromNow","ServerParameterGraphConfigurationMapper","ParameterTooltipConfiguration","RainfallTooltipConfiguration","_ParameterTooltipConf","StationParameterGraphServiceContainer","configureServices","underlyingDataSetView","dataSetLoader","RainfallGraphConfiguration","yAxisRangeStrategy","xAxisRangeStrategy","LevelGraphConfiguration","FixedXAxisRangeStrategy","LatestReadingBarComponent","$statusImage","$readingValue","$readingDate","is24Hour","updateDate","getDateTimeFormat","StationParameterComponent","latestReadingBarComponent","graphOptions","buildGraphOptionsComponent","annotationKey","buildAnnotationKeyComponent","graphKey","buildGraphKeyComponent","graphServices","buildStationParameterGraphComponent","longTermComparisonModal","registerLongTermComparisonClickHandler","scaleLabelDiv","showLongTermComparisonModal","useExportDataModal","exportDataModal","minLimit","updateGraphsWhen","updateTriggerEventSource","receiveStationUpdatesFrom","stationUpdateEventSource","longTermDataSetView","parameterTypeNames","parameterTypeName","parameterTypeValue","$contentsOfTabs","$newActiveTabContent","viewContentDiv","Dom7","arr","els","tempParent","toCreate","nodeType","Class","uniqueArray","attrs","attrName","dom7ElementDataStorage","dataKey","elStyle","webkitTransform","webkitTransitionDuration","transitionDuration","eventType","targetSelector","capture","handleLiveEvent","eventData","dom7EventData","unshift","dom7Listeners","proxyListener","dom7LiveListeners","off","_key2","handlers","dom7proxy","_len5","_key5","transitionEnd","fireCallBack","outerWidth","includeMargins","offsetWidth","offsetHeight","clientTop","clientLeft","scrollY","scrollX","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","returnIndex","newChild","tempDiv","prepend","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","foundElements","found","_len6","_key6","toAdd","Methods","transition$1","transitionEnd$1","methodName","Utils","deleteProps","nextTick","delay","getTranslate","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","parseUrlQuery","urlToParse","paramsPart","decodeURIComponent","nextSource","keysArray","nextIndex","nextKey","desc","Support","testDiv","touch","Modernizr","checkTouch","maxTouchPoints","DocumentTouch","pointerEvents","pointerEnabled","PointerEvent","prefixedPointerEvents","msPointerEnabled","checkTransition","transforms3d","csstransforms3d","checkTransforms3d","flexbox","checkFlexbox","observer","checkObserver","passiveListener","checkPassiveListener","supportsPassive","gestures","checkGestures","Browser","isSafari","ua","isIE","isEdge","isUiWebView","SwiperClass","eventsListeners","priority","once","onceHandler","f7proxy","eventsArray","useModulesParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","modulePropName","moduleProp","moduleEventName","installModule","proto","static","install","_len3","_key3","use","_len4","_key4","updateSize","swiper","updateSlides","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesNumberEvenToRows","slidesPerColumn","slidesPerView","slidesPerColumnFill","slideSize","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","boxSizing","swiperSlideSize","centeredSlides","newSlidesGrid","effect","setWrapperSize","slidesGridItem","centerInsufficientSlides","allSlidesSize","slideSizeValue","allSlidesOffset","snap","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","activeSlides","setTransition","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","visibleSlides","slideProgress","minTranslate","slideBefore","slideAfter","isVisible","updateProgress","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","activeSlide","slideDuplicateClass","nextSlide","prevSlide","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","previousTranslate","newProgress","transitionStart","runCallbacks","autoHeight","slideTo","internal","slideIndex","preventInteractionOnTransition","initialSlide","allowSlideNext","allowSlidePrev","onSlideToWrapperTransitionEnd","destroyed","slideToLoop","newIndex","loopedSlides","slideNext","loopFix","_clientLeft","slidePrev","normalizedTranslate","normalizedSnapGrid","prevSnap","prevIndex","slideReset","slideToClosest","currentSnap","nextSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","unsetGrabCursor","grabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","manipulation","Device","device","ios","android","androidChrome","windows","iphone","ipod","ipad","cordova","phonegap","os","osVersion","webView","osVersionArr","metaViewport","minimalUi","onTouchStart","touchEventsData","isTouchEvent","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","screen","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","touchAngle","touchMoveStopPropagation","nested","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","onTouchEnd","touchEndTime","timeDiff","lastClickTime","currentPos","freeModeMomentum","lastMoveEvent","velocityEvent","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","freeModeMomentumBounceRatio","needsLoopFix","freeModeMomentumBounce","freeModeSticky","longSwipesMs","stopIndex","groupSize","longSwipes","longSwipesRatio","shortSwipes","breakpoints","setBreakpoint","newTranslate","autoplay","running","paused","run","preventClicks","preventClicksPropagation","attachEvents","touchEvents","wrapperEl","touchEventsTarget","passiveListeners","detachEvents","_swiper$loopedSlides","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","directionChanged","needsReLoop","changeDirection","breakpointsInverse","addClasses","classNames","suffixes","suffix","containerModifierClass","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","Image","onload","onerror","preloadImages","imagesToLoad","imagesLoaded","updateOnImagesReady","currentSrc","images","wasLocked","navigation","checkOverflow$1","uniqueNavElements","wrapperClass","prototypes","extendedDefaults","Swiper","_SwiperClass","prototypeGroup","protoMethod","moduleParamName","swiperParams","passedParams","swipers","containerEl","newParams","touchEventsTouch","touchEventsDesktop","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","slideEl","deleteInstance","cleanStyles","extendDefaults","newDefaults","Device$1","Support$1","support","Browser$1","browser","Resize","resizeHandler","orientationChangeHandler","Observer","MutationObserver","WebkitMutationObserver","attach","ObserverFunc","mutations","observerUpdate","observe","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","Observer$1","Virtual","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","renderExternal","getSlides","slidesToRender","prependIndexes","appendIndexes","$slideEl","numberOfNewSlides","newCache","cachedIndex","Virtual$1","overwriteParams","Keyboard","handle","kc","charCode","nodeName","keyboard","onlyInViewport","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","enable","disable","Keyboard$1","isEventSupported","isSupported","hasFeature","Mousewheel","lastScrollTime","getEvent","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","releaseOnEdges","rtlFactor","forceToAxis","invert","autoplayDisableOnInteraction","eventsTarged","Mousewheel$1","Navigation","_swiper$navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","nextEl","prevEl","_swiper$navigation2","Navigation$1","hideOnClick","hiddenClass","toEdge","fromEdge","_swiper$navigation3","Pagination","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scaleX","scaleY","progressbarFillClass","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","Pagination$1","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newPos","divider","moveDivider","getPointerPosition","setDragPosition","dragStartPos","positionRatio","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Scrollbar$1","Parallax","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Parallax$1","getDistanceBetweenTouches","onGestureStart","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","minRatio","onGestureEnd","changedTouches","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","in","_in","zoomedSlideClass","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","Zoom$1","touchStart","touchEnd","doubleTap","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","Lazy$1","loadOnTransitionStart","scroll","scrollbarDragMove","LinearSpline","binarySearch","guess","i3","getInterpolateFunction","spline","controlled","multiplier","controlledTranslate","setControlledTranslate","by","inverse","setControlledTransition","Controller$1","a11y","makeElFocusable","addElRole","role","addElLabel","disableEl","enableEl","onEnterKey","$targetEl","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","notification","liveRegion","updateNavigation","_swiper$navigation4","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","A11y","notificationClass","paginationUpdate","History","pushState","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","pathArray","pathname","part","setHistory","slugify","currentState","slideHistory","History$1","HashNavigation","onHashCange","newHash","activeSlideHash","setHash","slideHash","watchState","HashNavigation$1","Autoplay","$activeSlideEl","reverseDirection","stopOnLastSlide","pause","waitForTransition","Autoplay$1","disableOnInteraction","beforeTransitionStart","sliderFirstMove","Fade","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","EffectFade","Cube","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","$cubeShadowEl","shadow","slideAngle","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","scale1","scale2","zFactor","EffectCube","Flip","flipEffect","limitRotation","rotateY","rotateX","EffectFlip","Coverflow","coverflowEffect","depth","slideOffset","offsetMultiplier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","ws","perspectiveOrigin","EffectCoverflow","Thumbs","thumbsParams","thumbs","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","Thumbs$1","slideChange","beforeDestroy","desktopWidthPx","socialMediaShareUrls","StationDetailsPage","viewController","stationDataService","onStationUpdate","registerAutoRefreshListener","views","renderView","exportDataModalComponent","startingParameterId","startingParameterViewType","updateShareModal","_copiedAnimationLock","copyLinkToClipboard","onDesktopMediaQueryStateChange","navigatorCarouselDirection","$navigatoritems","pipelineStartingIndex","$navigatoritem","navigatorCarouselConfig","reachBeginning","reachEnd","navigatorCarousel","updatedStation","updatedParameters","parametersBeforeById","parameterWithUpdates","rerender","initialiseStationNavigatorCarousel","newNavigatorCarouselDirection","parameterUrl","protocol","encodeURIComponent","ta","readOnly","contentEditable","margin","createRange","selectNodeContents","selection","getSelection","removeAllRanges","addRange","setSelectionRange","execCommand"],"mappings":"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CT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,IAAI;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,IAAI;CACV,CAAC,GAAG,EAAE,IAAI;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,IAAI;CACV,CAAC,GAAG,EAAE,IAAI;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,IAAI;CACV,CAAC,GAAG,EAAE,IAAI;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,IAAI;CACV,CAAC,GAAG,EAAE,IAAI;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CACV,CAAC,IAAI,EAAE,GAAG;CA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CACxB,YAAA,OAAO3oG,WAAW,CAAA;YAClB;CAEF;CACA;CACA;CACA;CACA;CACA;CACCg2F,UAAAA,WAAW,EAAE,SAAAA,WAAS3Q,CAAAA,KAAK,EAAE;aAC5B,OAAOA,KAAK,CAAC6jB,QAAQ,CAAA;CACrB,WAAA;UACD,CAAA;;CAED;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;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"}