{"version":3,"file":"polyfills.js","mappings":"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","sources":["./src/polyfills.ts","./node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js","./node_modules/hammerjs/hammer.js","./node_modules/zone.js/fesm2015/zone.js"],"sourcesContent":["/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\r\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/guide/browser-support\r\n */\r\n\r\n/***************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n/** IE9, IE10, IE11, and older Chrome requires all of the following polyfills. **/\r\n// import 'core-js/es6/symbol';\r\n// import 'core-js/es6/object';\r\n// import 'core-js/es6/function';\r\n// import 'core-js/es6/parse-int';\r\n// import 'core-js/es6/parse-float';\r\n// import 'core-js/es6/number';\r\n// import 'core-js/es6/math';\r\n// import 'core-js/es6/string';\r\n// import 'core-js/es6/date';\r\n// import 'core-js/es6/array';\r\n// import 'core-js/es6/regexp';\r\n// import 'core-js/es6/map';\r\n// import 'core-js/es6/weak-map';\r\n// import 'core-js/es6/set';\r\n\r\n/**\r\n * If the application will be indexed by Google Search, the following is required.\r\n * Googlebot uses a renderer based on Chrome 41.\r\n * https://developers.google.com/search/docs/guides/rendering\r\n **/\r\n// import 'core-js/es6/array';\r\n\r\n/** IE10 and IE11 requires the following for the Reflect API. */\r\n// import 'core-js/es6/reflect';\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n * because those flags need to be set before `zone.js` being loaded, and webpack\r\n * will put import in the top of bundle, so user need to create a separate file\r\n * in this directory (for example: zone-flags.ts), and put the following flags\r\n * into that file, and then add the following code before importing zone.js.\r\n * import './zone-flags.ts';\r\n *\r\n * The flags allowed in zone-flags.ts are listed here.\r\n *\r\n * The following flags will work for all browsers.\r\n *\r\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n * (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n *\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n *\r\n * (window as any).__Zone_enable_cross_context_check = true;\r\n *\r\n */\r\n\r\n/***************************************************************************************************\r\n * Zone JS is required by default for Angular itself.\r\n */\r\nimport 'zone.js'; // Included with Angular CLI.\r\n/***************************************************************************************************\r\n * APPLICATION IMPORTS\r\n */\r\nimport '@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js';\r\nimport 'hammerjs';\r\n","/**\n@license @nocompile\nCopyright (c) 2018 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\nThe complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\nThe complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\nCode distributed by Google as part of the polymer project is also\nsubject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n*/\n(function () {\n 'use strict';\n\n (function(){if(void 0===window.Reflect||void 0===window.customElements||window.customElements.polyfillWrapFlushCallback)return;const a=HTMLElement;window.HTMLElement={HTMLElement:function HTMLElement(){return Reflect.construct(a,[],this.constructor)}}.HTMLElement,HTMLElement.prototype=a.prototype,HTMLElement.prototype.constructor=HTMLElement,Object.setPrototypeOf(HTMLElement,a);})();\n\n}());\n","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","'use strict';\n/**\n * @license Angular v\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\nconst global = globalThis;\n// __Zone_symbol_prefix global can be used to override the default zone\n// symbol prefix with a custom one if needed.\nfunction __symbol__(name) {\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n return symbolPrefix + name;\n}\nfunction initZone() {\n const performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n class ZoneImpl {\n // tslint:disable-next-line:require-internal-with-underscore\n static { this.__symbol__ = __symbol__; }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = ZoneImpl.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() {\n return _currentZoneFrame.zone;\n }\n static get currentTask() {\n return _currentTask;\n }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn, ignoreDuplicate = false) {\n if (patches.hasOwnProperty(name)) {\n // `checkDuplicate` option is defined from global variable\n // so it works for all modules.\n // `ignoreDuplicate` can work for the specified module\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (!ignoreDuplicate && checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, ZoneImpl, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() {\n return this._parent;\n }\n get name() {\n return this._name;\n }\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = (zoneSpec && zoneSpec.properties) || {};\n this._zoneDelegate = new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name +\n '; Execution: ' +\n this.name +\n ')');\n }\n const zoneTask = task;\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n const { type, data: { isPeriodic = false, isRefreshable = false } = {} } = task;\n if (task.state === notScheduled && (type === eventTask || type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && zoneTask._transitionTo(running, scheduled);\n const previousTask = _currentTask;\n _currentTask = zoneTask;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (type == macroTask && task.data && !isPeriodic && !isRefreshable) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, zoneTask, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n const state = task.state;\n if (state !== notScheduled && state !== unknown) {\n if (type == eventTask || isPeriodic || (isRefreshable && state === scheduling)) {\n reEntryGuard && zoneTask._transitionTo(scheduled, running, scheduling);\n }\n else {\n const zoneDelegates = zoneTask._zoneDelegates;\n this._updateTaskCount(zoneTask, -1);\n reEntryGuard && zoneTask._transitionTo(notScheduled, running, notScheduled);\n if (isRefreshable) {\n zoneTask._zoneDelegates = zoneDelegates;\n }\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name +\n '; Execution: ' +\n this.name +\n ')');\n if (task.state !== scheduled && task.state !== running) {\n return;\n }\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = -1;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task),\n };\n class _ZoneDelegate {\n get zone() {\n return this._zone;\n }\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = {\n 'microTask': 0,\n 'macroTask': 0,\n 'eventTask': 0,\n };\n this._zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this._zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this._zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this._zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this._zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt =\n zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this._zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this._zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this._zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = this._zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this._zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this._zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this._zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS\n ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec)\n : new ZoneImpl(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS\n ? this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source)\n : callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS\n ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source)\n : callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS\n ? this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error)\n : true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS\n ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs)\n : task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = (counts[type] = prev + count);\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type,\n };\n this.hasTask(this._zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() {\n return this._zone;\n }\n get state() {\n return this._state;\n }\n cancelScheduleRequest() {\n this._transitionTo(notScheduled, scheduling);\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? \" or '\" + fromState2 + \"'\" : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount,\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function nativeScheduleMicroTask(func) {\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, func);\n }\n else {\n global[symbolSetTimeout](func, 0);\n }\n }\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n nativeScheduleMicroTask(drainMicroTaskQueue);\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !ZoneImpl[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop,\n nativeScheduleMicroTask: nativeScheduleMicroTask,\n };\n let _currentZoneFrame = { parent: null, zone: new ZoneImpl(null, null) };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return ZoneImpl;\n}\n\nfunction loadZone() {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n const global = globalThis;\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone'] && (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function')) {\n throw new Error('Zone already loaded.');\n }\n // Initialize global `Zone` constant.\n global['Zone'] ??= initZone();\n return global['Zone'];\n}\n\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nconst ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nconst ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nconst ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nconst ObjectCreate = Object.create;\n/** Array.prototype.slice */\nconst ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nconst ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nconst REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nconst ZONE_SYMBOL_ADD_EVENT_LISTENER = __symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nconst ZONE_SYMBOL_REMOVE_EVENT_LISTENER = __symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nconst TRUE_STR = 'true';\n/** false string const */\nconst FALSE_STR = 'false';\n/** Zone symbol prefix string const. */\nconst ZONE_SYMBOL_PREFIX = __symbol__('');\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nconst zoneSymbol = __symbol__;\nconst isWindowExists = typeof window !== 'undefined';\nconst internalWindow = isWindowExists ? window : undefined;\nconst _global = (isWindowExists && internalWindow) || globalThis;\nconst REMOVE_ATTRIBUTE = 'removeAttribute';\nfunction bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nconst isWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope;\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isNode = !('nw' in _global) &&\n typeof _global.process !== 'undefined' &&\n _global.process.toString() === '[object process]';\nconst isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isMix = typeof _global.process !== 'undefined' &&\n _global.process.toString() === '[object process]' &&\n !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nconst zoneSymbolEventNames$1 = {};\nconst enableBeforeunloadSymbol = zoneSymbol('enable_beforeunload');\nconst wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames$1[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signature\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result =\n listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (\n // https://github.com/angular/angular/issues/47579\n // https://www.w3.org/TR/2011/WD-html5-20110525/history.html#beforeunloadevent\n // This is the only specific case we should check for. The spec defines that the\n // `returnValue` attribute represents the message to show the user. When the event\n // is created, this attribute must be set to the empty string.\n event.type === 'beforeunload' &&\n // To prevent any breaking changes resulting from this change, given that\n // it was already causing a significant number of failures in G3, we have hidden\n // that behavior behind a global configuration flag. Consumers can enable this\n // flag explicitly if they want the `beforeunload` event to be handled as defined\n // in the specification.\n _global[enableBeforeunloadSymbol] &&\n // The IDL event definition is `attribute DOMString returnValue`, so we check whether\n // `typeof result` is a string.\n typeof result === 'string') {\n event.returnValue = result;\n }\n else if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // slice(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.slice(2);\n let eventNameSymbol = zoneSymbolEventNames$1[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n const previousValue = target[eventNameSymbol];\n if (typeof previousValue === 'function') {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n originalDescSet && originalDescSet.call(target, null);\n target[eventNameSymbol] = newValue;\n if (typeof newValue === 'function') {\n target.addEventListener(eventName, wrapFn, false);\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.slice(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nconst originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () { });\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n },\n });\n }\n })(prop);\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n}\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nlet isDetectedIEOrEdge = false;\nlet ieOrEdge = false;\nfunction isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) { }\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) { }\n return ieOrEdge;\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction isNumber(value) {\n return typeof value === 'number';\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\n// Note that passive event listeners are now supported by most modern browsers,\n// including Chrome, Firefox, Safari, and Edge. There's a pending change that\n// would remove support for legacy browsers by zone.js. Removing `passiveSupported`\n// from the codebase will reduce the final code size for existing apps that still use zone.js.\nlet passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n },\n });\n // Note: We pass the `options` object as the event handler too. This is not compatible with the\n // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n // without an actual handler.\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nconst OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true,\n};\nconst zoneSymbolEventNames = {};\nconst globalSources = {};\nconst EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\nconst IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\nfunction prepareEventNames(eventName, eventNameToString) {\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n}\nfunction patchEventTarget(_global, api, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n // need to try/catch error here, otherwise, the error in one event listener\n // will break the executions of the other event listeners. Also error will\n // not remove the event listener when `once` options is true.\n let error;\n try {\n task.invoke(task, target, [event]);\n }\n catch (err) {\n error = err;\n }\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n return error;\n };\n function globalCallback(context, event, isCapture) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = context || event.target || _global;\n const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n if (tasks) {\n const errors = [];\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n const err = invokeTask(tasks[0], target, event);\n err && errors.push(err);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n const err = invokeTask(copyTasks[i], target, event);\n err && errors.push(err);\n }\n }\n // Since there is only one error, we don't need to schedule microTask\n // to throw the error.\n if (errors.length === 1) {\n throw errors[0];\n }\n else {\n for (let i = 0; i < errors.length; i++) {\n const err = errors[i];\n api.nativeScheduleMicroTask(() => {\n throw err;\n });\n }\n }\n }\n }\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n return globalCallback(this, event, false);\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n return globalCallback(this, event, true);\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // We use a shared global `taskData` to pass data for `scheduleEventTask`,\n // eliminating the need to create a new object solely for passing data.\n // WARNING: This object has a static lifetime, meaning it is not created\n // each time `addEventListener` is called. It is instantiated only once\n // and captured by reference inside the `addEventListener` and\n // `removeEventListener` functions. Do not add any new properties to this\n // object, as doing so would necessitate maintaining the information\n // between `addEventListener` calls.\n const taskData = {};\n const nativeAddEventListener = (proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER]);\n const nativeRemoveEventListener = (proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER]);\n const nativeListeners = (proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER]);\n const nativeRemoveAllListeners = (proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER]);\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return { ...options, passive: true };\n }\n return options;\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n /**\n * In the context of events and listeners, this function will be\n * called at the end by `cancelTask`, which, in turn, calls `task.cancelFn`.\n * Cancelling a task is primarily used to remove event listeners from\n * the task target.\n */\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (task.removeAbortListener) {\n task.removeAbortListener();\n task.removeAbortListener = null;\n }\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return ((typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate));\n };\n const compare = patchOptions && patchOptions.diff ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')];\n const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n function copyEventListenerOptions(options) {\n if (typeof options === 'object' && options !== null) {\n // We need to destructure the target `options` object since it may\n // be frozen or sealed (possibly provided implicitly by a third-party\n // library), or its properties may be readonly.\n const newOptions = { ...options };\n // The `signal` option was recently introduced, which caused regressions in\n // third-party scenarios where `AbortController` was directly provided to\n // `addEventListener` as options. For instance, in cases like\n // `document.addEventListener('keydown', callback, abortControllerInstance)`,\n // which is valid because `AbortController` includes a `signal` getter, spreading\n // `{...options}` wouldn't copy the `signal`. Additionally, using `Object.create`\n // isn't feasible since `AbortController` is a built-in object type, and attempting\n // to create a new object directly with it as the prototype might result in\n // unexpected behavior.\n if (options.signal) {\n newOptions.signal = options.signal;\n }\n return newOptions;\n }\n return options;\n }\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n const options = copyEventListenerOptions(buildEventListenerOptions(arguments[2], passive));\n const signal = options?.signal;\n if (signal?.aborted) {\n // the signal is an aborted one, just return without attaching the event listener.\n return;\n }\n if (unpatchedEvents) {\n // check unpatched list\n for (let i = 0; i < unpatchedEvents.length; i++) {\n if (eventName === unpatchedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const once = options && typeof options === 'object' ? options.once : false;\n const zone = Zone.current;\n let symbolEventNames = zoneSymbolEventNames[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames[eventName];\n }\n const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source =\n constructorName +\n addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // In the code below, `options` should no longer be reassigned; instead, it\n // should only be mutated. This is because we pass that object to the native\n // `addEventListener`.\n // It's generally recommended to use the same object reference for options.\n // This ensures consistency and avoids potential issues.\n taskData.options = options;\n if (once) {\n // When using `addEventListener` with the `once` option, we don't pass\n // the `once` option directly to the native `addEventListener` method.\n // Instead, we keep the `once` setting and handle it ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n if (signal) {\n // When using `addEventListener` with the `signal` option, we don't pass\n // the `signal` option directly to the native `addEventListener` method.\n // Instead, we keep the `signal` setting and handle it ourselves.\n taskData.options.signal = undefined;\n }\n // The `scheduleEventTask` function will ultimately call `customScheduleGlobal`,\n // which in turn calls the native `addEventListener`. This is why `taskData.options`\n // is updated before scheduling the task, as `customScheduleGlobal` uses\n // `taskData.options` to pass it to the native `addEventListener`.\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n if (signal) {\n // after task is scheduled, we need to store the signal back to task.options\n taskData.options.signal = signal;\n // Wrapping `task` in a weak reference would not prevent memory leaks. Weak references are\n // primarily used for preventing strong references cycles. `onAbort` is always reachable\n // as it's an event listener, so its closure retains a strong reference to the `task`.\n const onAbort = () => task.zone.cancelTask(task);\n nativeListener.call(signal, 'abort', onAbort, { once: true });\n // We need to remove the `abort` listener when the event listener is going to be removed,\n // as it creates a closure that captures `task`. This closure retains a reference to the\n // `task` object even after it goes out of scope, preventing `task` from being garbage\n // collected.\n task.removeAbortListener = () => signal.removeEventListener('abort', onAbort);\n }\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n taskData.options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n // `existingTasks` may not exist if the `addEventListener` was called before\n // it was patched by zone.js. Please refer to the attached issue for\n // clarification, particularly after the `if` condition, before calling\n // the native `removeEventListener`.\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates with capture=false were removed\n // https:// github.com/angular/angular/issues/31643\n // https://github.com/angular/angular/issues/54581\n if (!capture && typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n // In all other conditions, when `addEventListener` is called after being\n // patched by zone.js, we would always find an event task on the `EventTarget`.\n // This will trigger `cancelFn` on the `existingTask`, leading to `customCancelGlobal`,\n // which ultimately removes an event listener and cleans up the abort listener\n // (if an `AbortSignal` was provided when scheduling a task).\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // https://github.com/angular/zone.js/issues/930\n // We may encounter a situation where the `addEventListener` was\n // called on the event target before zone.js is loaded, resulting\n // in no task being stored on the event target due to its invocation\n // of the native implementation. In this scenario, we simply need to\n // invoke the native `removeEventListener`.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n if (!eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n let symbolEventName = zoneSymbolEventNames[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames[eventName];\n }\n const captureFalseTasks = target[symbolEventName[FALSE_STR]];\n const captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks\n ? captureFalseTasks.concat(captureTrueTasks)\n : captureFalseTasks.slice();\n }\n}\nfunction patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n });\n }\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nfunction patchQueueMicrotask(global, api) {\n api.patchMethod(global, 'queueMicrotask', (delegate) => {\n return function (self, args) {\n Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n };\n });\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nconst taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n data.args[0] = function () {\n return task.invoke.apply(this, arguments);\n };\n const handleOrId = setNative.apply(window, data.args);\n // Whlist on Node.js when get can the ID by using `[Symbol.toPrimitive]()` we do\n // to this so that we do not cause potentally leaks when using `setTimeout`\n // since this can be periodic when using `.refresh`.\n if (isNumber(handleOrId)) {\n data.handleId = handleOrId;\n }\n else {\n data.handle = handleOrId;\n // On Node.js a timeout and interval can be restarted over and over again by using the `.refresh` method.\n data.isRefreshable = isFunction(handleOrId.refresh);\n }\n return task;\n }\n function clearTask(task) {\n const { handle, handleId } = task.data;\n return clearNative.call(window, handle ?? handleId);\n }\n setNative = patchMethod(window, setName, (delegate) => function (self, args) {\n if (isFunction(args[0])) {\n const options = {\n isRefreshable: false,\n isPeriodic: nameSuffix === 'Interval',\n delay: nameSuffix === 'Timeout' || nameSuffix === 'Interval' ? args[1] || 0 : undefined,\n args: args,\n };\n const callback = args[0];\n args[0] = function timer() {\n try {\n return callback.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n // https://github.com/angular/angular/issues/40387\n // Cleanup tasksByHandleId should be handled before scheduleTask\n // Since some zoneSpec may intercept and doesn't trigger\n // scheduleFn(scheduleTask) provided here.\n const { handle, handleId, isPeriodic, isRefreshable } = options;\n if (!isPeriodic && !isRefreshable) {\n if (handleId) {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[handleId];\n }\n else if (handle) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n handle[taskSymbol] = null;\n }\n }\n }\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const { handleId, handle, isRefreshable, isPeriodic } = task.data;\n if (handleId) {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handleId] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n if (isRefreshable && !isPeriodic) {\n const originalRefresh = handle.refresh;\n handle.refresh = function () {\n const { zone, state } = task;\n if (state === 'notScheduled') {\n task._state = 'scheduled';\n zone._updateTaskCount(task, 1);\n }\n else if (state === 'running') {\n task._state = 'scheduling';\n }\n return originalRefresh.call(this);\n };\n }\n }\n return handle ?? handleId ?? task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative = patchMethod(window, cancelName, (delegate) => function (self, args) {\n const id = args[0];\n let task;\n if (isNumber(id)) {\n // non nodejs env.\n task = tasksByHandleId[id];\n delete tasksByHandleId[id];\n }\n else {\n // nodejs env ?? other environments.\n task = id?.[taskSymbol];\n if (task) {\n id[taskSymbol] = null;\n }\n else {\n task = id;\n }\n }\n if (task?.type) {\n if (task.cancelFn) {\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n });\n}\n\nfunction patchCustomElements(_global, api) {\n const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n // https://html.spec.whatwg.org/multipage/custom-elements.html#concept-custom-element-definition-lifecycle-callbacks\n const callbacks = [\n 'connectedCallback',\n 'disconnectedCallback',\n 'adoptedCallback',\n 'attributeChangedCallback',\n 'formAssociatedCallback',\n 'formDisabledCallback',\n 'formResetCallback',\n 'formStateRestoreCallback',\n ];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n}\n\nfunction eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n}\nfunction patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n}\n\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter((ip) => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter((op) => targetIgnoreProperties.indexOf(op) === -1);\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\n/**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\nfunction getOnEventNames(target) {\n return Object.getOwnPropertyNames(target)\n .filter((name) => name.startsWith('on') && name.length > 2)\n .map((name) => name.substring(2));\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n let patchTargets = [];\n if (isBrowser) {\n const internalWindow = window;\n patchTargets = patchTargets.concat([\n 'Document',\n 'SVGElement',\n 'Element',\n 'HTMLElement',\n 'HTMLBodyElement',\n 'HTMLMediaElement',\n 'HTMLFrameSetElement',\n 'HTMLFrameElement',\n 'HTMLIFrameElement',\n 'HTMLMarqueeElement',\n 'Worker',\n ]);\n const ignoreErrorProperties = isIE()\n ? [{ target: internalWindow, ignoreProperties: ['error'] }]\n : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n }\n patchTargets = patchTargets.concat([\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'IDBIndex',\n 'IDBRequest',\n 'IDBOpenDBRequest',\n 'IDBDatabase',\n 'IDBTransaction',\n 'IDBCursor',\n 'WebSocket',\n ]);\n for (let i = 0; i < patchTargets.length; i++) {\n const target = _global[patchTargets[i]];\n target &&\n target.prototype &&\n patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\n }\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nfunction patchBrowser(Zone) {\n Zone.__load_patch('legacy', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n });\n Zone.__load_patch('timers', (global) => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n });\n Zone.__load_patch('requestAnimationFrame', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n });\n Zone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n });\n Zone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n }\n });\n Zone.__load_patch('MutationObserver', (global, Zone, api) => {\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n });\n Zone.__load_patch('IntersectionObserver', (global, Zone, api) => {\n patchClass('IntersectionObserver');\n });\n Zone.__load_patch('FileReader', (global, Zone, api) => {\n patchClass('FileReader');\n });\n Zone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n });\n Zone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n });\n Zone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = (target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n // Also if the request failed without response (status = 0), the load event handler\n // will not be triggered, in that case, we should also invoke the placeholder callback\n // to close the XMLHttpRequest::send macroTask.\n // https://github.com/angular/angular/issues/38795\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n });\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n const options = {\n target: self,\n url: self[XHR_URL],\n isPeriodic: false,\n args: args,\n aborted: false,\n };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self &&\n self[XHR_ERROR_BEFORE_SCHEDULED] === true &&\n !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n });\n Zone.__load_patch('geolocation', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n });\n Zone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach((eventTask) => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, {\n promise: e.promise,\n reason: e.rejection,\n });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n });\n Zone.__load_patch('queueMicrotask', (global, Zone, api) => {\n patchQueueMicrotask(global, api);\n });\n}\n\nfunction patchPromise(Zone) {\n Zone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] !== false;\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => {\n if (uncaughtPromiseError.throwOriginal) {\n throw uncaughtPromiseError.rejection;\n }\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) { }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (v) => {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED &&\n value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) &&\n value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask &&\n Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: trace,\n });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n let uncaughtPromiseError = value;\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' +\n readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n if (isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // use the value instead of wrapping it.\n uncaughtPromiseError.throwOriginal = true;\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) { }\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState\n ? typeof onFulfilled === 'function'\n ? onFulfilled\n : forwardResolution\n : typeof onRejected === 'function'\n ? onRejected\n : forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution\n ? []\n : [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n const noop = function () { };\n const AggregateError = global.AggregateError;\n class ZoneAwarePromise {\n static toString() {\n return ZONE_AWARE_PROMISE_TO_STRING;\n }\n static resolve(value) {\n if (value instanceof ZoneAwarePromise) {\n return value;\n }\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static withResolvers() {\n const result = {};\n result.promise = new ZoneAwarePromise((res, rej) => {\n result.resolve = res;\n result.reject = rej;\n });\n return result;\n }\n static any(values) {\n if (!values || typeof values[Symbol.iterator] !== 'function') {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n const promises = [];\n let count = 0;\n try {\n for (let v of values) {\n count++;\n promises.push(ZoneAwarePromise.resolve(v));\n }\n }\n catch (err) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n if (count === 0) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n let finished = false;\n const errors = [];\n return new ZoneAwarePromise((resolve, reject) => {\n for (let i = 0; i < promises.length; i++) {\n promises[i].then((v) => {\n if (finished) {\n return;\n }\n finished = true;\n resolve(v);\n }, (err) => {\n errors.push(err);\n count--;\n if (count === 0) {\n finished = true;\n reject(new AggregateError(errors, 'All promises were rejected'));\n }\n });\n }\n });\n }\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) {\n return ZoneAwarePromise.allWithCallback(values);\n }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: (value) => ({ status: 'fulfilled', value }),\n errorCallback: (err) => ({ status: 'rejected', reason: err }),\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then((value) => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, (err) => {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n const onceWrapper = once();\n executor &&\n executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED)));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n get [Symbol.toStringTag]() {\n return 'Promise';\n }\n get [Symbol.species]() {\n return ZoneAwarePromise;\n }\n then(onFulfilled, onRejected) {\n // We must read `Symbol.species` safely because `this` may be anything. For instance, `this`\n // may be an object without a prototype (created through `Object.create(null)`); thus\n // `this.constructor` will be undefined. One of the use cases is SystemJS creating\n // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty\n // object and copies promise properties into that object (within the `getOrCreateLoad`\n // function). The zone.js then checks if the resolved value has the `then` method and\n // invokes it with the `value` context. Otherwise, this will throw an error: `TypeError:\n // Cannot read properties of undefined (reading 'Symbol(Symbol.species)')`.\n let C = this.constructor?.[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n // See comment on the call to `then` about why thee `Symbol.species` is safely accessed.\n let C = this.constructor?.[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = (global[symbolPromise] = global['Promise']);\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => {\n originalThen.call(this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function (self, args) {\n let resultPromise = fn.apply(self, args);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n patchMethod(global, 'fetch', (delegate) => zoneify(delegate));\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n });\n}\n\nfunction patchToString(Zone) {\n // override Function.prototype.toString to make zone.js patched function\n // look like native function\n Zone.__load_patch('toString', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (typeof Promise === 'function' && this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n });\n}\n\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = (target[symbol] = target[method]);\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n // Note: the `patchCallbacks` is used for patching the `document.registerElement` and\n // `customElements.define`. We explicitly wrap the patching code into try-catch since\n // callbacks may be already patched by other web components frameworks (e.g. LWC), and they\n // make those properties non-writable. This means that patching callback will throw an error\n // `cannot assign to read-only property`. See this code as an example:\n // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186\n // We don't want to stop the application rendering if we couldn't patch some\n // callback, e.g. `attributeChangedCallback`.\n try {\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n catch {\n // Note: we leave the catch block empty since there's no way to handle the error related\n // to non-writable property.\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n}\n\nfunction patchUtil(Zone) {\n Zone.__load_patch('util', (global, Zone, api) => {\n // Collect native event names by looking at properties\n // on the global namespace, e.g. 'onclick'.\n const eventNames = getOnEventNames(global);\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS`\n // to define which events will not be patched by `Zone.js`. In newer version (>=0.9.0), we\n // change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep the name consistent with\n // angular repo. The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be\n // supported for backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({\n globalSources,\n zoneSymbolEventNames,\n eventNames,\n isBrowser,\n isMix,\n isNode,\n TRUE_STR,\n FALSE_STR,\n ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR,\n });\n });\n}\n\nfunction patchCommon(Zone) {\n patchPromise(Zone);\n patchToString(Zone);\n patchUtil(Zone);\n}\n\nconst Zone$1 = loadZone();\npatchCommon(Zone$1);\npatchBrowser(Zone$1);\n"],"names":["window","Reflect","customElements","polyfillWrapFlushCallback","a","HTMLElement","construct","constructor","prototype","Object","setPrototypeOf","document","exportName","undefined","VENDOR_PREFIXES","TEST_ELEMENT","createElement","TYPE_FUNCTION","round","Math","abs","now","Date","setTimeoutContext","fn","timeout","context","setTimeout","bindFn","invokeArrayArg","arg","Array","isArray","each","obj","iterator","i","forEach","length","call","hasOwnProperty","deprecate","method","name","message","deprecationMessage","e","Error","stack","replace","log","console","warn","apply","arguments","assign","target","TypeError","output","index","source","nextKey","extend","dest","src","merge","keys","inherit","child","base","properties","baseP","childP","create","_super","boundFn","boolOrFn","val","args","ifUndefined","val1","val2","addEventListeners","types","handler","splitStr","type","addEventListener","removeEventListeners","removeEventListener","hasParent","node","parent","parentNode","inStr","str","find","indexOf","trim","split","inArray","findByKey","toArray","slice","uniqueArray","key","sort","results","values","push","sortUniqueArray","b","prefixed","property","prefix","prop","camelProp","toUpperCase","_uniqueId","uniqueId","getWindowForElement","element","doc","ownerDocument","defaultView","parentWindow","MOBILE_REGEX","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","test","navigator","userAgent","INPUT_TYPE_TOUCH","INPUT_TYPE_PEN","INPUT_TYPE_MOUSE","INPUT_TYPE_KINECT","COMPUTE_INTERVAL","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","PROPS_XY","PROPS_CLIENT_XY","Input","manager","callback","self","options","inputTarget","domHandler","ev","enable","init","evEl","evTarget","evWin","destroy","createInputInstance","Type","inputClass","PointerEventInput","TouchInput","MouseInput","TouchMouseInput","inputHandler","eventType","input","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","computeInputData","emit","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","timeStamp","deltaTime","angle","getAngle","distance","getDistance","computeDeltaXY","offsetDirection","getDirection","deltaX","deltaY","overallVelocity","getVelocity","overallVelocityX","x","overallVelocityY","y","scale","getScale","rotation","getRotation","maxPointers","computeIntervalInputData","srcEvent","offset","offsetDelta","prevDelta","last","lastInterval","velocity","velocityX","velocityY","direction","v","clientX","clientY","p1","p2","props","sqrt","atan2","PI","start","end","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","pressed","MEhandler","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","MSPointerEvent","PointerEvent","store","pointerEvents","PEhandler","removePointer","eventTypeNormalized","toLowerCase","isTouch","storeIndex","pointerId","splice","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","started","TEhandler","touches","normalizeSingleTouches","all","changed","changedTouches","concat","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","targetIds","MTEhandler","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","filter","touch","DEDUP_TIMEOUT","DEDUP_DISTANCE","mouse","primaryTouch","lastTouches","TMEhandler","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","recordTouches","isSyntheticEvent","eventData","setLastTouch","lastTouch","lts","removeLastTouch","t","dx","dy","PREFIXED_TOUCH_ACTION","style","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","getTouchActionProps","TouchAction","value","set","compute","actions","update","touchAction","recognizers","recognizer","getTouchAction","cleanTouchActions","join","preventDefaults","prevented","preventDefault","hasNone","hasPanY","hasPanX","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","touchMap","cssSupports","CSS","supports","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","Recognizer","defaults","id","state","simultaneous","requireFail","recognizeWith","otherRecognizer","getRecognizerByNameIfManager","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","event","stateStr","additionalEvent","tryEmit","canEmit","inputDataClone","reset","process","directionStr","get","AttrRecognizer","attrTest","optionPointers","isRecognized","isValid","PanRecognizer","pX","pY","threshold","directionTest","hasMoved","PinchRecognizer","inOut","PressRecognizer","_timer","_input","time","validPointers","validMovement","validTime","clearTimeout","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","count","taps","interval","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","Hammer","preset","Manager","VERSION","domEvents","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","STOP","FORCED_STOP","handlers","oldCssProps","toggleCssProps","item","add","stop","force","stopped","curRecognizer","existing","remove","on","events","off","data","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","Tap","Pan","Swipe","Pinch","Rotate","Press","freeGlobal","define","amd","module","exports","global","globalThis","__symbol__","symbolPrefix","initZone","performance","mark","performanceMeasure","label","ZoneImpl","assertZonePatched","patches","root","zone","current","_currentZoneFrame","currentTask","_currentTask","__load_patch","ignoreDuplicate","checkDuplicate","perfName","_api","_parent","_name","zoneSpec","_properties","_zoneDelegate","_ZoneDelegate","getZoneWith","fork","wrap","_callback","intercept","runGuarded","run","applyThis","applyArgs","invoke","error","handleError","runTask","task","NO_ZONE","zoneTask","isPeriodic","isRefreshable","notScheduled","eventTask","macroTask","reEntryGuard","running","_transitionTo","scheduled","previousTask","cancelFn","invokeTask","unknown","scheduling","zoneDelegates","_zoneDelegates","_updateTaskCount","scheduleTask","newZone","_zone","err","scheduleMicroTask","customSchedule","ZoneTask","microTask","scheduleMacroTask","customCancel","scheduleEventTask","cancelTask","canceling","runCount","DELEGATE_ZS","onHasTask","delegate","_","hasTaskState","hasTask","onScheduleTask","onInvokeTask","onCancelTask","parentDelegate","_taskCounts","_parentDelegate","_forkZS","onFork","_forkDlgt","_forkCurrZone","_interceptZS","onIntercept","_interceptDlgt","_interceptCurrZone","_invokeZS","onInvoke","_invokeDlgt","_invokeCurrZone","_handleErrorZS","onHandleError","_handleErrorDlgt","_handleErrorCurrZone","_scheduleTaskZS","_scheduleTaskDlgt","_scheduleTaskCurrZone","_invokeTaskZS","_invokeTaskDlgt","_invokeTaskCurrZone","_cancelTaskZS","_cancelTaskDlgt","_cancelTaskCurrZone","_hasTaskZS","_hasTaskDlgt","_hasTaskDlgtOwner","_hasTaskCurrZone","zoneSpecHasTask","parentHasTask","targetZone","returnTask","scheduleFn","isEmpty","counts","prev","next","change","_state","useG","_numberOfNestedTaskFrames","drainMicroTaskQueue","cancelScheduleRequest","toState","fromState1","fromState2","toString","handleId","toJSON","symbolSetTimeout","symbolPromise","symbolThen","_microTaskQueue","_isDrainingMicrotaskQueue","nativeMicroTaskQueuePromise","nativeScheduleMicroTask","func","resolve","nativeThen","queue","onUnhandledError","microtaskDrainDone","symbol","currentZoneFrame","noop","showUncaughtError","patchEventTarget","patchOnProperties","patchMethod","bindArguments","patchThen","patchMacroTask","patchEventPrototype","isIEOrEdge","getGlobalObjects","ObjectDefineProperty","ObjectGetOwnPropertyDescriptor","ObjectCreate","ArraySlice","patchClass","wrapWithCurrentZone","filterProperties","attachOriginToPatched","_redefineProperty","patchCallbacks","loadZone","getOwnPropertyDescriptor","defineProperty","ObjectGetPrototypeOf","getPrototypeOf","ADD_EVENT_LISTENER_STR","REMOVE_EVENT_LISTENER_STR","ZONE_SYMBOL_ADD_EVENT_LISTENER","ZONE_SYMBOL_REMOVE_EVENT_LISTENER","TRUE_STR","FALSE_STR","ZONE_SYMBOL_PREFIX","Zone","scheduleMacroTaskWithCurrentZone","zoneSymbol","isWindowExists","internalWindow","_global","REMOVE_ATTRIBUTE","patchPrototype","fnNames","prototypeDesc","isPropertyWritable","patched","propertyDesc","writable","isWebWorker","WorkerGlobalScope","isNode","isBrowser","isMix","zoneSymbolEventNames$1","enableBeforeunloadSymbol","wrapFn","eventNameSymbol","listener","result","errorEvent","filename","lineno","colno","returnValue","patchProperty","desc","enumerable","configurable","onPropPatchedSymbol","originalDescGet","originalDescSet","eventName","newValue","previousValue","removeAttribute","onProperties","j","originalInstanceKey","className","OriginalClass","instance","patchFn","proto","delegateName","patchDelegate","funcName","metaCreator","setNative","cbIdx","meta","original","isDetectedIEOrEdge","ieOrEdge","isIE","ua","isFunction","isNumber","passiveSupported","OPTIMIZED_ZONE_EVENT_TASK_DATA","zoneSymbolEventNames","globalSources","EVENT_NAME_SYMBOL_REGX","RegExp","IMMEDIATE_PROPAGATION_SYMBOL","prepareEventNames","eventNameToString","falseEventName","trueEventName","symbolCapture","api","apis","patchOptions","ADD_EVENT_LISTENER","REMOVE_EVENT_LISTENER","rm","LISTENERS_EVENT_LISTENER","listeners","REMOVE_ALL_LISTENERS_EVENT_LISTENER","rmAll","zoneSymbolAddEventListener","ADD_EVENT_LISTENER_SOURCE","PREPEND_EVENT_LISTENER","PREPEND_EVENT_LISTENER_SOURCE","isRemoved","handleEvent","originalDelegate","once","globalCallback","isCapture","tasks","errors","copyTasks","globalZoneAwareCallback","globalZoneAwareCaptureCallback","patchEventTargetMethods","useGlobalCallback","validateHandler","vh","chkDup","returnTarget","rt","taskData","nativeAddEventListener","nativeRemoveEventListener","nativeListeners","nativeRemoveAllListeners","nativePrependEventListener","prepend","buildEventListenerOptions","passive","capture","customScheduleGlobal","isExisting","customCancelGlobal","symbolEventNames","symbolEventName","existingTasks","existingTask","removeAbortListener","allRemoved","customScheduleNonGlobal","customSchedulePrepend","customCancelNonGlobal","compareTaskCallbackVsDelegate","typeOfDelegate","compare","diff","unpatchedEvents","passiveEvents","copyEventListenerOptions","newOptions","signal","makeAddListener","nativeListener","addSource","customScheduleFn","customCancelFn","transferEventName","isHandleEvent","aborted","constructorName","targetSource","onAbort","unshift","onPropertySymbol","findEventTasks","match","exec","evtName","symbolCaptureEventName","captureTasks","removeTasks","foundTasks","captureFalseTasks","captureTrueTasks","Event","patchQueueMicrotask","taskSymbol","patchTimer","setName","cancelName","nameSuffix","clearNative","tasksByHandleId","handleOrId","handle","refresh","clearTask","delay","timer","originalRefresh","patchCustomElements","callbacks","eventTargetPatch","eventNames","EVENT_TARGET","patchEvent","ignoreProperties","tip","ip","targetIgnoreProperties","op","patchFilteredProperties","filteredProperties","getOnEventNames","getOwnPropertyNames","startsWith","map","substring","propertyDescriptorPatch","patchTargets","ignoreErrorProperties","patchBrowser","legacyPatch","clear","blockingMethods","s","XMLHttpRequestEventTarget","patchXHR","XHR_TASK","XHR_SYNC","XHR_LISTENER","XHR_SCHEDULED","XHR_URL","XHR_ERROR_BEFORE_SCHEDULED","XMLHttpRequest","XMLHttpRequestPrototype","findPendingTask","oriAddListener","oriRemoveListener","XMLHttpRequestEventTargetPrototype","READY_STATE_CHANGE","SCHEDULED","newListener","readyState","DONE","loadTasks","status","oriInvoke","storedTask","sendNative","placeholderCallback","abortNative","openNative","XMLHTTPREQUEST_SOURCE","fetchTaskAborting","fetchTaskScheduling","url","geolocation","findPromiseRejectionHandler","eventTasks","PromiseRejectionEvent","evt","promise","reason","rejection","patchPromise","readableObjectToString","JSON","stringify","_uncaughtPromiseErrors","isDisableWrappingUncaughtPromiseRejection","creationTrace","uncaughtPromiseError","shift","throwOriginal","handleUnhandledRejection","UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL","isThenable","then","forwardResolution","forwardRejection","ZoneAwarePromise","reject","symbolState","symbolValue","symbolFinally","symbolParentPromiseValue","symbolParentPromiseState","UNRESOLVED","RESOLVED","REJECTED","REJECTED_NO_CATCH","makeResolver","resolvePromise","wasCalled","wrapper","wrappedFunction","TYPE_ERROR","CURRENT_TASK_TRACE_SYMBOL","onceWrapper","clearRejectedNoCatch","trace","scheduleResolveOrReject","REJECTION_HANDLED_HANDLER","chainPromise","onFulfilled","onRejected","promiseState","parentPromiseValue","isFinallyPromise","ZONE_AWARE_PROMISE_TO_STRING","AggregateError","withResolvers","res","rej","any","Symbol","Promise","promises","finished","race","onResolve","onReject","allWithCallback","allSettled","P","thenCallback","errorCallback","unresolvedCount","valueIndex","resolvedValues","curValueIndex","thenErr","executor","toStringTag","species","C","catch","finally","onFinally","NativePromise","symbolThenPatched","Ctor","originalThen","wrapped","zoneify","resultPromise","ctor","patchToString","originalFunctionToString","Function","ORIGINAL_DELEGATE_SYMBOL","PROMISE_SYMBOL","ERROR_SYMBOL","newFunctionToString","nativePromise","nativeError","originalObjectToString","PROMISE_OBJECT_TO_STRING","targetName","nativeDelegate","opts","descriptor","patchUtil","SYMBOL_BLACK_LISTED_EVENTS","SYMBOL_UNPATCHED_EVENTS","patchCommon","Zone$1"],"sourceRoot":"webpack:///","x_google_ignoreList":[1,2,3]}