{"version":3,"file":"8024.b64e659c.js","mappings":"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","sources":["webpack://@finviz/website/../node_modules/copy-to-clipboard/index.js","webpack://@finviz/website/../node_modules/flux/index.js","webpack://@finviz/website/../node_modules/flux/lib/Dispatcher.js","webpack://@finviz/website/../node_modules/flux/lib/invariant.js","webpack://@finviz/website/../node_modules/hammerjs/hammer.js","webpack://@finviz/website/../node_modules/keymirror/index.js","webpack://@finviz/website/../node_modules/prop-types/factoryWithThrowingShims.js","webpack://@finviz/website/../node_modules/prop-types/index.js","webpack://@finviz/website/../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://@finviz/website/../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","webpack://@finviz/website/../node_modules/react-dom/server.browser.js","webpack://@finviz/website/../node_modules/react-fast-compare/index.js","webpack://@finviz/website/../node_modules/react-popper/lib/esm/utils.js","webpack://@finviz/website/../node_modules/react-popper/lib/esm/usePopper.js","webpack://@finviz/website/../node_modules/react-router-dom/dist/index.js","webpack://@finviz/website/../node_modules/react-share/es/FacebookIcon.js","webpack://@finviz/website/../node_modules/react-share/es/FacebookShareButton.js","webpack://@finviz/website/../node_modules/react-share/es/TwitterIcon.js","webpack://@finviz/website/../node_modules/react-share/es/TwitterShareButton.js","webpack://@finviz/website/../node_modules/react-share/es/hocs/createIcon.js","webpack://@finviz/website/../node_modules/react-share/es/ShareButton.js","webpack://@finviz/website/../node_modules/react-share/es/hocs/createShareButton.js","webpack://@finviz/website/../node_modules/react-share/es/utils/assert.js","webpack://@finviz/website/../node_modules/react-share/es/utils/objectToGetParams.js","webpack://@finviz/website/../node_modules/toggle-selection/index.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/32VQXIYR.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/5KB2YIDT.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/JJ3MV4KB.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tab/tab-list.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tab/tab-panel.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/tab/tab-store.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/CQMDBRG5.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tab/tab-provider.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tab/tab.js","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/mutationObserver.mjs","webpack://@finviz/website/../node_modules/@tanstack/react-query/build/lib/useMutation.mjs"],"sourcesContent":["\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","/**\n * Copyright (c) 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nmodule.exports.Dispatcher = require('./lib/Dispatcher')\n","/*\n * Copyright (c) 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Dispatcher\n * @typechecks\n */\n\n\"use strict\";\n\nvar invariant = require('./invariant');\n\nvar _lastID = 1;\nvar _prefix = 'ID_';\n\n/**\n * Dispatcher is used to broadcast payloads to registered callbacks. This is\n * different from generic pub-sub systems in two ways:\n *\n * 1) Callbacks are not subscribed to particular events. Every payload is\n * dispatched to every registered callback.\n * 2) Callbacks can be deferred in whole or part until other callbacks have\n * been executed.\n *\n * For example, consider this hypothetical flight destination form, which\n * selects a default city when a country is selected:\n *\n * var flightDispatcher = new Dispatcher();\n *\n * // Keeps track of which country is selected\n * var CountryStore = {country: null};\n *\n * // Keeps track of which city is selected\n * var CityStore = {city: null};\n *\n * // Keeps track of the base flight price of the selected city\n * var FlightPriceStore = {price: null}\n *\n * When a user changes the selected city, we dispatch the payload:\n *\n * flightDispatcher.dispatch({\n * actionType: 'city-update',\n * selectedCity: 'paris'\n * });\n *\n * This payload is digested by `CityStore`:\n *\n * flightDispatcher.register(function(payload) {\n * if (payload.actionType === 'city-update') {\n * CityStore.city = payload.selectedCity;\n * }\n * });\n *\n * When the user selects a country, we dispatch the payload:\n *\n * flightDispatcher.dispatch({\n * actionType: 'country-update',\n * selectedCountry: 'australia'\n * });\n *\n * This payload is digested by both stores:\n *\n * CountryStore.dispatchToken = flightDispatcher.register(function(payload) {\n * if (payload.actionType === 'country-update') {\n * CountryStore.country = payload.selectedCountry;\n * }\n * });\n *\n * When the callback to update `CountryStore` is registered, we save a reference\n * to the returned token. Using this token with `waitFor()`, we can guarantee\n * that `CountryStore` is updated before the callback that updates `CityStore`\n * needs to query its data.\n *\n * CityStore.dispatchToken = flightDispatcher.register(function(payload) {\n * if (payload.actionType === 'country-update') {\n * // `CountryStore.country` may not be updated.\n * flightDispatcher.waitFor([CountryStore.dispatchToken]);\n * // `CountryStore.country` is now guaranteed to be updated.\n *\n * // Select the default city for the new country\n * CityStore.city = getDefaultCityForCountry(CountryStore.country);\n * }\n * });\n *\n * The usage of `waitFor()` can be chained, for example:\n *\n * FlightPriceStore.dispatchToken =\n * flightDispatcher.register(function(payload) {\n * switch (payload.actionType) {\n * case 'country-update':\n * flightDispatcher.waitFor([CityStore.dispatchToken]);\n * FlightPriceStore.price =\n * getFlightPriceStore(CountryStore.country, CityStore.city);\n * break;\n *\n * case 'city-update':\n * FlightPriceStore.price =\n * FlightPriceStore(CountryStore.country, CityStore.city);\n * break;\n * }\n * });\n *\n * The `country-update` payload will be guaranteed to invoke the stores'\n * registered callbacks in order: `CountryStore`, `CityStore`, then\n * `FlightPriceStore`.\n */\n\n function Dispatcher() {\n this.$Dispatcher_callbacks = {};\n this.$Dispatcher_isPending = {};\n this.$Dispatcher_isHandled = {};\n this.$Dispatcher_isDispatching = false;\n this.$Dispatcher_pendingPayload = null;\n }\n\n /**\n * Registers a callback to be invoked with every dispatched payload. Returns\n * a token that can be used with `waitFor()`.\n *\n * @param {function} callback\n * @return {string}\n */\n Dispatcher.prototype.register=function(callback) {\n var id = _prefix + _lastID++;\n this.$Dispatcher_callbacks[id] = callback;\n return id;\n };\n\n /**\n * Removes a callback based on its token.\n *\n * @param {string} id\n */\n Dispatcher.prototype.unregister=function(id) {\n invariant(\n this.$Dispatcher_callbacks[id],\n 'Dispatcher.unregister(...): `%s` does not map to a registered callback.',\n id\n );\n delete this.$Dispatcher_callbacks[id];\n };\n\n /**\n * Waits for the callbacks specified to be invoked before continuing execution\n * of the current callback. This method should only be used by a callback in\n * response to a dispatched payload.\n *\n * @param {array} ids\n */\n Dispatcher.prototype.waitFor=function(ids) {\n invariant(\n this.$Dispatcher_isDispatching,\n 'Dispatcher.waitFor(...): Must be invoked while dispatching.'\n );\n for (var ii = 0; ii < ids.length; ii++) {\n var id = ids[ii];\n if (this.$Dispatcher_isPending[id]) {\n invariant(\n this.$Dispatcher_isHandled[id],\n 'Dispatcher.waitFor(...): Circular dependency detected while ' +\n 'waiting for `%s`.',\n id\n );\n continue;\n }\n invariant(\n this.$Dispatcher_callbacks[id],\n 'Dispatcher.waitFor(...): `%s` does not map to a registered callback.',\n id\n );\n this.$Dispatcher_invokeCallback(id);\n }\n };\n\n /**\n * Dispatches a payload to all registered callbacks.\n *\n * @param {object} payload\n */\n Dispatcher.prototype.dispatch=function(payload) {\n invariant(\n !this.$Dispatcher_isDispatching,\n 'Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch.'\n );\n this.$Dispatcher_startDispatching(payload);\n try {\n for (var id in this.$Dispatcher_callbacks) {\n if (this.$Dispatcher_isPending[id]) {\n continue;\n }\n this.$Dispatcher_invokeCallback(id);\n }\n } finally {\n this.$Dispatcher_stopDispatching();\n }\n };\n\n /**\n * Is this Dispatcher currently dispatching.\n *\n * @return {boolean}\n */\n Dispatcher.prototype.isDispatching=function() {\n return this.$Dispatcher_isDispatching;\n };\n\n /**\n * Call the callback stored with the given id. Also do some internal\n * bookkeeping.\n *\n * @param {string} id\n * @internal\n */\n Dispatcher.prototype.$Dispatcher_invokeCallback=function(id) {\n this.$Dispatcher_isPending[id] = true;\n this.$Dispatcher_callbacks[id](this.$Dispatcher_pendingPayload);\n this.$Dispatcher_isHandled[id] = true;\n };\n\n /**\n * Set up bookkeeping needed when dispatching.\n *\n * @param {object} payload\n * @internal\n */\n Dispatcher.prototype.$Dispatcher_startDispatching=function(payload) {\n for (var id in this.$Dispatcher_callbacks) {\n this.$Dispatcher_isPending[id] = false;\n this.$Dispatcher_isHandled[id] = false;\n }\n this.$Dispatcher_pendingPayload = payload;\n this.$Dispatcher_isDispatching = true;\n };\n\n /**\n * Clear bookkeeping used for dispatching.\n *\n * @internal\n */\n Dispatcher.prototype.$Dispatcher_stopDispatching=function() {\n this.$Dispatcher_pendingPayload = null;\n this.$Dispatcher_isDispatching = false;\n };\n\n\nmodule.exports = Dispatcher;\n","/**\n * Copyright (c) 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule invariant\n */\n\n\"use strict\";\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (false) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n 'Invariant Violation: ' +\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\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.\\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","/**\n * Copyright 2013-2014 Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n\"use strict\";\n\n/**\n * Constructs an enumeration with keys equal to their value.\n *\n * For example:\n *\n * var COLORS = keyMirror({blue: null, red: null});\n * var myColor = COLORS.blue;\n * var isColorValid = !!COLORS[myColor];\n *\n * The last line could not be performed if the values of the generated enum were\n * not equal to their keys.\n *\n * Input: {key1: val1, key2: val2}\n * Output: {key1: key1, key2: key2}\n *\n * @param {object} obj\n * @return {object}\n */\nvar keyMirror = function(obj) {\n var ret = {};\n var key;\n if (!(obj instanceof Object && !Array.isArray(obj))) {\n throw new Error('keyMirror(...): Argument must be an object.');\n }\n for (key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n ret[key] = key;\n }\n return ret;\n};\n\nmodule.exports = keyMirror;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v17.0.2\n * react-dom-server.browser.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var l=require(\"object-assign\"),m=require(\"react\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cK;K++)J[K]=K+1;J[15]=0;var oa=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,pa=Object.prototype.hasOwnProperty,qa={},ra={};\nfunction sa(a){if(pa.call(ra,a))return!0;if(pa.call(qa,a))return!1;if(oa.test(a))return ra[a]=!0;qa[a]=!0;return!1}function ta(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction ua(a,b,c,d){if(null===b||\"undefined\"===typeof b||ta(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function M(a,b,c,d,f,h,t){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=f;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=h;this.removeEmptyString=t}var N={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){N[a]=new M(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];N[b]=new M(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){N[a]=new M(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){N[a]=new M(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){N[a]=new M(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){N[a]=new M(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){N[a]=new M(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){N[a]=new M(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){N[a]=new M(a,5,!1,a.toLowerCase(),null,!1,!1)});var va=/[\\-:]([a-z])/g;function wa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(va,\nwa);N[b]=new M(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(va,wa);N[b]=new M(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(va,wa);N[b]=new M(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){N[a]=new M(a,1,!1,a.toLowerCase(),null,!1,!1)});\nN.xlinkHref=new M(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){N[a]=new M(a,1,!1,a.toLowerCase(),null,!0,!0)});var xa=/[\"'&<>]/;\nfunction O(a){if(\"boolean\"===typeof a||\"number\"===typeof a)return\"\"+a;a=\"\"+a;var b=xa.exec(a);if(b){var c=\"\",d,f=0;for(d=b.index;dV))throw Error(p(301));if(a===P)if(T=!0,a={action:c,next:null},null===U&&(U=new Map),c=U.get(b),void 0===c)U.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}}function Ja(){}\nvar X=null,Ka={readContext:function(a){var b=X.threadID;I(a,b);return a[b]},useContext:function(a){W();var b=X.threadID;I(a,b);return a[b]},useMemo:Ia,useReducer:Ga,useRef:function(a){P=W();R=Ca();var b=R.memoizedState;return null===b?(a={current:a},R.memoizedState=a):b},useState:function(a){return Ga(Fa,a)},useLayoutEffect:function(){},useCallback:function(a,b){return Ia(function(){return a},b)},useImperativeHandle:Ja,useEffect:Ja,useDebugValue:Ja,useDeferredValue:function(a){W();return a},useTransition:function(){W();\nreturn[function(a){a()},!1]},useOpaqueIdentifier:function(){return(X.identifierPrefix||\"\")+\"R:\"+(X.uniqueID++).toString(36)},useMutableSource:function(a,b){W();return b(a._source)}},La={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};function Ma(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nvar Na={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Oa=l({menuitem:!0},Na),Y={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,\ngridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Pa=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(Y).forEach(function(a){Pa.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);Y[b]=Y[a]})});\nvar Qa=/([A-Z])/g,Ra=/^ms-/,Z=m.Children.toArray,Sa=la.ReactCurrentDispatcher,Ta={listing:!0,pre:!0,textarea:!0},Ua=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,Va={},Wa={};function Xa(a){if(void 0===a||null===a)return a;var b=\"\";m.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}var Ya=Object.prototype.hasOwnProperty,Za={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null,suppressHydrationWarning:null};function $a(a,b){if(void 0===a)throw Error(p(152,F(b)||\"Component\"));}\nfunction ab(a,b,c){function d(d,h){var e=h.prototype&&h.prototype.isReactComponent,f=na(h,b,c,e),t=[],g=!1,n={isMounted:function(){return!1},enqueueForceUpdate:function(){if(null===t)return null},enqueueReplaceState:function(a,c){g=!0;t=[c]},enqueueSetState:function(a,c){if(null===t)return null;t.push(c)}};if(e){if(e=new h(d.props,f,n),\"function\"===typeof h.getDerivedStateFromProps){var k=h.getDerivedStateFromProps.call(null,d.props,e.state);null!=k&&(e.state=l({},e.state,k))}}else if(P={},e=h(d.props,\nf,n),e=Da(h,d.props,e,f),null==e||null==e.render){a=e;$a(a,h);return}e.props=d.props;e.context=f;e.updater=n;n=e.state;void 0===n&&(e.state=n=null);if(\"function\"===typeof e.UNSAFE_componentWillMount||\"function\"===typeof e.componentWillMount)if(\"function\"===typeof e.componentWillMount&&\"function\"!==typeof h.getDerivedStateFromProps&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof h.getDerivedStateFromProps&&e.UNSAFE_componentWillMount(),t.length){n=t;var v=\ng;t=null;g=!1;if(v&&1===n.length)e.state=n[0];else{k=v?n[0]:e.state;var H=!0;for(v=v?1:0;v=g))throw Error(p(304));var e=new Uint16Array(g);e.set(d);J=e;J[0]=c+1;for(d=c;d=e.children.length){var L=e.footer;\"\"!==L&&(this.previousWasTextNode=!1);this.stack.pop();if(\"select\"===e.type)this.currentSelectValue=null;else if(null!=e.type&&null!=e.type.type&&e.type.type.$$typeof===B)this.popProvider(e.type);else if(e.type===D){this.suspenseDepth--;var G=h.pop();if(t){t=!1;var C=e.fallbackFrame;if(!C)throw Error(p(303));this.stack.push(C);h[this.suspenseDepth]+=\"\\x3c!--$!--\\x3e\";continue}else h[this.suspenseDepth]+=\nG}h[this.suspenseDepth]+=L}else{var n=e.children[e.childIndex++],k=\"\";try{k+=this.render(n,e.context,e.domNamespace)}catch(v){if(null!=v&&\"function\"===typeof v.then)throw Error(p(294));throw v;}finally{}h.length<=this.suspenseDepth&&h.push(\"\");h[this.suspenseDepth]+=k}}return h[0]}finally{Sa.current=c,X=b,Ea()}};b.render=function(a,b,f){if(\"string\"===typeof a||\"number\"===typeof a){f=\"\"+a;if(\"\"===f)return\"\";if(this.makeStaticMarkup)return O(f);if(this.previousWasTextNode)return\"\\x3c!-- --\\x3e\"+O(f);\nthis.previousWasTextNode=!0;return O(f)}b=ab(a,b,this.threadID);a=b.child;b=b.context;if(null===a||!1===a)return\"\";if(!m.isValidElement(a)){if(null!=a&&null!=a.$$typeof){f=a.$$typeof;if(f===q)throw Error(p(257));throw Error(p(258,f.toString()));}a=Z(a);this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"});return\"\"}var c=a.type;if(\"string\"===typeof c)return this.renderDOM(a,b,f);switch(c){case ka:case ja:case u:case z:case ca:case r:return a=Z(a.props.children),this.stack.push({type:null,\ndomNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\"\";case D:throw Error(p(294));case ia:throw Error(p(343));}if(\"object\"===typeof c&&null!==c)switch(c.$$typeof){case ba:P={};var d=c.render(a.props,a.ref);d=Da(c.render,a.props,d,a.ref);d=Z(d);this.stack.push({type:null,domNamespace:f,children:d,childIndex:0,context:b,footer:\"\"});return\"\";case da:return a=[m.createElement(c.type,l({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\n\"\";case B:return c=Z(a.props.children),f={type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"},this.pushProvider(a),this.stack.push(f),\"\";case aa:c=a.type;d=a.props;var g=this.threadID;I(c,g);c=Z(d.children(c[g]));this.stack.push({type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"});return\"\";case ha:throw Error(p(338));case ea:return c=a.type,d=c._init,c=d(c._payload),a=[m.createElement(c,l({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,\ncontext:b,footer:\"\"}),\"\"}throw Error(p(130,null==c?c:typeof c,\"\"));};b.renderDOM=function(a,b,f){var c=a.type.toLowerCase();f===La.html&&Ma(c);if(!Va.hasOwnProperty(c)){if(!Ua.test(c))throw Error(p(65,c));Va[c]=!0}var d=a.props;if(\"input\"===c)d=l({type:void 0},d,{defaultChecked:void 0,defaultValue:void 0,value:null!=d.value?d.value:d.defaultValue,checked:null!=d.checked?d.checked:d.defaultChecked});else if(\"textarea\"===c){var g=d.value;if(null==g){g=d.defaultValue;var e=d.children;if(null!=e){if(null!=\ng)throw Error(p(92));if(Array.isArray(e)){if(!(1>=e.length))throw Error(p(93));e=e[0]}g=\"\"+e}null==g&&(g=\"\")}d=l({},d,{value:void 0,children:\"\"+g})}else if(\"select\"===c)this.currentSelectValue=null!=d.value?d.value:d.defaultValue,d=l({},d,{value:void 0});else if(\"option\"===c){e=this.currentSelectValue;var L=Xa(d.children);if(null!=e){var G=null!=d.value?d.value+\"\":L;g=!1;if(Array.isArray(e))for(var C=0;C\":(w+=\">\",g=\"\");a:{e=d.dangerouslySetInnerHTML;if(null!=e){if(null!=e.__html){e=e.__html;break a}}else if(e=d.children,\"string\"===typeof e||\"number\"===typeof e){e=O(e);break a}e=null}null!=e?(d=[],Ta.hasOwnProperty(c)&&\"\\n\"===e.charAt(0)&&(w+=\"\\n\"),w+=e):d=Z(d.children);a=a.type;f=null==f||\"http://www.w3.org/1999/xhtml\"===f?Ma(a):\"http://www.w3.org/2000/svg\"===\nf&&\"foreignObject\"===a?\"http://www.w3.org/1999/xhtml\":f;this.stack.push({domNamespace:f,type:c,children:d,childIndex:0,context:b,footer:g});this.previousWasTextNode=!1;return w};return a}();exports.renderToNodeStream=function(){throw Error(p(207));};exports.renderToStaticMarkup=function(a,b){a=new bb(a,!0,b);try{return a.read(Infinity)}finally{a.destroy()}};exports.renderToStaticNodeStream=function(){throw Error(p(208));};exports.renderToString=function(a,b){a=new bb(a,!1,b);try{return a.read(Infinity)}finally{a.destroy()}};\nexports.version=\"17.0.2\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-dom-server.browser.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom-server.browser.development.js');\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","/**\n * React Router DOM v6.16.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_mapRouteProperties, Router, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, UNSAFE_DataRouterStateContext, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, unstable_useBlocker, UNSAFE_DataRouterContext } from 'react-router';\nexport { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, RouterProvider, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, resolvePath, unstable_useBlocker, useActionData, useAsyncError, useAsyncValue, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router';\nimport { stripBasename, UNSAFE_warning, createRouter, createBrowserHistory, createHashHistory, UNSAFE_ErrorResponseImpl, UNSAFE_invariant, joinPaths } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nconst defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\nfunction isHtmlElement(object) {\n return object != null && typeof object.tagName === \"string\";\n}\nfunction isButtonElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\nfunction isFormElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\nfunction isInputElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nfunction shouldProcessLinkClick(event, target) {\n return event.button === 0 && (\n // Ignore everything but left clicks\n !target || target === \"_self\") &&\n // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ;\n}\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nfunction createSearchParams(init) {\n if (init === void 0) {\n init = \"\";\n }\n return new URLSearchParams(typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]);\n }, []));\n}\nfunction getSearchParamsForLocation(locationSearch, defaultSearchParams) {\n let searchParams = createSearchParams(locationSearch);\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n });\n }\n return searchParams;\n}\n// One-time check for submitter support\nlet _formDataSupportsSubmitter = null;\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0);\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\nconst supportedFormEncTypes = new Set([\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"]);\nfunction getFormEncType(encType) {\n if (encType != null && !supportedFormEncTypes.has(encType)) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"\\\"\" + encType + \"\\\" is not a valid `encType` for `
`/`` \" + (\"and will default to \\\"\" + defaultEncType + \"\\\"\")) : void 0;\n return null;\n }\n return encType;\n}\nfunction getFormSubmissionInfo(target, basename) {\n let method;\n let action;\n let encType;\n let formData;\n let body;\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(target);\n } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n let form = target.form;\n if (form == null) {\n throw new Error(\"Cannot submit a