{"version":3,"file":"omega.default.activity.extra.plugins.browser.local.min.js","sources":["node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_fails.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_dom-create.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-primitive.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_has.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_export.js","node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_global.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_core.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_a-function.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_ctx.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-object.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_an-object.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_descriptors.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_ie8-dom-define.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-dp.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_property-desc.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_hide.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.define-property.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_cof.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-length.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-keys-internal.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-create.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/define-property.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_array-includes.js","node_modules/@babel/runtime-corejs2/core-js/object/define-property.js","node_modules/@babel/runtime-corejs2/helpers/createClass.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iobject.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_defined.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-iobject.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-integer.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-absolute-index.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_shared.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_uid.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_shared-key.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_enum-bug-keys.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-keys.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-dps.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_html.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.create.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_set-proto.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/create.js","node_modules/@babel/runtime-corejs2/core-js/object/create.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-pie.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gopd.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/set-prototype-of.js","node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js","node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_invoke.js","node_modules/@babel/runtime-corejs2/helpers/inherits.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_bind.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.reflect.construct.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-object.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/reflect/construct.js","node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gpo.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-sap.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/get-prototype-of.js","node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js","node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js","node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_wks-define.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.symbol.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_redefine.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_meta.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_wks.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_set-to-string-tag.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_wks-ext.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gops.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_enum-keys.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-array.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gopn.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gopn-ext.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.symbol.observable.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/symbol/index.js","node_modules/@babel/runtime-corejs2/core-js/symbol.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iterators.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-create.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-define.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_string-at.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.string.iterator.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-step.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.array.iterator.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/web.dom.iterable.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/symbol/iterator.js","node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js","node_modules/@babel/runtime-corejs2/helpers/typeof.js","node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js","node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_classof.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-call.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-array-iter.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_species-constructor.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_task.js","node_modules/@babel/runtime-corejs2/helpers/createSuper.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/core.get-iterator-method.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_for-of.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_microtask.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_new-promise-capability.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_promise-resolve.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_perform.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_user-agent.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_set-species.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-detect.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.promise.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_an-instance.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_redefine-all.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_library.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.promise.finally.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.promise.try.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/promise.js","node_modules/@babel/runtime-corejs2/core-js/promise.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.keys.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/keys.js","node_modules/@babel/runtime-corejs2/core-js/object/keys.js","node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/get-own-property-symbols.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_create-property.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/get-own-property-descriptor.js","node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_own-keys.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/get-own-property-descriptors.js","node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.define-properties.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/define-properties.js","node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js","node_modules/@babel/runtime-corejs2/helpers/defineProperty.js","node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-assign.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.assign.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/assign.js","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/events/EventStatus.ts","node_modules/@babel/runtime-corejs2/core-js/object/assign.js","node_modules/@babel/runtime-corejs2/helpers/extends.js","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/utils/ReportCallbackUtil.ts","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/json/stringify.js","node_modules/@babel/runtime-corejs2/core-js/json/stringify.js","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/utils/GlobalUtil.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/events/AEvent.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/events/BlockedEvent.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/utils/PluginUtils.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/AReportingStrategyPlugin.ts","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.reflect.get.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/reflect/get.js","node_modules/@babel/runtime-corejs2/core-js/reflect/get.js","node_modules/@babel/runtime-corejs2/helpers/superPropBase.js","node_modules/@babel/runtime-corejs2/helpers/get.js","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/events/SequencedEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/utils/ViewportUtils.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/utils/ElementUtils.ts","node_modules/@omega-tracker/omg-h5-activity-strategy-plugin/src/com/didichuxing/tracker/h5/activity/plugins/events/OMGH5InputEvent.ts","node_modules/@omega-tracker/omg-h5-activity-strategy-plugin/src/com/didichuxing/tracker/h5/activity/plugins/AOMGH5InputPlugin.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/reportor/DataQueueSet.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/reportor/AH5EventReportor.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/events/FailedEvent.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/events/TimeoutEvent.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/utils/EncodeHash.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/reportor/PostEventReportor.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice.ts","node_modules/@omega-tracker/omg-h5-activity-strategy-plugin/src/com/didichuxing/tracker/h5/activity/plugins/OMGH5InputPlugin.ts","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.array.is-array.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/array/is-array.js","node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js","node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.array.from.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/array/from.js","node_modules/@babel/runtime-corejs2/core-js/array/from.js","node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js","node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js","node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js","node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js","node_modules/@omega-tracker/omg-h5-activity-strategy-plugin/src/com/didichuxing/tracker/h5/activity/plugins/events/OMGH5MediumEvent.ts","node_modules/@omega-tracker/omg-h5-activity-strategy-plugin/src/com/didichuxing/tracker/h5/activity/plugins/AOMGH5MediumPlugin.ts","node_modules/@omega-tracker/omg-h5-activity-strategy-plugin/src/com/didichuxing/tracker/h5/activity/plugins/OMGH5MediumPlugin.ts","node_modules/@omega-tracker/omg-h5-activity-strategy-plugin/src/com/didichuxing/tracker/h5/activity/plugins/events/OMGH5ScrollEndEvent.ts","node_modules/@omega-tracker/omg-h5-activity-strategy-plugin/src/com/didichuxing/tracker/h5/activity/plugins/AOMGH5ScrollEndPlugin.ts","node_modules/@omega-tracker/omg-h5-activity-strategy-plugin/src/com/didichuxing/tracker/h5/activity/plugins/OMGH5ScrollEndPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5PageViewEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5PageViewPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5PageViewPlugin.ts","node_modules/@omega-tracker/omg-h5-activity-strategy-plugin/src/com/didichuxing/tracker/h5/activity/plugins/events/OMGH5ActivityPageViewEvent.ts","node_modules/@omega-tracker/omg-h5-activity-strategy-plugin/src/com/didichuxing/tracker/h5/activity/plugins/OMGH5ActivePageViewPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5ReceivedEvent.ts","src/com/didichuxing/plugins/defaultextra/PositionPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5PageLeaveEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5PageLeavePlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5PageLeavePlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5ClickEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5ClickPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5ClickPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5ReceivedPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5ReceivedPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5CustomEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5CustomPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5CustomPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5JsErrorEvent.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/utils/UUID.ts","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_string-ws.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_string-trim.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_parse-int.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.parse-int.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/parse-int.js","node_modules/@babel/runtime-corejs2/core-js/parse-int.js","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/plugin/utils/MD5.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5JsErrorPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5JsErrorPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5ErrorEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5ErrorPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5ErrorPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5SafeTypingEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGSafeTypingPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGSafeTypingPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5PerformanceEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5PerformancePlugin.ts","src/com/didichuxing/plugins/DefaultExtraH5ActivityPluginsPublisher.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5PerformancePlugin.ts"],"sourcesContent":["module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","module.exports = require(\"core-js/library/fn/object/define-property\");","var _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n\n _Object$defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","module.exports = require(\"core-js/library/fn/object/create\");","exports.f = {}.propertyIsEnumerable;\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","module.exports = require(\"core-js/library/fn/object/set-prototype-of\");","var _Object$setPrototypeOf = require(\"@babel/runtime-corejs2/core-js/object/set-prototype-of\");\n\nfunction _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","var _Object$create = require(\"@babel/runtime-corejs2/core-js/object/create\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = _Object$create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","require('../../modules/es6.reflect.construct');\nmodule.exports = require('../../modules/_core').Reflect.construct;\n","module.exports = require(\"core-js/library/fn/reflect/construct\");","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","module.exports = require(\"core-js/library/fn/object/get-prototype-of\");","var _Object$setPrototypeOf = require(\"@babel/runtime-corejs2/core-js/object/set-prototype-of\");\n\nvar _Object$getPrototypeOf = require(\"@babel/runtime-corejs2/core-js/object/get-prototype-of\");\n\nfunction _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || _Object$getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false;\n if (_Reflect$construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","module.exports = require('./_hide');\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","exports.f = Object.getOwnPropertySymbols;\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","module.exports = require(\"core-js/library/fn/symbol\");","module.exports = {};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = require(\"core-js/library/fn/symbol/iterator\");","var _Symbol = require(\"@babel/runtime-corejs2/core-js/symbol\");\n\nvar _Symbol$iterator = require(\"@babel/runtime-corejs2/core-js/symbol/iterator\");\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime-corejs2/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","var _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\n\nvar getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = _Reflect$construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}\n\nmodule.exports = _createSuper;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","'use strict';\nvar global = require('./_global');\nvar core = require('./_core');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var hide = require('./_hide');\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n if (safe && target[key]) target[key] = src[key];\n else hide(target, key, src[key]);\n } return target;\n};\n","module.exports = true;\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n","module.exports = require(\"core-js/library/fn/promise\");","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n","module.exports = require(\"core-js/library/fn/object/keys\");","module.exports = require(\"core-js/library/fn/object/get-own-property-symbols\");","require('../../modules/es6.symbol');\nmodule.exports = require('../../modules/_core').Object.getOwnPropertySymbols;\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","module.exports = require(\"core-js/library/fn/object/get-own-property-descriptor\");","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","require('../../modules/es7.object.get-own-property-descriptors');\nmodule.exports = require('../../modules/_core').Object.getOwnPropertyDescriptors;\n","module.exports = require(\"core-js/library/fn/object/get-own-property-descriptors\");","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","require('../../modules/es6.object.define-properties');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperties(T, D) {\n return $Object.defineProperties(T, D);\n};\n","module.exports = require(\"core-js/library/fn/object/define-properties\");","var _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n _Object$defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Object$keys = require(\"@babel/runtime-corejs2/core-js/object/keys\");\n\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-symbols\");\n\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\n\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptors\");\n\nvar _Object$defineProperties = require(\"@babel/runtime-corejs2/core-js/object/define-properties\");\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n\nvar defineProperty = require(\"./defineProperty.js\");\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = _Object$keys(object);\n\n if (_Object$getOwnPropertySymbols) {\n var symbols = _Object$getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return _Object$getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (_Object$getOwnPropertyDescriptors) {\n _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread2;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The enum class of EventStatus\n */\n\nexport enum EventStatus {\n\n /**\n * 正常状态的事件。\n */\n NORMAL = 'normal',\n\n /**\n * 被阻止上报的事件\n * @type {string}\n */\n BLOCKED = 'blocked',\n\n /**\n * 上报失败的事件。\n * @type {string}\n */\n FAILED = 'failed',\n\n /**\n * 上报超时的事件。\n * @type {string}\n */\n TIMEOUT = 'timeout'\n}\n","module.exports = require(\"core-js/library/fn/object/assign\");","var _Object$assign = require(\"@babel/runtime-corejs2/core-js/object/assign\");\n\nfunction _extends() {\n module.exports = _extends = _Object$assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export interface IReportCallbackArg {\n\n /**\n * 上报事件的名单。\n * @readonly\n */\n readonly eventid: IReportableEventList | null;\n}\n\nexport interface IReportableEventList {\n\n /**\n * 上报事件id\n * 0为禁止上报,1为允许上报。\n * @readonly\n */\n readonly [eventid: string]: number;\n}\n\nexport default abstract class ReportCallbackUtil {\n\n /**\n * response回调方法挂载的对象名称。\n * @type {string}\n */\n public static readonly OMG_CALLBACK_OBJ_NAME: string = '__OMG_CBKS__';\n\n /**\n * omega事件黑名单列表对象名称。\n * @type {string}\n */\n public static readonly OMG_EVENT_BLACKLIST_NAME: string = '__OMG_EVENT_BLACKLIST__';\n\n public static reportCallbackName(rawSerialized: string): string {\n const cbObjName: string = ReportCallbackUtil.OMG_CALLBACK_OBJ_NAME;\n const cbkMethodName: string = `_cbk${ new Date().getTime() }`;\n rawSerialized = `${rawSerialized}&cbk=${ cbObjName }.${ cbkMethodName }`;\n const self = this;\n if ((window as any)[cbObjName]) {\n (window as any)[cbObjName][cbkMethodName] = function() {\n delete (window as any)[cbObjName][cbkMethodName];\n self.reportCallback.apply(self, arguments);\n };\n } else {\n (window as any)[cbObjName] = {\n [cbkMethodName]: function() {\n delete (window as any)[cbObjName][cbkMethodName];\n self.reportCallback.apply(self, arguments);\n }\n };\n }\n return rawSerialized;\n }\n /**\n * 上报后的回调。\n * @param {IReportCallbackArg} cbArg\n */\n public static reportCallback(cbArg?: IReportCallbackArg): void {\n const bn: string = ReportCallbackUtil.OMG_EVENT_BLACKLIST_NAME;\n if (cbArg && cbArg.eventid) {\n if (!(window as any)[bn]) {\n (window as any)[bn] = [];\n }\n for (const prop in cbArg.eventid) {\n if (cbArg.eventid[prop] === 0) { // event black list\n if (((window as any)[bn] as string[]).indexOf(prop) < 0) {\n // not existed\n ((window as any)[bn] as string[]).push(prop);\n }\n } else { // event need to be removed from black list\n const index: number = ((window as any)[bn] as string[]).indexOf(prop);\n if (index >= 0) { // existed\n ((window as any)[bn] as string[]).splice(index, 1);\n }\n }\n }\n }\n }\n}\n","var core = require('../../modules/_core');\nvar $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });\nmodule.exports = function stringify(it) { // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};\n","module.exports = require(\"core-js/library/fn/json/stringify\");","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of GlobalUtil\n */\n\nexport default abstract class GlobalUtil {\n /**\n * 当前页面是否加载完成\n * @returns {boolean}\n */\n public static isLoaded(): boolean {\n if (window.performance && window.performance.timing) { // 现代浏览器\n return !!window.performance.timing.loadEventEnd;\n } else { // 老式浏览器\n return window.document.readyState === 'complete';\n }\n }\n\n /**\n * 是否空字符串\n * @param str{string}\n * @returns {boolean}\n */\n public static isEmptyString(str: string | undefined): boolean {\n if (!str) {\n return false;\n }\n let result = true;\n if (Object.prototype.toString.call(str) !== '[object String]') {\n result = false;\n }\n // \\s 小写的s是,匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \\f\\n\\r\\t\\v]。\n if (str.replace(/(^\\s*)|(\\s*$)/g, '').length === 0) {\n result = false;\n }\n return result;\n }\n\n /**\n * 设置OMG的日志\n * @param str\n */\n public static dispatchOmgLog(str: string): void {\n const mesageEvent: MessageEvent = document.createEvent('MessageEvent');\n mesageEvent.initMessageEvent('omglog', false, false, str, '', '', window);\n window.dispatchEvent(mesageEvent);\n }\n\n /**\n * 判断当前应用的 scheme 是否为桌面环境\n * @returns {boolean}\n */\n public static isDesktop(): boolean {\n return window.location && window.location.protocol === 'file:';\n }\n\n /**\n * 获取当前应使用的 protocol\n * @returns {string}\n */\n public static getProtocol(): string {\n // 20190618 lincal:应安全部要求,全面启用 https 协议\n return 'https://';\n // return GlobalUtil.isDesktop() ? 'https://' : '//';\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AEvent\n */\n\nimport { IPlanObject } from 'com/didichuxing/IPlanObject';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IContextContainer } from 'com/didichuxing/context/IContextContainer';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventData } from 'com/didichuxing/tracker/event/ITrackedEventData';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { EventStatus } from 'com/didichuxing/tracker/plugin/events/EventStatus';\nimport GlobalUtil from 'com/didichuxing/tracker/plugin/utils/GlobalUtil';\n\nexport default abstract class AEvent implements ITrackedEvent, IContextContainer {\n\n /**\n * 事件生成的额外信息\n */\n private readonly info?: IAttrs;\n\n /**\n * 上报的上下文环境\n */\n private readonly context: IContext;\n\n /**\n * 事件的额外参数。\n */\n private readonly attrs: IAttrs;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n * @param {IAttrs} info\n */\n constructor(attrs: IAttrs, context: IContext, info?: IAttrs) {\n this.attrs = attrs;\n this.context = context;\n this.info = info;\n }\n\n /**\n * 获取版本号\n */\n private getVersion() {\n return {\n trackerVersion: this.getContext().version\n };\n }\n\n /**\n * @abstract\n * @returns {string}\n */\n public abstract getType(): string;\n\n /**\n * @override\n * @inheritDoc\n * @returns {ITrackedEventData}\n */\n public getData(): ITrackedEventData {\n const context: ITrackerContext = this.getContext() as ITrackerContext;\n let appKey = context.appKey || context.productName;\n let url: string = context.url || location.href;\n /**\n * 当配置appkey可修改的时候,将event生成的信息中的appkey进行填充\n */\n if ( context && context.modifyAppKey && this.info && this.info.appKey) {\n appKey = this.info.appKey;\n }\n /**\n * 当配置了url的解析则需要将url过滤\n * - noUrlParam 上报的时候不上报参数\n * - formatUrl 上报的时候进行url格式化\n */\n try {\n if (context && context.noUrlParam) {\n url = url.split('?')[0];\n } else if (context && context.formatUrl) {\n url = context.formatUrl(url);\n }\n } catch (error) {\n console.info('url解析异常', error);\n }\n return {\n eventId: this.getType(),\n timestamp: new Date().getTime(),\n viewportId: context.viewportId,\n appName: context.appName,\n appVersion: context.appVersion,\n omgId: context.omgId,\n url,\n userAgent: context.userAgent,\n osType: context.osType,\n osVersion: context.osVersion,\n appKey: appKey,\n userName: context.userName,\n userId: context.userId,\n // cityId: context.cityId,\n // telephone: context.telephone,\n // latitude: context.latitude,\n // longitude: context.longitude,\n bizId: context.bizId,\n locale: context.locale,\n countyId: context.countyId,\n countryCallingCode: context.countryCallingCode,\n utcOffset: context.utcOffset,\n attrs: this.getAttrs(),\n from: this.getFrom()\n };\n }\n\n /**\n * 将事件数据属性映射成上报的字段。\n * @returns {IObjectMap<string>}\n */\n protected getDataKeyMap(): IObjectMap<string> {\n return {\n eventId: 'e',\n timestamp: 'ts',\n viewportId: 'uwid',\n version: 'jv',\n appName: 'an',\n appVersion: 'av',\n omgId: 'oid',\n url: 'v',\n latitude: 'lat',\n longitude: 'lng',\n userAgent: 'ua',\n osType: 'ot',\n osVersion: 'ov',\n appKey: 'ak',\n userName: 'un',\n userId: 'uid',\n cityId: 'cityid',\n telephone: 'tel',\n bizId: 'bizId',\n locale: 'le',\n countyId: 'coi',\n countryCallingCode: 'dcc',\n utcOffset: 'uo',\n from: 'fr'\n };\n }\n\n /**\n * 将attrs属性映射成上报的字段。\n * @returns {IObjectMap<string>}\n */\n protected getAttrsKeyMap(): IObjectMap<string> {\n return {\n _label: 'l',\n trackerVersion: 'jv'\n };\n }\n\n /**\n * 把event data(去除attrs)序列化成json字符串。\n * @returns {string}\n */\n public serialize2JsonStrWithoutAttrs(): string {\n try {\n const eventData: ITrackedEventData = this.getData();\n const obj: IPlanObject = {};\n const dataKeyMap: IObjectMap<string> = this.getDataKeyMap();\n for (const prop in eventData) {\n if (prop !== 'attrs' && !/Null|Undefined/.test(Object.prototype.toString.call(eventData[prop]))) {\n obj[dataKeyMap[prop] || prop] = eventData[prop];\n }\n }\n return JSON.stringify(obj);\n } catch (e) {\n GlobalUtil.dispatchOmgLog('serialize2JsonStrWithoutAttrs Error');\n return '';\n }\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public serialize(): string {\n try {\n const eventData: ITrackedEventData = this.getData();\n // 先用Object内置类的keys方法获取要排序对象的属性名,再利用Array原型上的sort方法对获取的属性名进行排序,newkey是一个数组\n const newkeys = Object.keys(eventData).sort();\n const kvs: string[] = [];\n const dataKeyMap: IObjectMap<string> = this.getDataKeyMap();\n // 要保证顺序 所以attrs也放进了循环\n newkeys.forEach((prop) => {\n if (prop !== 'attrs' && !/Null|Undefined/.test(Object.prototype.toString.call(eventData[prop]))) {\n kvs.push(`${ dataKeyMap[prop] || prop }=${ encodeURIComponent(eventData[prop]) }`);\n } else if (prop === 'attrs') {\n const attrsJsonStr: string = this.serializeAttrs2JsonStr(eventData.attrs || {});\n if (attrsJsonStr !== '{}') {\n kvs.push(`attrs=${ encodeURIComponent(attrsJsonStr) }`);\n }\n }\n });\n return kvs.join('&');\n } catch (e) {\n GlobalUtil.dispatchOmgLog('serialize Error');\n return '';\n }\n }\n\n /**\n * 格式化attrs\n * @param {IAttrs} attrs\n * @returns {string}\n */\n public serializeAttrs2JsonStr(attrs: IAttrs): string {\n try {\n const serializedAttrs: IPlanObject = {};\n const attrsKeyMap: IObjectMap<string> = this.getAttrsKeyMap();\n for (const prop in attrs) {\n if (attrs.hasOwnProperty(prop)) {\n const key: string = attrsKeyMap[prop] || prop;\n if (/Object|Array/.test(Object.prototype.toString.call(attrs[prop]))) {\n serializedAttrs[key] = JSON.stringify(attrs[prop]);\n } else if (/String/.test(Object.prototype.toString.call(attrs[prop]))) {\n serializedAttrs[key] = attrs[prop];\n } else if (/Number/.test(Object.prototype.toString.call(attrs[prop]))) {\n serializedAttrs[key] = attrs[prop];\n } else if (/Boolean/.test(Object.prototype.toString.call(attrs[prop]))) {\n serializedAttrs[key] = attrs[prop] | 0;\n }\n }\n }\n return JSON.stringify(serializedAttrs);\n } catch (e) {\n GlobalUtil.dispatchOmgLog('serializeAttrs2JsonStr Error');\n return '';\n }\n\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IContext}\n */\n public getContext(): IContext {\n return this.context;\n }\n\n /**\n * 该事件的额外参数。\n * @returns {IAttrs}\n */\n protected getAttrs(): IAttrs {\n const thisAttrs: any = {};\n const context = this.getContext() as ITrackerContext;\n if (context.openId) {\n thisAttrs['_OMGPUID'] = context.openId;\n }\n\n return Object.assign(thisAttrs, context.attrs || {}, this.attrs, this.getVersion());\n }\n\n /**\n * 获取框架来源\n * 由业务方指定\n */\n protected getFrom(): string {\n const context: ITrackerContext = this.getContext() as ITrackerContext;\n if (GlobalUtil.isEmptyString(context.from)) {\n return `h5-${ context.from }`;\n } else {\n return 'h5';\n }\n }\n\n /**\n * 事件的状态。\n * {@link com/didichuxing/tracker/h5/plugins/events/EventStatus}\n * @returns {EventStatus}\n */\n public abstract get status(): EventStatus;\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of BlockedEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { EventStatus } from 'com/didichuxing/tracker/plugin/events/EventStatus';\nimport AEvent from 'com/didichuxing/tracker/plugin/events/AEvent';\n\nexport default class BlockedEvent extends AEvent {\n\n /**\n * custom event id\n */\n private readonly eventId: string;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n */\n constructor(eventId: string, attrs: IAttrs, context: IContext) {\n super(attrs, context);\n this.eventId = eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n protected initSequence(): void {\n /* stop sequence */\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return this.eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {EventStatus}\n */\n public get status(): EventStatus {\n return EventStatus.BLOCKED;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of PluginUtils\n */\n\nexport default abstract class PluginUtils {\n\n /**\n * page init上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_PAGE_INIT: string = 'OMGH5PageInit-reporting-strategy-plugin';\n\n /**\n * page init上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_OMGLOG: string = 'OMGH5Log-reporting-strategy-plugin';\n\n /**\n * page view上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_PAGE_VIEW: string = 'OMGH5PageView-reporting-strategy-plugin';\n\n /**\n * page leave上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_PAGE_LEAVE: string = 'OMGH5PageLeave-reporting-strategy-plugin';\n\n /**\n * received上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_RECEIVED: string = 'OMGH5Received-reporting-strategy-plugin';\n\n /**\n * click上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_CLICK: string = 'OMGH5Click-reporting-strategy-plugin';\n\n /**\n * js error上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_JS_ERROR: string = 'OMGH5JsError-reporting-strategy-plugin';\n\n /**\n * 用户自定义上报错误事件插件名\n * @type {string}\n */\n public static PLUGIN_NAME_ERROR: string = 'OMGH5Error-reporting-strategy-plugin';\n\n /**\n * 用户自定义埋点事件插件名\n * @type {string}\n */\n public static PLUGIN_NAME_CUSTOM: string = 'OMGH5Custom-reporting-strategy-plugin';\n\n /**\n * 性能上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_PERFORMANCE: string = 'OMGH5Performance-reporting-strategy-plugin';\n\n /**\n * 安全上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_SAFETYPING: string = 'OMGH5SafeTyping-reporting-strategy-plugin';\n\n /**\n * page init event id\n * @type {string}\n */\n public static EVENT_ID_PAGE_INIT: string = 'OMGH5PageInit';\n /**\n * page init event id\n * @type {string}\n */\n public static EVENT_ID_OMG_LOG: string = 'OMGH5Log';\n\n /**\n * page view event id\n * @type {string}\n */\n public static EVENT_ID_PAGE_VIEW: string = 'OMGH5PageView';\n\n /**\n * page leave event id\n * @type {string}\n */\n public static EVENT_ID_PAGE_LEAVE: string = 'OMGH5PageLeave';\n\n /**\n * received event id\n * @type {string}\n */\n public static EVENT_ID_RECEIVED: string = 'OMGH5Received';\n\n /**\n * click event id\n * @type {string}\n */\n public static EVENT_ID_CLICK: string = 'OMGH5Click';\n\n /**\n * js error event id\n * @type {string}\n */\n public static EVENT_ID_JS_ERROR: string = 'OMGH5JsError';\n\n /**\n * 用户自定义上报错误事件id\n * @type {string}\n */\n public static EVENT_ID_ERROR: string = 'OMGH5Error';\n\n /**\n * 性能数据上报 事件id\n * @type {string}\n */\n public static EVENT_ID_PERFORMANCE: string = 'OMGH5Performance';\n /**\n * 安全专项上报 事件id\n * @type {string}\n */\n public static EVENT_ID_SAFETYPING: string = 'OMGSafeTyping';\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AReportingStrategyPlugin\n */\n\nimport { IReportingStrategyPlugin, ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IDeviceInfo } from 'com/didichuxing/tracker/context/IDeviceInfo';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport ReportCallbackUtil from 'com/didichuxing/tracker/plugin/utils/ReportCallbackUtil';\nimport BlockedEvent from 'com/didichuxing/tracker/plugin/events/BlockedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n// 上报通道国内域名集合\nconst UPLOAD_DOMAIN_LOCAL: string[] = [\n 'omgup.xiaojukeji.com',\n 'omgup1.xiaojukeji.com',\n 'omgup2.xiaojukeji.com'\n];\n\n// 上报通道国际域名集合\nconst UPLOAD_DOMAIN_GLOBAL: string[] = [\n 'omgup.didiglobal.com'\n];\n\n// 上报通道国际域名集合\nconst UPLOAD_DOMAIN_RU: string[] = [\n 'omgup-ru.didiglobal.com'\n];\n\nconst UA_BROWSER_REGEXPS: IUaRegExpNameItem[] = [{\n uaRegExps: [/(miniProgram)\\/([\\w\\.]+)/i], // WeChatMiniProgram,ios的ua中无miniProgram,但有MicroMessenger(表示是微信浏览器)\n name: 'WeChatMiniProgram'\n }, {\n uaRegExps: [/(micromessenger)\\/([\\w\\.]+)/i], // WeChat\n name: 'WeChat'\n}, {\n uaRegExps: [/(alipayclient)\\/([\\w\\.]+)/i], // Alipay\n name: 'Alipay'\n}, {\n uaRegExps: [/(QQ)\\/([\\d\\.]+)/i], // QQ, aka ShouQ\n name: 'QQ'\n},\n{\n uaRegExps: [/(didi\\.sdk)\\/([\\w\\.]+)/i], // didi.sdk\n name: 'didi.sdk'\n}, {\n name: 'dingding',\n uaRegExps: [/dingtalk/i] // ding ding talk\n}, {\n name: 'didi.passenger',\n uaRegExps: [/didi\\.passenger/i] // didi乘客端\n}, {\n name: 'didi.lite',\n uaRegExps: [/didi\\.lite/i] // uber客户端\n}, {\n name: 'zhuankuai.driver',\n uaRegExps: [\n /didigsui/i, // didi专快司机端安卓版本\n /ddudriver/i // didi专快司机端ios版本\n ] // didi专快司机端\n}, {\n name: 'zhuanche.assistant.driver',\n uaRegExps: [/zhuanche\\.cici/i] // 专车司机助手\n}, {\n name: 'didi.galaxy',\n uaRegExps: [/didi\\.galaxy/i] // 滴滴哈勃效率工具\n}, {\n name: 'daijia.driver',\n uaRegExps: [/daijia\\.driver/i] // 代驾司机端\n}, {\n name: 'didi.driver.tw',\n uaRegExps: [/didi\\.driver\\.tw/i] // didi司机端台湾\n}, {\n name: 'didi.driver.hk',\n uaRegExps: [/didi\\.driver\\.hk/i] // didi司机端台湾\n}, {\n name: 'didi.global',\n uaRegExps: [/global/i] // didi国际化端\n}, {\n name: 'didi.mini',\n uaRegExps: [/mini/i] // didi乘客端极简版\n}, {\n name: 'didies',\n uaRegExps: [/didies/i] // 企业版APP\n},\n{\n name: 'hm',\n uaRegExps: [/hm\\.passenger/i] // 街兔app\n}, {\n name: 'weibo',\n uaRegExps: [/weibo/i] // weibo\n}];\n\nconst UA_OS_REGEXPS: IUaRegExpNameItem[] = [{\n uaRegExps: [/(android)[\\/\\s-]?([\\w\\.]*)/i], // WeChat\n name: 'Android'\n}, {\n uaRegExps: [\n /cfnetwork\\/.+darwin/i,\n /ip[honead]{2,4}(?:.*os\\s([\\w]+)\\slike\\smac|;\\sopera)/i\n ], // iOS\n name: 'iOS'\n}, {\n uaRegExps: [\n /(mac\\sos\\sx)\\s?([\\w\\s\\.]*)/i,\n /(macintosh|mac(?=_powerpc)\\s)/i\n ], // Mac OS\n name: 'Mac OS'\n}, {\n uaRegExps: [\n /microsoft\\s(windows)\\s(vista|xp)/i, // Windows (iTunes)\n /(windows)\\snt\\s6\\.2;\\s(arm)/i // Windows RT\n ], // Windows\n name: 'Windows'\n}];\n\nexport interface IUaRegExpNameItem {\n /**\n * 正则表达式\n */\n readonly uaRegExps: RegExp[];\n\n /**\n * 正则表达式所对应的名称\n */\n readonly name: string;\n}\n\nexport interface INameVersion {\n readonly name: string;\n readonly version: string;\n}\n\nexport default abstract class AReportingStrategyPlugin implements IReportingStrategyPlugin {\n\n /**\n * 安装状态\n */\n private installed: boolean;\n\n /**\n * 插件所在的宿主对象。\n */\n private tracker: ITracker;\n\n /**\n * BreadcrumbList 名称\n */\n public breadcrumbListName: string;\n\n /**\n * @constructor\n */\n constructor(tracker: ITracker) {\n this.installed = false;\n this.tracker = tracker;\n // @ts-ignore\n const AppKey: string | undefined = this.tracker.getContext().appKey || this.tracker.getContext().productName;\n this.breadcrumbListName = this.getBreadcrumbListName(AppKey || 'Other');\n Object.assign(tracker.getContext(), this.initialzedContext);\n }\n\n /**\n * 获取BREADCRUMBS列表名称\n * @param appKey\n */\n private getBreadcrumbListName(appKey: string): string {\n appKey = appKey.replace(/\\./g, '_');\n return `____OMG_BREADCRUMBS_${appKey}__`;\n }\n\n private sliceBreadcrumbList(): void {\n const breadcrumbListName = (window as any)[this.breadcrumbListName] || [];\n if (breadcrumbListName.length > 10) {\n (window as any)[this.breadcrumbListName].length = 10;\n }\n }\n\n /**\n * 根据正则匹配UA,获取相应数据。\n * @returns {INameVersion | undefined}\n */\n private getInfo(uaRegExpNameItems: IUaRegExpNameItem[]): INameVersion | undefined {\n const ua: string = navigator.userAgent;\n for (let i: number = 0, j: number = uaRegExpNameItems.length; i < j; ++i) {\n const item: IUaRegExpNameItem = uaRegExpNameItems[i];\n let name: string = item.name;\n const uaRegExps: RegExp[] = item.uaRegExps;\n for (let idx: number = 0, len: number = uaRegExps.length; idx < len; ++idx) {\n const regExpExecArray: RegExpExecArray | null = uaRegExps[idx].exec(ua);\n if (regExpExecArray && regExpExecArray.length) {\n let version: string = regExpExecArray[2];\n if (name === 'iOS') {\n version = regExpExecArray[1].replace(/_/g, '.');\n } else if (name === 'Mac OS') {\n version = version.replace(/_/g, '.');\n // @ts-ignore\n // tslint:disable-next-line:max-line-length\n } else if (name === 'WeChat' && window.wx && wx && wx.miniProgram && wx.miniProgram.getEnv && typeof wx.miniProgram.getEnv === 'function') {\n // ios的ua中无miniProgram,但有MicroMessenger(表示是微信浏览器)\n // @ts-ignore\n wx.miniProgram.getEnv((res: any) => {\n if (res.miniprogram) {\n name = 'WeChatMiniProgram';\n }\n });\n // @ts-ignore\n // tslint:disable-next-line:max-line-length\n } else if (name === 'Alipay' && window.my && my && my.getEnv && typeof my.getEnv === 'function') {\n // @ts-ignore\n my.getEnv((res: any) => {\n if (res.miniprogram) {\n name = 'AlipayMiniProgram';\n }\n });\n }\n return {\n name: name,\n version: version\n };\n }\n }\n }\n return undefined;\n }\n\n /**\n * 获取设备信息。\n * @returns {IDeviceInfo}\n */\n protected getDeviceInfo(): IDeviceInfo {\n let appName: string = 'Others';\n let appVersion: string | undefined;\n let osType: string = 'Others';\n let osVersion: string | undefined;\n const appInfo: INameVersion | undefined = this.getInfo(this.getBrowserRegExpsInUA());\n if (appInfo) {\n appName = appInfo.name;\n appVersion = appInfo.version;\n }\n const osInfo: INameVersion | undefined = this.getInfo(this.getOSRegExpsInUA());\n if (osInfo) {\n osType = osInfo.name;\n osVersion = osInfo.version;\n }\n const context: ITrackerContext = this.getContext() as ITrackerContext;\n return {\n appName: context.appName || appName,\n appVersion: context.appVersion || appVersion,\n osType: context.osType || osType,\n osVersion: context.osVersion || osVersion\n };\n }\n\n /**\n * 浏览器名称正则\n * @returns {IUaRegExpNameItem[]}\n */\n protected getBrowserRegExpsInUA(): IUaRegExpNameItem[] {\n return UA_BROWSER_REGEXPS;\n }\n\n /**\n * 操作系统名称正则\n * @returns {IUaRegExpNameItem[]}\n */\n protected getOSRegExpsInUA(): IUaRegExpNameItem[] {\n return UA_OS_REGEXPS;\n }\n\n /**\n * 获取上报通道域名\n * @returns {string}\n */\n protected getUploadHost(): string {\n let uploadHost: string = (this.getContext() as ITrackerContext).uploadHost || 'omgup.xiaojukeji.com';\n if (/xiaojukeji\\.com/.test(uploadHost)) { // 国内域名\n if (UPLOAD_DOMAIN_LOCAL.indexOf(uploadHost) > -1) {\n uploadHost = UPLOAD_DOMAIN_LOCAL[Math.floor(Math.random() * UPLOAD_DOMAIN_LOCAL.length)];\n }\n } else if (/omgup-ru\\.didiglobal.com\\.com/.test(uploadHost)) { // 俄罗斯域名\n if (UPLOAD_DOMAIN_RU.indexOf(uploadHost) > -1) {\n uploadHost = UPLOAD_DOMAIN_RU[Math.floor(Math.random() * UPLOAD_DOMAIN_RU.length)];\n }\n } else if (/didiglobal\\.com/.test(uploadHost)) { // 国际域名\n if (UPLOAD_DOMAIN_GLOBAL.indexOf(uploadHost) > -1) {\n uploadHost = UPLOAD_DOMAIN_GLOBAL[Math.floor(Math.random() * UPLOAD_DOMAIN_GLOBAL.length)];\n }\n }\n return uploadHost;\n }\n\n /**\n * 初始化设置上下文信息。\n * @returns {IContext}\n */\n protected get initialzedContext(): IContext {\n return {\n ...this.getDeviceInfo(),\n uploadHost: this.getUploadHost()\n } as ITrackerContext;\n }\n\n /**\n * @abstract\n * @returns {string}\n */\n public abstract getName(): string;\n\n /**\n * @override\n * @inheritDoc\n * @returns {IContext}\n */\n public getContext(): IContext {\n return this.tracker.getContext();\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {ITracker}\n */\n public getTracker(): ITracker {\n return this.tracker;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public install(): boolean {\n this.installed = true;\n return this.installed;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public hasInstalled(): boolean {\n return this.installed;\n }\n\n /**\n * @abstract\n */\n public abstract execute(): void;\n\n /**\n * @abstract\n */\n public abstract exit(): void;\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public uninstall(): boolean {\n this.exit();\n this.installed = false;\n delete this.tracker;\n return true;\n }\n\n /**\n * 兼容callback\n * @param {ITrackedEventArgs} eventArgs\n * @param {ITrackedEvent} event\n * @returns {ITrackedEvent}\n */\n private compatibleCallback(eventArgs: ITrackedEventArgs, event: ITrackedEvent): ITrackedEvent {\n if (eventArgs.cb) {\n eventArgs.cb(event);\n }\n return event;\n }\n\n /**\n * 添加TrackerEvent至Breadcrumb\n * @param event\n */\n private addTrackerEventToBreadcrumb(event: ITrackedEvent) {\n if (event.getType() === PluginUtils.EVENT_ID_CLICK) {\n if ((window as any)[this.breadcrumbListName]) {\n (window as any)[this.breadcrumbListName].push(event.serialize());\n } else {\n (window as any)[this.breadcrumbListName] = [];\n (window as any)[this.breadcrumbListName].push(event.serialize());\n }\n if ((window as any)[this.breadcrumbListName].length > 10) {\n (window as any)[this.breadcrumbListName].length = 10;\n }\n }\n\n }\n\n /**\n * 获取事件上报器。\n * @returns {IEventReportor}\n */\n protected abstract getEventReportor(event: ITrackedEvent): IEventReportor;\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {Promise<ITrackedEvent>}\n */\n public report(eventArgs: ITrackedEventArgs): Promise<ITrackedEvent> {\n this.sliceBreadcrumbList();\n const eventBlacklist: string[] = (window as any)[ReportCallbackUtil.OMG_EVENT_BLACKLIST_NAME] || [];\n if (eventBlacklist.some((eventid: string): boolean => eventid === eventArgs.eventId)) { // 命中黑名单\n const event: ITrackedEvent = new BlockedEvent(eventArgs.eventId, eventArgs.attrs, this.getContext());\n return Promise\n .resolve(this.compatibleCallback(eventArgs, event))\n .then((finalEvent: ITrackedEvent): ITrackedEvent => {\n this.dispatchTrackerEventUnderWindow(finalEvent);\n return finalEvent;\n });\n } else {\n const trackedEvent: ITrackedEvent = this.generateEvent(eventArgs);\n this.dispatchTrackerEventUnderWindow(trackedEvent);\n this.addTrackerEventToBreadcrumb(trackedEvent);\n return this.getEventReportor(trackedEvent).reportEvent()\n .then(\n (event: ITrackedEvent): ITrackedEvent => this.compatibleCallback(eventArgs, event),\n (event: ITrackedEvent): ITrackedEvent => this.compatibleCallback(eventArgs, event)\n );\n }\n }\n\n /**\n * 给window派发tarcker event。\n * 派发给window的事件名为omegatrack\n * @param {ITrackedEvent} event\n */\n protected dispatchTrackerEventUnderWindow(event: ITrackedEvent): void {\n const mesageEvent: MessageEvent = document.createEvent('MessageEvent');\n mesageEvent.initMessageEvent('omegatrack', false, false, event, '', '', window);\n window.dispatchEvent(mesageEvent);\n }\n\n /**\n * 生成当前插件需要上报的事件对象。\n * @abstract\n * @returns {ITrackedEvent}\n */\n protected abstract generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent;\n}\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","require('../../modules/es6.reflect.get');\nmodule.exports = require('../../modules/_core').Reflect.get;\n","module.exports = require(\"core-js/library/fn/reflect/get\");","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Reflect$get = require(\"@babel/runtime-corejs2/core-js/reflect/get\");\n\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\n\nvar superPropBase = require(\"./superPropBase.js\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && _Reflect$get) {\n module.exports = _get = _Reflect$get;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n\n var desc = _Object$getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of SequencedEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITrackedEventData } from 'com/didichuxing/tracker/event/ITrackedEventData';\nimport { EventStatus } from 'com/didichuxing/tracker/plugin/events/EventStatus';\nimport AEvent from 'com/didichuxing/tracker/plugin/events/AEvent';\n\nexport default abstract class SequencedEvent extends AEvent {\n\n /**\n * Omega事件全局序列名称前缀。\n * @type {string}\n */\n public static readonly OMG_SEQUENCE_NAME_PREFIX: string = '__OMG_SEQUENCE_';\n\n /**\n * Omega事件全局序列名称后缀。\n * @type {string}\n */\n public static readonly OMG_SEQUENCE_NAME_SUFFIX: string = '__';\n\n /**\n * 事件的序列号。\n * 默认为-1,表示没有序列号。\n */\n private readonly sequence: number;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n * @param {IAttrs} info 事件生成的时候默认的一些属性信息\n */\n constructor(attrs: IAttrs, context: IContext, info?: IAttrs) {\n super(attrs, context, info);\n const prefix: string = SequencedEvent.OMG_SEQUENCE_NAME_PREFIX;\n const suffix: string = SequencedEvent.OMG_SEQUENCE_NAME_SUFFIX;\n if (!(window as any)[`${ prefix }${ (context as ITrackerContext).viewportId }${ suffix }`]) {\n (window as any)[`${ prefix }${ (context as ITrackerContext).viewportId }${ suffix }`] = 0;\n }\n this.sequence = (window as any)[`${ prefix }${ (context as ITrackerContext).viewportId }${ suffix }`]++;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {ITrackedEventData}\n */\n public getData(): ITrackedEventData {\n return {\n ...super.getData(),\n sequence: this.sequence\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap<string>}\n */\n protected getDataKeyMap(): IObjectMap<string> {\n return {\n ...super.getDataKeyMap(),\n sequence: 'seq'\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {EventStatus}\n */\n public get status(): EventStatus {\n return EventStatus.NORMAL;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of ViewportUtils\n */\n\nimport { IViewportExtraAttrs } from 'com/didichuxing/tracker/h5/plugins/utils/IViewportExtraAttrs';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\n\nexport default abstract class ViewportUtils {\n\n /**\n * 获取Viewport 盒模型属性。\n * @param {Window} viewport\n * @returns {IViewportExtraAttrs}\n */\n public static getViewportBox(viewport: Window = window): IViewportExtraAttrs {\n const doc: Document = viewport.document;\n return {\n viewportHeight: doc.documentElement.offsetHeight || doc.body.offsetHeight || 0,\n viewportWidth: doc.documentElement.offsetWidth || doc.body.offsetWidth || 0\n };\n }\n\n /**\n * 获取Viewport Box属性映射KV值。\n * @returns {IObjectMap<string>}\n */\n public static getViewportBoxAttrsMap(): IObjectMap<string> {\n return {\n viewportHeight: 'h',\n viewportWidth: 'w'\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of ElementUtils\n */\n\nimport { IElementExtraAttrs } from 'com/didichuxing/tracker/h5/plugins/utils/IElementExtraAttrs';\nimport { IViewportExtraAttrs } from 'com/didichuxing/tracker/h5/plugins/utils/IViewportExtraAttrs';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport ViewportUtils from 'com/didichuxing/tracker/h5/plugins/utils/ViewportUtils';\n\nexport default abstract class ElementUtils {\n\n /**\n * 获取目标对象所在的层级\n * 例如:body->0->1->3\n * @returns {string}\n */\n public static getHierarchy(element: Element): string {\n const hierarchies: Array<number | string> = [];\n while (element && element.tagName.toLowerCase() !== 'body') {\n const index: number = ElementUtils.getNodeIndexInSiblings(element);\n if (index >= 0) {\n hierarchies.push(index);\n }\n element = element.parentElement as Element;\n }\n if (element) {\n hierarchies.push('body');\n } else {\n hierarchies.push('document');\n }\n return hierarchies.reverse().join('->');\n }\n\n /**\n * 获取当前节点在其兄弟节点中的索引值。\n * @param {Element} element\n * @returns {number}\n */\n private static getNodeIndexInSiblings(element: Element): number {\n const parent: Element = element.parentElement as Element;\n if (parent) {\n const children: HTMLCollection = parent.children;\n for (let i: number = 0, j: number = children.length; i < j; ++i) {\n if (element === children[i]) {\n return i;\n }\n }\n }\n return -1;\n }\n\n /**\n * 获取TargetTagName\n * 在IE下 svg 的tagName可能为空 所以需要判断\n * 对于元素节点来说,tagName属性的值和nodeName属性的值是相同的\n * 所以如果tagName没有就去拿nodeName\n * 都没有就返回空字符串\n * @param element\n * @return string\n */\n private static getTargetTagName(element: Element): string {\n if (!element) {\n return '';\n }\n if (element.tagName && element.tagName.toLocaleUpperCase) {\n return element.tagName.toLocaleUpperCase();\n } else if (element.nodeName && element.nodeName.toLocaleLowerCase) {\n return element.nodeName.toLocaleLowerCase();\n } else {\n return '';\n }\n }\n\n /**\n * 获取Element额外的属性。\n * @param {HTMLElement} element\n * @returns {IElementExtraAttrs}\n */\n public static getElementExtraAttrs(element: HTMLElement): IElementExtraAttrs | IViewportExtraAttrs {\n const targetRect: ClientRect = element.getBoundingClientRect();\n return {\n targetTagName: this.getTargetTagName(element),\n targetId: element.id,\n targetName: element.getAttribute('name') || '',\n targetHref: element.getAttribute('href') || '',\n targetClassName: element.className,\n targetX: Math.round(targetRect.left),\n targetY: Math.round(targetRect.top),\n targetWidth: Math.round(targetRect.width) || element.offsetWidth,\n targetHeight: Math.round(targetRect.height) || element.offsetHeight,\n hierarchy: element.id || element.getAttribute('name') || ElementUtils.getHierarchy(element),\n ...ViewportUtils.getViewportBox()\n };\n }\n\n /**\n * 获取Element额外属性映射KV值。\n * @returns {IObjectMap<string>}\n */\n public static getElementExtraAttrsMap(): IObjectMap<string> {\n return {\n targetTagName: 'l',\n targetId: 'id',\n targetName: 'name',\n targetHref: 'href',\n targetText: 'text',\n targetClassName: 'class',\n targetX: 'ex',\n targetY: 'ey',\n targetWidth: 'ew',\n targetHeight: 'eh',\n hierarchy: 'rn',\n ...ViewportUtils.getViewportBoxAttrsMap()\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5InputEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport ElementUtils from 'com/didichuxing/tracker/h5/plugins/utils/ElementUtils';\n\nexport default class OMGH5InputEvent extends SequencedEvent {\n\n private targetElement: HTMLElement | undefined;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n * @param {HTMLElement} targetElement\n */\n constructor(attrs: IAttrs, context: IContext, targetElement?: HTMLElement) {\n super(attrs, context);\n this.targetElement = targetElement;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return 'OMGH5Input';\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IAttrs}\n */\n protected getAttrs(): IAttrs {\n if (this.targetElement && this.targetElement.tagName) {\n const type: string = this.targetElement.getAttribute('type') || this.targetElement.tagName.toLowerCase();\n const checkedAttrs: IAttrs = {};\n if (type === 'checkbox' || type === 'radio') {\n checkedAttrs['_ckd'] = Number((this.targetElement as HTMLInputElement).checked) || 0;\n }\n return {\n ...ElementUtils.getElementExtraAttrs(this.targetElement),\n _value: this.targetElement.getAttribute('value'),\n _type: type,\n ...checkedAttrs,\n ...super.getAttrs()\n };\n } else {\n return super.getAttrs();\n }\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap<string>}\n */\n protected getAttrsKeyMap(): IObjectMap<string> {\n return {\n ...super.getAttrsKeyMap(),\n ...ElementUtils.getElementExtraAttrsMap()\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5InputPlugin\n */\n\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5InputEvent from 'com/didichuxing/tracker/h5/activity/plugins/events/OMGH5InputEvent';\nimport { IActivityTrackerContext } from '../IActivityTrackerContext';\n\n/**\n * 能设置值的表单元素。\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form}\n * @type {{input: string}}\n */\nconst FORM_ELEMENT_MAP: IObjectMap<string> = {\n input : 'input' ,\n select : 'select' ,\n textarea : 'textarea'\n};\n\nexport default abstract class AOMGH5InputPlugin extends AReportingStrategyPlugin {\n\n private currentFormElement: HTMLElement | undefined;\n\n /**\n * @constructor\n */\n constructor(tracker: ITracker) {\n super(tracker);\n this.delegateInputChange = this.delegateInputChange.bind(this);\n }\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return 'OMGH5Input-reporting-strategy-plugin';\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n const autoInput = (this.getContext() as IActivityTrackerContext).autoInput;\n if (!(typeof autoInput === 'boolean' && autoInput === false)) {\n document.body.addEventListener('change' , this.delegateInputChange);\n }\n\n }\n\n /**\n * 委托input change事件\n * @param {Event} event\n */\n private delegateInputChange(event: Event): void {\n const target: HTMLElement = event.target as HTMLElement;\n if (target.tagName && FORM_ELEMENT_MAP[ target.tagName.toLowerCase() ]) {\n this.currentFormElement = target;\n this.report({\n eventId : 'OMGH5Input' ,\n attrs : {}\n });\n }\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n document.body.removeEventListener('change' , this.delegateInputChange);\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5InputEvent(eventArgs.attrs , this.getContext() , this.currentFormElement);\n }\n}\n","import { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class DataQueueSet {\n private static instance: DataQueueSet;\n private arr: ITrackedEvent[] = [];\n\n private constructor() {\n }\n\n public static getInstance(): DataQueueSet {\n if (!DataQueueSet.instance) {\n DataQueueSet.instance = new DataQueueSet();\n }\n return this.instance;\n }\n\n /**\n * 是否重复\n */\n private uniq(value: ITrackedEvent): boolean {\n let result = true;\n this.arr.forEach((item) => {\n if (value.getData().viewportId === item.getData().viewportId &&\n value.getData().sequence === item.getData().sequence) {\n result = false;\n }\n });\n return result;\n }\n\n /**\n * 添加\n */\n public add(value: ITrackedEvent): void {\n if (this.uniq(value)) {\n this.arr.push(value);\n }\n }\n\n /**\n * 是否为空\n */\n public empty(): boolean {\n return this.arr.length === 0;\n }\n\n /**\n * 删除所有\n */\n public removeAll(): void {\n this.arr = [];\n }\n\n /**\n * 返回数组\n */\n public getData(): ITrackedEvent[] {\n return this.arr;\n }\n\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AH5EventReportor\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport GlobalUtil from 'com/didichuxing/tracker/plugin/utils/GlobalUtil';\nimport DataQueueSet from 'com/didichuxing/tracker/plugin/reportor/DataQueueSet';\n\ninterface IUnreportedItem {\n\n /**\n * 未上报事件\n */\n event: ITrackedEvent;\n\n /**\n * 该事件上报成功后执行的方法。\n * @param {ITrackedEvent} evt\n */\n resolve(evt: ITrackedEvent): void;\n\n /**\n * 该事件上报失败后执行的方法。\n * @param {ITrackedEvent} evt\n */\n reject(evt: ITrackedEvent): void;\n}\n\nexport default abstract class AH5EventReportor implements IEventReportor {\n\n private context: ITrackerContext;\n private event: ITrackedEvent;\n\n /**\n * 待上报事件。\n */\n private unreportedEvents: IUnreportedItem[];\n /**\n * 上报失败事件\n */\n protected readonly errorreportedEvents = DataQueueSet.getInstance();\n\n /**\n * @constructor\n * @param {ITrackerContext} context\n * @param {ITrackedEvent} event\n */\n constructor(context: ITrackerContext, event: ITrackedEvent) {\n this.event = event;\n this.context = context;\n this.unreportedEvents = [];\n this.reportEventsAfterLoad = this.reportEventsAfterLoad.bind(this);\n window.addEventListener('load', this.reportEventsAfterLoad);\n }\n\n /**\n * load之后,将未上报事件集中依次上报。\n */\n private reportEventsAfterLoad(): void {\n window.removeEventListener('load', this.reportEventsAfterLoad);\n while (this.unreportedEvents.length) {\n const unreportedItem: IUnreportedItem | undefined = this.unreportedEvents.shift();\n if (unreportedItem) {\n this.reportEventImmediately(unreportedItem.event).then(unreportedItem.resolve, unreportedItem.reject);\n }\n }\n }\n\n /**\n * 得到context信息\n * @returns {ITrackerContext}\n */\n protected getContext(): ITrackerContext {\n return this.context;\n }\n\n /**\n * 上报路径path\n * @returns {string}\n */\n protected get reportPath(): string {\n return '/api/web/stat';\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {Promise<ITrackedEvent>}\n */\n public reportEvent(): Promise<ITrackedEvent> {\n if (!GlobalUtil.isEmptyString(this.event.getData().appKey)) {\n GlobalUtil.dispatchOmgLog('[Omega] H5 appKey 参数 不可为空');\n throw new Error('[Omega] H5 appKey 参数 不可为空');\n return Promise.reject();\n }\n\n if (GlobalUtil.isLoaded() || this.event.getType() === PluginUtils.EVENT_ID_PAGE_INIT ||\n this.event.getType() === PluginUtils.EVENT_ID_OMG_LOG) {\n // onload已经执行完或者当前事件为页面初始化事件\n // 如果有上报错误的数据也去上报\n if (!this.errorreportedEvents.empty()) {\n this.errorreportedEvents.getData().forEach((value) => {\n this.reportEventImmediately(value);\n });\n }\n this.errorreportedEvents.removeAll();\n return this.reportEventImmediately(this.event);\n } else {\n // load未完成,将事件聚集,等待集中上报。\n return new Promise<ITrackedEvent>((resolve: (evt: ITrackedEvent) => void,\n reject: (evt: ITrackedEvent) => void): void => {\n this.unreportedEvents.push({\n event: this.event,\n resolve: resolve,\n reject: reject\n });\n });\n }\n }\n\n /**\n * 马上直接上报事件。\n * @param {ITrackedEvent} event\n * @returns {Promise<ITrackedEvent>}\n */\n protected abstract reportEventImmediately(event: ITrackedEvent): Promise<ITrackedEvent>;\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of FailedEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { EventStatus } from 'com/didichuxing/tracker/plugin/events/EventStatus';\nimport AEvent from 'com/didichuxing/tracker/plugin/events/AEvent';\n\nexport default class FailedEvent extends AEvent {\n\n /**\n * custom event id\n */\n private readonly eventId: string;\n\n /**\n * error event\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error}\n */\n private readonly error: Error;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n */\n constructor(error: Error, eventId: string, attrs: IAttrs, context: IContext) {\n super(attrs, context);\n this.error = error;\n this.eventId = eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return this.eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {EventStatus}\n */\n public get status(): EventStatus {\n return EventStatus.FAILED;\n }\n\n /**\n * 获取出错信息事件。\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error}\n * @returns {ErrorEvent}\n */\n public getError(): Error {\n return this.error;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of TimeoutEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { EventStatus } from 'com/didichuxing/tracker/plugin/events/EventStatus';\nimport AEvent from 'com/didichuxing/tracker/plugin/events/AEvent';\n\nexport default class TimeoutEvent extends AEvent {\n\n /**\n * custom event id\n */\n private readonly eventId: string;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n */\n constructor(eventId: string, attrs: IAttrs, context: IContext) {\n super(attrs, context);\n this.eventId = eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return this.eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {EventStatus}\n */\n public get status(): EventStatus {\n return EventStatus.TIMEOUT;\n }\n}\n","export default abstract class EncodeHash {\n /**\n * 对输入字符串进行Hash编码。\n * @param {string} str\n * @returns {number}\n */\n public static encodeHash(str: string): number {\n let hash: number = 1315423911;\n for (let i: number = 0, j: number = str.length; i < j; ++i) {\n hash ^= ((hash << 5) + str.charCodeAt(i) + (hash >> 2));\n }\n return hash & 0x7FFFFFFF;\n }\n\n /**\n * 输出增加tk的URL\n * @param str\n */\n public static encodeHashUrl(str: string): string {\n return `${ str }&tk=${ this.encodeHash(str) }`;\n }\n}\n","import AH5EventReportor from 'com/didichuxing/tracker/plugin/reportor/AH5EventReportor';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport FailedEvent from 'com/didichuxing/tracker/plugin/events/FailedEvent';\nimport TimeoutEvent from 'com/didichuxing/tracker/plugin/events/TimeoutEvent';\nimport ReportCallbackUtil from 'com/didichuxing/tracker/plugin/utils/ReportCallbackUtil';\nimport EncodeHash from 'com/didichuxing/tracker/plugin/utils/EncodeHash';\nimport GlobalUtil from 'com/didichuxing/tracker/plugin/utils/GlobalUtil';\n\n/**\n * 上报超时默认时间,单位毫秒。\n * @type {number}\n */\nconst REPORT_TIMEOUT: number = 1500;\n\nexport default class PostEventReportor extends AH5EventReportor {\n /**\n * 根据当前的时间进行cityID的加密\n */\n private getOmgci(): string {\n if (this.getContext().cityId) {\n const cId = Number(this.getContext().cityId);\n /**\n * 确保当前值符合要求\n */\n if (!isNaN(cId)) {\n const len = String(cId).length;\n let ts = `${new Date().getTime()}`;\n ts = ts.slice(0, -(len + 1));\n ts = `${ts}${cId}${len}`;\n return ts;\n }\n }\n return '';\n }\n\n /**\n * @override\n * @param {ITrackedEvent} event\n * @returns {Promise<ITrackedEvent>}\n */\n protected reportEventImmediately(event: ITrackedEvent): Promise<ITrackedEvent> {\n return new Promise<ITrackedEvent>((resolve: (evt: ITrackedEvent) => void,\n reject: (evt: ITrackedEvent) => void): void => {\n const URL = `${GlobalUtil.getProtocol()}${this.getContext().uploadHost}${this.reportPath}`;\n const xhr = new XMLHttpRequest();\n const eventData = event.getData();\n xhr.timeout = this.getContext().timeout || REPORT_TIMEOUT;\n xhr.ontimeout = () => {\n reject(new TimeoutEvent(event.getType(), eventData.attrs || {}, this.getContext()));\n };\n xhr.open('POST', URL + `?e=${event.getType()}`);\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');\n xhr.setRequestHeader('oid', eventData.omgId || '');\n xhr.setRequestHeader('seq', eventData.appKey || '');\n const cid = this.getOmgci();\n if (cid) {\n xhr.setRequestHeader('omgci', cid);\n }\n // 为请求设置为唯一值\n xhr.setRequestHeader(\n 'msgid',\n `${eventData.viewportId || ''}-${eventData.sequence || ''}-${eventData.timestamp || ''}`\n );\n xhr.send(EncodeHash.encodeHashUrl(event.serialize()));\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4 && xhr.status === 200) {\n try {\n const response = JSON.parse(xhr.responseText);\n if (response.state && response.state.code !== 200) {\n if (response.state.code === 500) {\n this.errorreportedEvents.add(event);\n }\n GlobalUtil.dispatchOmgLog(`POST 200 上报错误${event.getType()}_\n ${response.state.code || 0}_${response.state.msg || ''}`);\n }\n ReportCallbackUtil.reportCallback(response);\n resolve(event);\n } catch (error) {\n // 解析返回值失败但是不抛异常\n console.error(`上报成功后解析失败:${xhr.responseText}`);\n }\n }\n };\n xhr.onerror = () => {\n if (xhr.status === 500) {\n this.errorreportedEvents.add(event);\n } else {\n console.error('POST上报失败onerror' + xhr.status);\n }\n reject(new FailedEvent(new Error('POST Error'), event.getType(),\n eventData.attrs || {}, this.getContext()));\n };\n });\n }\n}\n","import { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport JsonpEventReportor from 'com/didichuxing/tracker/plugin/reportor/JsonpEventReportor';\nimport BeaconEventReportor from 'com/didichuxing/tracker/plugin/reportor/BeaconEventReportor';\nimport PostEventReportor from 'com/didichuxing/tracker/plugin/reportor/PostEventReportor';\n\nexport default class SendStrategyChoice {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n public static switchSendStrategy(context: ITrackerContext, event: ITrackedEvent) {\n if (navigator.sendBeacon) {\n // 第一优先级sendBeacon\n return new PostEventReportor(context, event);\n // return new BeaconEventReportor(context, event);\n // } else if (event.serialize().length < 1500) {\n // // 第二优先级JSONP 可以阻塞 保证发送成功 但因为长度get请求问题长度限制可能无法成功,所以对长度做了限制\n // return new JsonpEventReportor(context, event);\n } else {\n return new PostEventReportor(context, event);\n }\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5InputPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5InputPlugin from 'com/didichuxing/tracker/h5/activity/plugins/AOMGH5InputPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nexport default class OMGH5InputPlugin extends AOMGH5InputPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","require('../../modules/es6.array.is-array');\nmodule.exports = require('../../modules/_core').Array.isArray;\n","module.exports = require(\"core-js/library/fn/array/is-array\");","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Array$isArray = require(\"@babel/runtime-corejs2/core-js/array/is-array\");\n\nvar arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (_Array$isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","module.exports = require(\"core-js/library/fn/array/from\");","var _Symbol = require(\"@babel/runtime-corejs2/core-js/symbol\");\n\nvar _Symbol$iterator = require(\"@babel/runtime-corejs2/core-js/symbol/iterator\");\n\nvar _Array$from = require(\"@babel/runtime-corejs2/core-js/array/from\");\n\nfunction _iterableToArray(iter) {\n if (typeof _Symbol !== \"undefined\" && iter[_Symbol$iterator] != null || iter[\"@@iterator\"] != null) return _Array$from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Array$from = require(\"@babel/runtime-corejs2/core-js/array/from\");\n\nvar arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return _Array$from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5MediumEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport ElementUtils from 'com/didichuxing/tracker/h5/plugins/utils/ElementUtils';\n\nexport default class OMGH5MediumEvent extends SequencedEvent {\n\n private targetElement: HTMLMediaElement;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n */\n constructor(attrs: IAttrs, context: IContext, targetElement: HTMLMediaElement) {\n super(attrs, context);\n this.targetElement = targetElement;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return 'OMGH5Medium';\n }\n\n /**\n * @override\n * @inheritDoc\n * @see {@link http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=164600825}\n * @returns {IAttrs}\n */\n protected getAttrs(): IAttrs {\n return {\n ...ElementUtils.getElementExtraAttrs(this.targetElement),\n _type: this.targetElement.tagName.toLowerCase(),\n _mu: this.targetElement.currentSrc, // 媒体资源url, http://www.w3school.com.cn/html5/av_prop_currentsrc.asp\n _loop: Number(this.targetElement.loop), // http://www.w3school.com.cn/html5/av_prop_loop.asp\n _auto: Number(this.targetElement.autoplay), // http://www.w3school.com.cn/html5/av_prop_autoplay.asp\n _ct: this.targetElement.currentTime * 1000, // http://www.w3school.com.cn/html5/av_prop_currenttime.asp\n _nts: this.targetElement.networkState, // http://www.w3school.com.cn/html5/av_prop_networkstate.asp\n _pl: this.targetElement.preload, // http://www.w3school.com.cn/html5/av_prop_preload.asp\n ...super.getAttrs()\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap<string>}\n */\n protected getAttrsKeyMap(): IObjectMap<string> {\n return {\n ...super.getAttrsKeyMap(),\n ...ElementUtils.getElementExtraAttrsMap()\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5MediumPlugin\n */\n\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5MediumEvent from 'com/didichuxing/tracker/h5/activity/plugins/events/OMGH5MediumEvent';\nimport { IActivityTrackerContext } from 'com/didichuxing/tracker/h5/activity/IActivityTrackerContext';\n\nconst DETECTION_TIMER_KEY_NAME: string = 'detectionTimer';\n\ninterface ITrackedMediumEventArgs extends ITrackedEventArgs {\n\n /**\n * 媒体目标元素。\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement}\n */\n readonly target: HTMLMediaElement;\n}\n\nexport default abstract class AOMGH5MediumPlugin extends AReportingStrategyPlugin {\n\n private mediumElements: HTMLMediaElement[] = [];\n\n /**\n * @constructor\n */\n constructor(tracker: ITracker) {\n super(tracker);\n this.handleMediumPlay = this.handleMediumPlay.bind(this);\n this.handleMediumPause = this.handleMediumPause.bind(this);\n this.handleMediumEnded = this.handleMediumEnded.bind(this);\n this.handleMediumReadyStateChange = this.handleMediumReadyStateChange.bind(this);\n }\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return 'OMGH5Medium-reporting-strategy-plugin';\n }\n\n /**\n * @override\n * @inheritDoc\n * @see {@link http://www.w3school.com.cn/tags/html_ref_eventattributes.asp}\n */\n public execute(): void {\n const autoMedium = (this.getContext() as IActivityTrackerContext).autoMedium;\n if (!(typeof autoMedium === 'boolean' && autoMedium === false)) {\n this.mediumElements = this.mediumElements.concat(\n [ ...document.getElementsByTagName('video') ] ,\n [ ...document.getElementsByTagName('audio') ]\n );\n for (let i: number = 0 , j: number = this.mediumElements.length ; i < j ; ++i) {\n const mediumElement: HTMLMediaElement = this.mediumElements[ i ];\n mediumElement.addEventListener('play' , this.handleMediumPlay);\n mediumElement.addEventListener('pause' , this.handleMediumPause);\n mediumElement.addEventListener('ended' , this.handleMediumEnded);\n mediumElement.addEventListener('readystatechange' , this.handleMediumReadyStateChange);\n }\n }\n\n }\n\n /**\n * 媒体元素探测上报。\n * @param {HTMLMediaElement} target\n */\n private handleMediumDetection(target: HTMLMediaElement): void {\n target.dataset[ DETECTION_TIMER_KEY_NAME ] = String(window.setTimeout((): void => {\n this.reportWidthAttrs({\n _action : 'detection'\n } , target).then((): void => {\n this.handleMediumDetection(target);\n });\n } , 1500));\n }\n\n /**\n * 清除探测上报。\n * @param {HTMLMediaElement} target\n */\n private clearMediumDetection(target: HTMLMediaElement): void {\n clearTimeout(Number(target.dataset[ DETECTION_TIMER_KEY_NAME ]));\n }\n\n /**\n * 媒体播放上报。\n * @param {Event} event\n */\n private handleMediumPlay(event: Event): void {\n this.reportWidthAttrs({\n _action : 'play'\n } , event.target as HTMLMediaElement);\n this.handleMediumDetection(event.target as HTMLMediaElement);\n }\n\n /**\n * 媒体暂停上报。\n * @param {Event} event\n */\n private handleMediumPause(event: Event): void {\n this.clearMediumDetection(event.target as HTMLMediaElement);\n this.reportWidthAttrs({\n _action : 'pause'\n } , event.target as HTMLMediaElement);\n }\n\n /**\n * 媒体播放完成上报。\n * @param {Event} event\n */\n private handleMediumEnded(event: Event): void {\n this.reportWidthAttrs({\n _action : 'end'\n } , event.target as HTMLMediaElement);\n }\n\n /**\n * 每当就绪状态改变时进行上报(就绪状态监测媒介数据的状态)。\n * @param {Event} event\n */\n private handleMediumReadyStateChange(event: Event): void {\n this.reportWidthAttrs({\n _action : 'readState'\n } , event.target as HTMLMediaElement);\n }\n\n /**\n * 带着属性上报。\n * @param {IAttrs} attrs\n * @param {HTMLMediaElement} target\n */\n private reportWidthAttrs(attrs: IAttrs , target: HTMLMediaElement): Promise<ITrackedEvent> {\n return this.report({\n eventId : 'OMGH5Medium' ,\n attrs : attrs ,\n target : target\n } as ITrackedMediumEventArgs);\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n while (this.mediumElements.length) {\n const mediumElement: HTMLMediaElement | undefined = this.mediumElements.pop();\n if (mediumElement) {\n mediumElement.removeEventListener('play' , this.handleMediumPlay);\n mediumElement.removeEventListener('pause' , this.handleMediumPause);\n mediumElement.removeEventListener('ended' , this.handleMediumEnded);\n mediumElement.removeEventListener('readystatechange' , this.handleMediumReadyStateChange);\n this.clearMediumDetection(mediumElement);\n }\n }\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedMediumEventArgs): ITrackedEvent {\n return new OMGH5MediumEvent(eventArgs.attrs , this.getContext() , eventArgs.target);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5MediumPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5MediumPlugin from 'com/didichuxing/tracker/h5/activity/plugins/AOMGH5MediumPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5MediumPlugin extends AOMGH5MediumPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ScrollEndEvent\n */\n\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport ViewportUtils from 'com/didichuxing/tracker/h5/plugins/utils/ViewportUtils';\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\n\nexport default class OMGH5ScrollEndEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return 'OMGH5ScrollEnd';\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IAttrs}\n */\n protected getAttrs(): IAttrs {\n return {\n ...super.getAttrs(),\n ...ViewportUtils.getViewportBox(),\n scrollX: window.scrollX,\n scrollY: window.scrollY\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap<string>}\n */\n protected getAttrsKeyMap(): IObjectMap<string> {\n return {\n ...super.getAttrsKeyMap(),\n ...ViewportUtils.getViewportBoxAttrsMap(),\n scrollX: '_sx',\n scrollY: '_sy'\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5ScrollEndPlugin\n */\n\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5ScrollEndEvent from 'com/didichuxing/tracker/h5/activity/plugins/events/OMGH5ScrollEndEvent';\nimport { IActivityTrackerContext } from 'com/didichuxing/tracker/h5/activity/IActivityTrackerContext';\n\nexport default abstract class AOMGH5ScrollEndPlugin extends AReportingStrategyPlugin {\n\n private scrollTimer: number = 0;\n\n private currentScrollTop: number = 0;\n\n /**\n * @constructor\n */\n constructor(tracker: ITracker) {\n super(tracker);\n this.handleScrollEnd = this.handleScrollEnd.bind(this);\n }\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return 'OMGH5ScrollEnd-reporting-strategy-plugin';\n }\n\n /**\n * handle scroll end\n */\n private handleScrollEnd(): void {\n clearTimeout(this.scrollTimer);\n this.scrollTimer = window.setTimeout((): void => {\n this.report({\n eventId : 'OMGH5ScrollEnd' ,\n attrs : {}\n });\n }, 3000);\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n const autoScrollEnd = (this.getContext() as IActivityTrackerContext).autoScrollEnd;\n if (!(typeof autoScrollEnd === 'boolean' && autoScrollEnd === false)) {\n window.addEventListener('scroll' , this.handleScrollEnd);\n }\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n window.removeEventListener('scroll' , this.handleScrollEnd);\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5ScrollEndEvent(eventArgs.attrs , this.getContext());\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ScrollEndPlugin\n */\n\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport AOMGH5ScrollEndPlugin from 'com/didichuxing/tracker/h5/activity/plugins/AOMGH5ScrollEndPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nexport default class OMGH5ScrollEndPlugin extends AOMGH5ScrollEndPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of PageViewEvent\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport { IPerformanceMemory, IPerformanceTiming } from 'com/didichuxing/tracker/h5/plugins/IPerformance';\nimport { IPlanObject } from 'com/didichuxing/IPlanObject';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\n\ninterface IPVExtraAttrs extends IAttrs {\n\n /**\n * @readonly\n * 载入当前文档的文档的 URL\n */\n readonly referrer: string;\n\n /**\n * @readonly\n * cookie是否开启\n */\n readonly cookieEnabled: boolean;\n\n /**\n * @readonly\n * 当前文档标题\n */\n readonly pageTitle: string;\n\n /**\n * @readonly\n * 当前访问协议\n */\n readonly protocol: string;\n\n /**\n * @readonly\n * 当前访问主机地址。\n */\n readonly host: string;\n\n /**\n * @readonly\n * 当前访问路径\n */\n readonly path: string;\n\n /**\n * @readonly\n * 当前访问hash\n */\n readonly hash: string;\n\n /**\n * @readonly\n * 当前访问search值。\n */\n readonly search: string;\n\n /**\n * @readonly\n * 当前设备屏幕高。\n */\n readonly screenHeight: number;\n\n /**\n * @readonly\n * 当前设备屏幕宽。\n */\n readonly screenWidth: number;\n\n /**\n * @readonly\n * 当前设备颜色深度\n */\n readonly colorDepth: string;\n\n /**\n * @readonly\n * 当前设备供应商。\n */\n readonly deviceVendor: string;\n}\n\nexport default class OMGH5PageViewEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_PAGE_VIEW;\n }\n\n /**\n * 获取全局性能信息。\n * {@link https://github.com/addyosmani/timing.js/issues/9}\n * @returns {Performance}\n */\n private get globalPerformance(): Performance {\n const global: any = window;\n return global.performance || global.webkitPerformance || global.msPerformance || global.mozPerformance;\n }\n\n /**\n * 获取时间方面性能数据。\n * {@link https://www.w3.org/TR/navigation-timing/}\n * @returns {IPerformance}\n */\n protected get performanceTiming(): IPerformanceTiming {\n const timing: PerformanceTiming = this.globalPerformance.timing;\n const FP = performance.getEntriesByName('first-paint')[0];\n const FCP = performance.getEntriesByName('first-contentful-paint')[0];\n const FMP = performance.getEntriesByName('fmp')[0];\n return {\n redirectDuration: timing.fetchStart - timing.navigationStart,\n dnsDuration: timing.domainLookupEnd - timing.domainLookupStart,\n tcpDuration: timing.connectEnd - timing.connectStart,\n ttfbDuration: timing.responseStart - timing.requestStart,\n transDuration: timing.responseEnd - timing.responseStart,\n domParsedDuration: timing.domInteractive - timing.responseEnd,\n resourceLoadDuration: timing.loadEventStart - timing.domContentLoadedEventEnd,\n firstByteTime: timing.responseStart - timing.domainLookupStart,\n htmlLoadCompleteTime: timing.responseEnd - timing.navigationStart,\n firstPaintTime: FP && FP.startTime,\n firstContentfulPaintTime: FCP && FCP.startTime,\n firstMeaningfulPaintTime: FMP && FMP.startTime,\n interactTime: timing.domInteractive - timing.navigationStart,\n domReadyTime: timing.domContentLoadedEventEnd - timing.navigationStart,\n pageLoadTime: timing.loadEventStart - timing.navigationStart,\n domContentLoadedTime: timing.domContentLoadedEventEnd - timing.navigationStart,\n domCompleteTime: timing.domComplete - timing.navigationStart,\n trackerSDKLoadDuration: this.trackerSDKLoadDuration,\n loadEventTime: timing.loadEventEnd - timing.navigationStart\n };\n }\n\n /**\n * 获取内存方面性能数据。\n * @returns {IPerformanceMemory}\n */\n protected get performanceMemory(): IPerformanceMemory {\n const memory: IPlanObject = (this.globalPerformance as any).memory || {};\n return {\n usedJSHeapSize: memory.usedJSHeapSize as number || 0,\n totalJSHeapSize: memory.totalJSHeapSize as number || 0,\n jsHeapSizeLimit: memory.jsHeapSizeLimit as number || 0\n };\n }\n\n /**\n * tracker sdk包加载的时间。\n * @returns {number}\n */\n protected get trackerSDKLoadDuration(): number {\n if (this.globalPerformance && this.globalPerformance.getEntries) {\n const entries: PerformanceEntry[] = this.globalPerformance.getEntries();\n let trackerPerformanceEntry: PerformanceEntry | undefined;\n entries.some((entry: PerformanceEntry): boolean => {\n const initiatorType: string = (entry as PerformanceResourceTiming).initiatorType;\n if (initiatorType && initiatorType === 'script' && /\\/omega[\\.\\w]*\\.min\\.js$/.test(entry.name)) {\n trackerPerformanceEntry = entry;\n return true;\n }\n return false;\n });\n if (trackerPerformanceEntry) {\n return Math.round(trackerPerformanceEntry.duration);\n }\n }\n return 0;\n }\n\n /**\n * 获得pv上报时所带的性能数据。\n * @returns {(IAttrs & IPerformanceTiming & IPerformanceMemory) | IAttrs}\n */\n private get pvPerformanceAttrs(): (IAttrs & IPerformanceTiming & IPerformanceMemory) | IAttrs {\n if (this.globalPerformance) {\n return {\n ...this.performanceTiming,\n ...this.performanceMemory\n };\n }\n return {};\n }\n\n /**\n * 获取PV额外的属性数据。\n * @returns {IPVExtraAttrs}\n */\n private get pvExtraAttrs(): IPVExtraAttrs {\n const document: Document = window.document || {documentElement: {}};\n const navigator: Navigator = window.navigator || {};\n const location: Location = window.location || {};\n const screen: Screen = window.screen || {};\n const context: any = this.getContext();\n let search: string = location.search;\n if (context && context.noUrlParam) {\n search = '';\n }\n return {\n referrer: document.referrer,\n cookieEnabled: navigator.cookieEnabled,\n pageTitle: (this.getContext() as any).pageTitle || document.title,\n protocol: location.protocol,\n host: location.host,\n path: location.pathname,\n hash: location.hash,\n search,\n screenWidth: document.documentElement.clientWidth,\n screenHeight: document.documentElement.clientHeight,\n colorDepth: screen.colorDepth ? `${ screen.colorDepth }-bit` : '',\n deviceVendor: (this.getContext() as ITrackerContext).deviceVendor || ''\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IAttrs}\n */\n protected getAttrs(): IAttrs {\n return {\n ...this.pvExtraAttrs,\n ...this.pvPerformanceAttrs,\n ...super.getAttrs()\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap<string>}\n */\n protected getAttrsKeyMap(): IObjectMap<string> {\n return {\n ...super.getAttrsKeyMap(),\n ...this.getPVExtraAttrsKeyMap(),\n ...this.getPerformanceTimingAttrsKeyMap(),\n ...this.getPerformanceMemoryAttrsKeyMap()\n };\n }\n\n /**\n * PV额外上报属性键值对映射实体。\n * @returns {IObjectMap<string>}\n */\n private getPVExtraAttrsKeyMap(): IObjectMap<string> {\n return {\n referrer: 'r',\n cookieEnabled: 'c',\n pageTitle: 'pt',\n protocol: 'upr',\n host: 'uho',\n path: 'upa',\n hash: 'uha',\n search: 'us',\n screenHeight: 'sh',\n screenWidth: 'sw',\n colorDepth: 'cd',\n deviceVendor: 'm',\n pvType: 'pv_t'\n };\n }\n\n /**\n * 耗时相关性能属性键值对映射实体。\n * @see {@interface com/didichuxing/tracker/h5/plugins/pv/IPerformance}\n * @returns {IObjectMap<string>}\n */\n private getPerformanceTimingAttrsKeyMap(): IObjectMap<string> {\n return {\n dnsDuration: 't_dns',\n tcpDuration: 't_tcp',\n ttfbDuration: 't_rq',\n transDuration: 't_trans',\n domParsedDuration: 't_psdm',\n resourceLoadDuration: 't_res',\n firstByteTime: 't_fb',\n htmlLoadCompleteTime: 't_hlc',\n firstPaintTime: 't_fp',\n firstContentfulPaintTime: 't_fcp',\n firstMeaningfulPaintTime: 't_fmp',\n interactTime: 't_di',\n domReadyTime: 't_dmrd',\n pageLoadTime: 't_pgrd',\n domContentLoadedTime: 't_dcl',\n domCompleteTime: 't_dc',\n trackerSDKLoadDuration: 't_omgld',\n loadEventTime: 't_ld'\n };\n }\n\n /**\n * 内存相关性能属性键值对映射实体。\n * @see {@interface com/didichuxing/tracker/h5/plugins/pv/IPerformance}\n * @returns {IObjectMap<string>}\n */\n private getPerformanceMemoryAttrsKeyMap(): IObjectMap<string> {\n return {\n usedJSHeapSize: 'm_used',\n totalJSHeapSize: 'm_total',\n jsHeapSizeLimit: 'm_limit'\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5PageViewPlugin\n */\n\nimport { ITracker } from '@omega-tracker/core/src/com/didichuxing/tracker/ITracker';\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { ITrackerConfiguration } from 'com/didichuxing/tracker/config/ITrackerConfiguration';\nimport { ITrackerAdvancedContext } from 'com/didichuxing/tracker/h5/context/ITrackerAdvancedContext';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5PageViewEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5PageViewEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nconst PV_TYPE = {\n hash: 'hash',\n popstate: 'popstate',\n normal: 'normal'\n};\n\nexport default abstract class AOMGH5PageViewPlugin extends AReportingStrategyPlugin {\n\n /**\n * 访问过的url栈。\n * @type {string[]}\n */\n private urlStatck: string[] = [document.referrer];\n\n /**\n * @constructor\n */\n constructor(tracker: ITracker) {\n super(tracker);\n this.reportPVUnderHashChange = this.reportPVUnderHashChange.bind(this);\n this.reportPVUnderPopstateChange = this.reportPVUnderPopstateChange.bind(this);\n this.urlStatck.push(location.href);\n }\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_PAGE_VIEW;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {ITrackerConfiguration}\n */\n protected get initialzedContext(): IContext {\n const context: ITrackerAdvancedContext = this.getContext() as ITrackerAdvancedContext;\n return {\n ...super.initialzedContext,\n autoSendPageView: typeof context.autoSendPageView === 'boolean' ? context.autoSendPageView : true\n } as IContext;\n }\n\n /**\n * 上报PV数据。\n */\n protected reportPV(pvType: string): void {\n this.getTracker().setConfig({\n url: window.location.href\n });\n let cityId;\n const context = this.getContext() as any;\n if (context && context.cityId) {\n cityId = context.cityId;\n }\n let referrer: string = this.urlStatck.length > 1 ? this.urlStatck[this.urlStatck.length - 2] : this.urlStatck[0];\n try {\n if (context && context.noUrlParam) {\n referrer = referrer.split('?')[0];\n } else if (context && context.formatUrl) {\n referrer = context.formatUrl(referrer);\n }\n } catch (error) {\n console.info('referrer解析异常', error);\n }\n this.report({\n eventId: PluginUtils.EVENT_ID_PAGE_VIEW,\n attrs: {\n referrer,\n pvType,\n omg_ci: cityId\n }\n });\n }\n\n /**\n * hash change上报pv\n */\n protected reportPVUnderHashChange(): void {\n this.reportPV(PV_TYPE.hash);\n }\n\n /**\n * popstate change上报pv\n */\n protected reportPVUnderPopstateChange(): void {\n this.reportPV(PV_TYPE.popstate);\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n const context: ITrackerAdvancedContext = this.getContext() as ITrackerAdvancedContext;\n if (context.autoSendPageView) { // 自动上报PV数据\n this.reportPV(PV_TYPE.normal);\n if (context.hashRouterEnable) { // 监控hash history change\n window.addEventListener('hashchange', this.reportPVUnderHashChange);\n }\n if (context.browserRouterEnable) { // 监控browser popstate change\n window.addEventListener('popstate', this.reportPVUnderPopstateChange);\n }\n }\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n while (this.urlStatck.length) {\n this.urlStatck.pop();\n }\n window.removeEventListener('hashchange', this.reportPVUnderHashChange);\n window.removeEventListener('popstate', this.reportPVUnderPopstateChange);\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5PageViewEvent(eventArgs.attrs, this.getContext());\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5PageViewPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5PageViewPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5PageViewPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5PageViewPlugin extends AOMGH5PageViewPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ActivityPageViewEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport { ISTM } from 'com/didichuxing/tracker/h5/activity/tm/ISTM';\nimport { IActivityTrackerAttrs } from 'com/didichuxing/tracker/h5/activity/IActivityTrackerAttrs';\nimport { IActivityTrackerContext } from 'com/didichuxing/tracker/h5/activity/IActivityTrackerContext';\nimport OMGH5PageViewEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5PageViewEvent';\n\nexport default class OMGH5ActivityPageViewEvent extends OMGH5PageViewEvent {\n\n private readonly stmItems: string[];\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n */\n constructor(attrs: IAttrs, context: IContext) {\n super(attrs, context);\n this.stmItems = this.getUrlParams('stm').split('|');\n const globalAttrs: IActivityTrackerAttrs = (context as IActivityTrackerContext).attrs as IActivityTrackerAttrs\n || {};\n if (!globalAttrs._activity_id) {\n // _activity_id没有设置,则报错提示。\n console && console.error && console.error('[Omega]请在配置中设置活动id!配置项请参见:%o',\n 'https://git.xiaojukeji.com/qt-fe/tracker/tracker-h5-activity/blob/master/README.md#活动id活动名称如何设置');\n }\n if (!globalAttrs._activity_name) {\n // _activity_name没有设置,则报错提示。\n console && console.error && console.error('[Omega]请在配置中设置活动名称!配置项请参见:%o',\n 'https://git.xiaojukeji.com/qt-fe/tracker/tracker-h5-activity/blob/master/README.md#活动id活动名称如何设置');\n }\n }\n\n /**\n * 根据url search参数获取相应的值。\n * 由于URLSearchParams不兼容IE/Edge,故采用regular expression的实现方式。\n * @param {string} name\n * @returns {string}\n */\n private getUrlParams(name: string): string {\n const reg: RegExp = new RegExp(`(^|&)${ name }=([^&]*)(&|$)` , 'i');\n const params: RegExpMatchArray | null = location.search.substr(1).match(reg);\n if (params !== null) {\n return decodeURIComponent(params[ 2 ]);\n }\n return '';\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IAttrs}\n */\n protected getAttrs(): IAttrs {\n return {\n ...this.getSTMAttrs(),\n ...super.getAttrs()\n };\n }\n\n /**\n * 获取STM属性\n * @returns {ISTM}\n */\n private getSTMAttrs(): ISTM {\n let level: number = Number(this.stmItems[ 0 ]) || 1;\n if (level < 0) {\n level = 1;\n }\n const socialIdKey: string = (this.getContext() as IActivityTrackerContext).socialIdKey;\n const socialId: string = (this.getContext() as IActivityTrackerContext).omgId\n || (this.getContext() as IActivityTrackerContext).socialId || '';\n return {\n socialLevel: level,\n sourceSocialIdKey: this.stmItems[ 1 ] || socialIdKey,\n refererSocialIdKey: this.stmItems[ 2 ] || '',\n openAccount: (this.getContext() as IActivityTrackerContext).openAccount,\n socialIdKey: socialIdKey,\n socialId: socialId,\n socialName: (this.getContext() as IActivityTrackerContext).userName\n || (this.getContext() as IActivityTrackerContext).socialName,\n socialAvatar: (this.getContext() as IActivityTrackerContext).socialAvatar,\n socialGender: (this.getContext() as IActivityTrackerContext).socialGender\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap<string>}\n */\n protected getAttrsKeyMap(): IObjectMap<string> {\n return {\n ...this.getSTMAttrsKeyMap(),\n ...super.getAttrsKeyMap()\n };\n }\n\n /**\n * 获取STM属性KV map\n * @returns {IObjectMap<string>}\n */\n private getSTMAttrsKeyMap(): IObjectMap<string> {\n return {\n socialLevel : 'stm_level',\n sourceSocialIdKey : 'stm_source_social_id_key',\n refererSocialIdKey : 'stm_referer_social_id_key',\n socialIdKey : 'stm_social_id_key',\n socialId : 'stm_social_id',\n socialName : 'stm_social_name',\n socialAvatar : 'stm_social_avatar',\n openAccount : 'stm_open_account',\n socialGender : 'stm_social_gender'\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ActivePageViewPlugin\n */\n\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport OMGH5PageViewPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5PageViewPlugin';\nimport OMGH5ActivityPageViewEvent from 'com/didichuxing/tracker/h5/activity/plugins/events/OMGH5ActivityPageViewEvent';\n\nexport default class OMGH5ActivePageViewPlugin extends OMGH5PageViewPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5ActivityPageViewEvent(eventArgs.attrs, this.getContext());\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ReceivedEvent\n */\n\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default class OMGH5ReceivedEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_RECEIVED;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IAttrs}\n */\n protected getAttrs(): IAttrs {\n return {\n deviceVendor: (this.getContext() as ITrackerContext).deviceVendor,\n ...super.getAttrs()\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap<string>}\n */\n protected getAttrsKeyMap(): IObjectMap<string> {\n return {\n ...super.getAttrsKeyMap(),\n deviceVendor: 'm'\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of PositionPlugin\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport { ITrackerConfiguration } from 'com/didichuxing/tracker/config/ITrackerConfiguration';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport OMGH5ReceivedEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5ReceivedEvent';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\ninterface ILocationData {\n /** 纬度,浮点数,范围为-90~90,负数表示南纬 */\n latitude: number;\n /** 经度,浮点数,范围为-180~180,负数表示西经 */\n longitude: number;\n /** 速度,浮点数,单位m/s */\n speed: number;\n /** 位置的精确度 */\n accuracy: number;\n}\n\nexport default class PositionPlugin extends AReportingStrategyPlugin {\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_RECEIVED;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n\n /**\n * 获取地理位置。\n * @param {boolean} positionable\n */\n private fetchPosition(positionable: boolean): void {\n // 移除经纬度采集\n return;\n const appName = (this.getContext() as ITrackerContext).appName;\n // @ts-ignore\n if (appName && appName === 'WeChat' && window.wx && wx && wx.getLocation && typeof wx.getLocation === 'function') {\n // @ts-ignore\n wx.getLocation({\n // 同步为浏览器返回标准\n type: 'wgs84',\n success: (locationData: ILocationData): void => {\n this.getTracker().setLocation({\n longitude: locationData.longitude,\n latitude: locationData.latitude\n });\n this.report({\n eventId: PluginUtils.EVENT_ID_RECEIVED,\n attrs: {}\n });\n }\n });\n } else {\n // 乘客端桥接方法,避免WKWebView每次弹出权限框\n const didiLocationBridge = (window as any)['DiDiLocationBridge'];\n if (didiLocationBridge && didiLocationBridge.getLocation) {\n didiLocationBridge.getLocation((response: any) => {\n this.setLocation(response.lng, response.lat);\n });\n } else if (positionable && navigator.geolocation) {\n // 标准浏览器 获取地理坐标。\n navigator.geolocation.getCurrentPosition((position): void => {\n this.setLocation(position.coords.longitude, position.coords.latitude);\n });\n }\n }\n\n }\n\n private setLocation(lng: number, lat: number) {\n this.getTracker().setLocation({\n longitude: lng || 0,\n latitude: lat || 0\n });\n this.report({\n eventId: PluginUtils.EVENT_ID_RECEIVED,\n attrs: {}\n });\n }\n\n /**\n * 对tracker.setConfig进行拦截。\n * @param {ITrackerConfiguration} config\n */\n private adviceSetConfigHandler(config: ITrackerConfiguration): void {\n if (typeof config.autoPosition === 'boolean'\n && config.autoPosition !== (this.getContext() as ITrackerContext).autoPosition) {\n this.fetchPosition(config.autoPosition); // 设置了自动上报地理坐标。\n }\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IContext}\n */\n protected get initialzedContext(): IContext {\n const context: ITrackerContext = this.getContext() as ITrackerContext;\n return {\n ...super.initialzedContext,\n autoPosition: typeof context.autoPosition === 'boolean' ? context.autoPosition : false\n } as IContext;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public install(): boolean {\n const tracker: ITracker = this.getTracker();\n this.fetchPosition((this.getContext() as ITrackerContext).autoPosition || false);\n const setConfigHandler: (config: ITrackerConfiguration) => void = tracker.setConfig;\n tracker.setConfig = (config: ITrackerConfiguration): void => {\n // this.adviceSetConfigHandler(config);\n setConfigHandler.call(tracker, config);\n };\n return super.install();\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n /* Nothing to execute */\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n /* Nothing to exit */\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5ReceivedEvent(eventArgs.attrs, this.getContext());\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public uninstall(): boolean {\n this.adviceSetConfigHandler = (config: ITrackerConfiguration): void => {/* empty method */\n };\n return super.uninstall();\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5PageLeaveEvent\n */\n\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default class OMGH5PageLeaveEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_PAGE_LEAVE;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5PageLeavePlugin\n */\n\nimport { ITracker } from '@omega-tracker/core/src/com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport OMGH5PageLeaveEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5PageLeaveEvent';\nimport { ITrackerAdvancedContext } from 'com/didichuxing/tracker/h5/context/ITrackerAdvancedContext';\n\nexport default abstract class AOMGH5PageLeavePlugin extends AReportingStrategyPlugin {\n\n /**\n * @constructor\n */\n constructor(tracker: ITracker) {\n super(tracker);\n this.reportLeaveUnderHashChange = this.reportLeaveUnderHashChange.bind(this);\n this.reportLeaveUnderPopstateChange = this.reportLeaveUnderPopstateChange.bind(this);\n }\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_PAGE_LEAVE;\n }\n\n /**\n * hash change上报page leave\n */\n protected reportLeaveUnderHashChange(): void {\n this.reportFromLeave();\n this.getTracker().setConfig({\n url: window.location.href\n });\n }\n\n /**\n * popstate change上报page leave\n */\n protected reportLeaveUnderPopstateChange(): void {\n this.reportFromLeave();\n this.getTracker().setConfig({\n url: window.location.href\n });\n }\n\n /**\n * 离开事件上报。\n */\n protected reportFromLeave(): void {\n this.report({\n eventId: PluginUtils.EVENT_ID_PAGE_LEAVE,\n attrs: {}\n });\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n const context: ITrackerAdvancedContext = this.getContext() as ITrackerAdvancedContext;\n if (context.hashRouterEnable) { // 监控hash history change\n window.addEventListener('hashchange', this.reportLeaveUnderHashChange);\n }\n if (context.browserRouterEnable) { // 监控browser popstate change\n window.addEventListener('popstate', this.reportLeaveUnderPopstateChange);\n }\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n this.getTracker().setConfig({\n url: window.location.href\n });\n this.reportFromLeave();\n window.removeEventListener('hashchange', this.reportLeaveUnderHashChange);\n window.removeEventListener('popstate', this.reportLeaveUnderPopstateChange);\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5PageLeaveEvent(eventArgs.attrs, this.getContext());\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5PageLeavePlugin\n */\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5PageLeavePlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5PageLeavePlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\n\nexport default class OMGH5PageLeavePlugin extends AOMGH5PageLeavePlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ClickEvent\n */\n\nimport { IPlanObject } from 'com/didichuxing/IPlanObject';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { IAutoClickCover } from 'com/didichuxing/tracker/IAutoClickCover';\nimport { IClickFilter } from 'com/didichuxing/tracker/IClickFilter';\nimport { IElementExtraAttrs } from 'com/didichuxing/tracker/h5/plugins/utils/IElementExtraAttrs';\nimport { IViewportExtraAttrs } from 'com/didichuxing/tracker/h5/plugins/utils/IViewportExtraAttrs';\nimport ElementUtils from 'com/didichuxing/tracker/h5/plugins/utils/ElementUtils';\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport interface ITargetPosition {\n readonly clientX: number;\n readonly clientY: number;\n readonly pageX: number;\n readonly pageY: number;\n}\n\ninterface IEventInfo {\n\n /**\n * 目标点击元素对象。\n */\n readonly target: Element;\n\n /**\n * @readonly\n * 点击的页面元素坐标。\n */\n readonly targetPosition: ITargetPosition;\n\n /**\n * 元素自己点击属性设置对象。\n * 如果设置了此参数,那么会在这些元素上应用设置在元素节点属性值作为监控数据发送。\n * 设置attr属性,比如{'attr': 'auto-track-click'}如果设置了此属性,那么会自动收集此属性对应的值。\n * 值必须为JSON数据的stringify形式,统计代码会解析json中的e(非必须,根据业务需要设置)字段和attrs(非必须)字段,\n * 自动覆盖默认的OMGH5Click事件标记及自动扩展原有attrs字段。\n */\n clickedCover?: IAutoClickCover;\n /**\n * 是否去遍历当前节点中 clickedCover 的 子元素\n */\n clickedCoverisChild?: boolean;\n\n /**\n * 只监控符合filters规则的元素\n * 如果设置了此参数,那么会在这些元素上应用设置在元素节点属性值作为监控数据发送。\n * 1.设置一个class,比如{'class': 'order-click'},则只会发送那些有class为'order-click'的元素的点击数据。\n * 2.设置一组class,比如{'class': ['order-click', 'cancel-click']}。\n * 3.设置attr属性,与enableClickAutoTrack中使用attr方式一致。\n */\n clickedFilter?: IClickFilter;\n}\n\ninterface ICustomClickedInfo {\n\n /**\n * 自定义事件名\n */\n readonly e?: string;\n\n /**\n * 自定义attrs\n */\n readonly attrs?: IPlanObject;\n}\n\ninterface IClickEventAttrs extends IElementExtraAttrs {\n\n /**\n * @readonly\n * 点击点的X坐标\n */\n readonly pointX: number;\n\n /**\n * @readonly\n * 点击点的Y坐标\n */\n readonly pointY: number;\n\n}\n\nexport default class OMGH5ClickEvent extends SequencedEvent {\n\n /**\n * @readonly\n * 事件作用节点对象。\n */\n protected readonly target: HTMLElement;\n\n /**\n * @readonly\n * 事件信息。\n */\n protected readonly eventInfo: IEventInfo;\n\n /**\n * @readonly\n * 自定义自动点击信息。\n */\n protected readonly customClickedInfo: ICustomClickedInfo | undefined;\n\n /**\n * @readonly\n * 自定义过滤自动点击信息。\n */\n protected readonly customFilterClickedInfo: ICustomClickedInfo | undefined;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n */\n constructor(attrs: IAttrs, context: IContext, eventInfo: IEventInfo) {\n super(attrs, context);\n this.target = eventInfo.target as HTMLElement;\n this.eventInfo = eventInfo;\n if (eventInfo.clickedCover\n // && this.target.hasAttribute(eventInfo.clickedCover.attr)\n ) {\n if (eventInfo.clickedCover.attr) {\n const target = this.getRealTarget(this.target, eventInfo.clickedCover.attr);\n if (target) {\n this.target = target;\n }\n this.customClickedInfo = JSON.parse(\n this.target.getAttribute(eventInfo.clickedCover.attr) || '{}'\n ) as ICustomClickedInfo;\n }\n }\n if (eventInfo.clickedCover && eventInfo.clickedCoverisChild) {\n this.getTargetChildAttrs(this.target, eventInfo.clickedCover.attr);\n }\n if (eventInfo.clickedFilter) {\n if (eventInfo.clickedFilter.attr && this.target.hasAttribute(eventInfo.clickedFilter.attr)) {\n this.customFilterClickedInfo = JSON.parse(\n this.target.getAttribute(eventInfo.clickedFilter.attr) || '{}'\n ) as ICustomClickedInfo;\n }\n }\n }\n\n private getRealTarget(target: HTMLElement, attrKey: string): HTMLElement | null {\n if (!attrKey) {\n return target;\n }\n while (target && target !== document.body && target !== document.documentElement) {\n if (target.hasAttribute(attrKey)) {\n return target;\n }\n target = target.parentNode as any;\n }\n return null;\n }\n\n /**\n * 获取子节点中的信息\n * @param target\n * @param attr\n */\n private getTargetChildAttrs(target: Element, attr: string) {\n const childArr = target.children;\n for (let i = 0, len = childArr.length; i < len; i++) {\n if (childArr[i].nodeType === 1) { // nodeType==1 的节点为元素节点。\n const childNodeAttrs = JSON.parse(\n childArr[i].getAttribute(attr) || '{}'\n ) as ICustomClickedInfo;\n Object.assign(this.customClickedInfo || {}, childNodeAttrs);\n this.getTargetChildAttrs(childArr[i], attr);\n }\n }\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n if (this.customFilterClickedInfo && this.customFilterClickedInfo.e) {\n return this.customFilterClickedInfo.e;\n }\n if (this.customClickedInfo && this.customClickedInfo.e) {\n return this.customClickedInfo.e;\n }\n return PluginUtils.EVENT_ID_CLICK;\n }\n\n /**\n * 获取点击事件额外上报的信息数据。\n * @returns {IClickedAttrs}\n */\n private get clickedExtraAttrs(): IClickEventAttrs | IViewportExtraAttrs {\n const targetPostion: ITargetPosition = this.eventInfo.targetPosition;\n return {\n ...ElementUtils.getElementExtraAttrs(this.target),\n pointX: targetPostion.pageX\n || (targetPostion.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft || 0)),\n pointY: targetPostion.pageY\n || (targetPostion.clientY + (document.documentElement.scrollTop || document.body.scrollTop || 0))\n };\n }\n\n /**\n * 检查属性\n */\n private get clickedAttrs(): IAttrs {\n let attrs = super.getAttrs() || {};\n if (this.customClickedInfo && this.customClickedInfo.attrs) {\n Object.assign(attrs, this.customClickedInfo.attrs);\n }\n if (this.customFilterClickedInfo && this.customFilterClickedInfo.attrs) {\n attrs = this.customFilterClickedInfo.attrs;\n }\n return attrs;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IAttrs}\n */\n protected getAttrs(): IAttrs {\n return {\n ['OMGH5CLICK']: 1,\n ...this.clickedExtraAttrs,\n ...this.clickedAttrs\n // ...super.getAttrs()\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap<string>}\n */\n protected getAttrsKeyMap(): IObjectMap<string> {\n return {\n ...super.getAttrsKeyMap(),\n ...ElementUtils.getElementExtraAttrsMap(),\n pointX: 'x',\n pointY: 'y'\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The abstract class of AOMGH5ClickPlugin\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IClickFilter } from 'com/didichuxing/tracker/IClickFilter';\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackerConfiguration } from 'com/didichuxing/tracker/config/ITrackerConfiguration';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5ClickEvent, { ITargetPosition } from 'com/didichuxing/tracker/h5/plugins/events/OMGH5ClickEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\ninterface IAOPHandler {\n\n /**\n * aop句柄,用以移除A该AOP的作用。\n */\n remove(): void;\n}\n\nexport interface IClickedEventArgs extends ITrackedEventArgs {\n\n /**\n * 目标点击元素对象。\n */\n readonly target: Element;\n\n /**\n * @readonly\n * 点击的页面元素坐标。\n */\n readonly targetPosition: ITargetPosition;\n}\n\nexport default abstract class AOMGH5ClickPlugin extends AReportingStrategyPlugin {\n\n /**\n * AOP handler list\n */\n private aopHandlers: IAOPHandler[] = [];\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_CLICK;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public install(): boolean {\n this.handleDocumentClick = this.handleDocumentClick.bind(this);\n return super.install();\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {ITrackerConfiguration}\n */\n protected get initialzedContext(): IContext {\n const context: ITrackerContext = this.getContext() as ITrackerContext;\n return {\n ...super.initialzedContext,\n autoClick: typeof context.autoClick === 'boolean' ? context.autoClick : true\n } as IContext;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n if ((this.getContext() as ITrackerContext).autoClick) { // 开启自动上报点击埋点。\n window.document.addEventListener('click', this.handleDocumentClick, true);\n }\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n if ((this.getContext() as ITrackerContext).autoClick) { // 开启自动上报点击埋点。\n window.document.removeEventListener('click', this.handleDocumentClick, true);\n }\n }\n\n /**\n * classes是否有一向存在classList中。\n * @param {DOMTokenList} classList\n * @param {string[]} classes\n * @returns {boolean}\n */\n private containClasses(targetClassList: DOMTokenList, classes: string[]): boolean {\n for (let i: number = 0, j: number = classes.length; i < j; ++i) {\n if (targetClassList.contains(classes[i])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * 文档内所有元素点击事件代理。\n * 该代理采用捕获方式进行。\n * @override\n * @inheritDoc\n */\n protected handleDocumentClick(evt: MouseEvent): void {\n const filter: IClickFilter | undefined = this.getTracker().getClickedFilter();\n const eventTarget: EventTarget = evt.target as EventTarget;\n let target: Element;\n if (eventTarget.hasOwnProperty('correspondingUseElement')) { // SVG Element\n target = (eventTarget as SVGElementInstance).correspondingUseElement;\n } else {\n target = eventTarget as Element;\n }\n // 未命中过滤器则不上报\n if (filter && filter.class && !this.containClasses(target.classList, [].concat(filter.class as any))) {\n return;\n }\n this.report({\n eventId: PluginUtils.EVENT_ID_CLICK,\n attrs: {},\n target: target,\n targetPosition: evt\n } as IClickedEventArgs);\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n const tracker: ITracker = this.getTracker();\n return new OMGH5ClickEvent(eventArgs.attrs, this.getContext(), {\n target: (eventArgs as IClickedEventArgs).target,\n targetPosition: (eventArgs as IClickedEventArgs).targetPosition,\n clickedCover: tracker.getClickedCover(),\n clickedCoverisChild: tracker.getClickedCoverChild(),\n clickedFilter: tracker.getClickedFilter()\n });\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public uninstall(): boolean {\n while (this.aopHandlers.length) {\n const aopHandler: IAOPHandler | undefined = this.aopHandlers.pop();\n if (aopHandler) {\n aopHandler.remove();\n }\n }\n return super.uninstall();\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ClickPlugin\n */\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5ClickPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5ClickPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\n\nexport default class OMGH5ClickPlugin extends AOMGH5ClickPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5ReceivedPlugin\n */\n\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport { ITrackerConfiguration } from 'com/didichuxing/tracker/config/ITrackerConfiguration';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport OMGH5ReceivedEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5ReceivedEvent';\n\nexport default abstract class AOMGH5ReceivedPlugin extends AReportingStrategyPlugin {\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_RECEIVED;\n }\n\n /**\n * 对tracker.setConfig进行拦截。\n * @param {ITrackerConfiguration} config\n */\n private adviceSetConfigHandler(config: ITrackerConfiguration): void {\n if (config.userName || config.userId || config.telephone || config.cityId) { // 只有设置了用户名、uid或者手机号才进行该事件上报。\n this.report( {\n eventId: PluginUtils.EVENT_ID_RECEIVED,\n attrs: {}\n });\n }\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public install(): boolean {\n const tracker: ITracker = this.getTracker();\n const setConfigHandler: (config: ITrackerConfiguration) => void = tracker.setConfig;\n tracker.setConfig = (config: ITrackerConfiguration): void => {\n setConfigHandler.call(tracker, config);\n this.adviceSetConfigHandler(config);\n };\n return super.install();\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n /* Nothing to execute */\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n /* Nothing to exit */\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5ReceivedEvent(eventArgs.attrs, this.getContext());\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public uninstall(): boolean {\n this.adviceSetConfigHandler = (config: ITrackerConfiguration): void => {/* empty method */};\n return super.uninstall();\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ReceivedPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5ReceivedPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5ReceivedPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5ReceivedPlugin extends AOMGH5ReceivedPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5CustomEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\n\nexport default class OMGH5CustomEvent extends SequencedEvent {\n\n /**\n * custom event id\n */\n private readonly eventId: string;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n */\n constructor(eventId: string, attrs: IAttrs, context: IContext, info?: IAttrs) {\n super(attrs, context, info);\n this.eventId = eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return this.eventId;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5CustomPlugin\n */\n\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5CustomEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5CustomEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default abstract class AOMGH5CustomPlugin extends AReportingStrategyPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_CUSTOM;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n /* Nothing to execute */\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n /* Nothing to exit */\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5CustomEvent(eventArgs.eventId, eventArgs.attrs, this.getContext(), eventArgs.creatInfo);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5CustomPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5CustomPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5CustomPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5CustomPlugin extends AOMGH5CustomPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5JsErrorEvent\n */\n\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default class OMGH5JsErrorEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_JS_ERROR;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of UUID\n */\n\nexport default abstract class UUID {\n\n /**\n *\n * @returns {string[]}\n */\n public static getByte2Hex(): string[] {\n const byteToHex: string[] = [];\n for (let i: number = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n }\n return byteToHex;\n }\n\n /**\n * bytes to uuid\n * @param {number[]} buf\n * @param {number} offset\n * @returns {string}\n */\n public static bytesToUuid(buf: number[], offset?: number): string {\n let i: number = offset || 0;\n const bth: string[] = UUID.getByte2Hex();\n // join used to fix memory issue caused by concatenation:\n // https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]]).join('');\n }\n\n /**\n * 生成伪UUID\n * @returns {string}\n */\n public static get v4(): string {\n const rnds: number[] = new Array(16);\n let r: number = 0;\n for (let i: number = 0; i < 16; ++i) {\n if ((i & 0x03) === 0) {\n r = Math.random() * 0x100000000;\n }\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n return UUID.bytesToUuid(rnds);\n }\n}\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","require('../modules/es6.parse-int');\nmodule.exports = require('../modules/_core').parseInt;\n","module.exports = require(\"core-js/library/fn/parse-int\");","export default class Md5 {\n\n // One time hashing functions\n public static hashStr(str: string, raw: boolean = false) {\n return this.onePassHasher\n .start()\n .appendStr(str)\n .end(raw);\n }\n\n public static hashAsciiStr(str: string, raw: boolean = false) {\n return this.onePassHasher\n .start()\n .appendAsciiStr(str)\n .end(raw);\n }\n // Private Static Variables\n private static stateIdentity = new Int32Array([1732584193, -271733879, -1732584194, 271733878]);\n private static buffer32Identity = new Int32Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\n private static hexChars = '0123456789abcdef';\n private static hexOut: string[] = [];\n\n // Permanent instance is to use for one-call hashing\n private static onePassHasher = new Md5();\n\n private static _hex(x: any): string {\n const hc = Md5.hexChars;\n const ho = Md5.hexOut;\n let n;\n let offset;\n let j;\n let i;\n\n for (i = 0; i < 4; i += 1) {\n offset = i * 8;\n n = x[i];\n for (j = 0; j < 8; j += 2) {\n ho[offset + 1 + j] = hc.charAt(n & 0x0F);\n n >>>= 4;\n ho[offset + 0 + j] = hc.charAt(n & 0x0F);\n n >>>= 4;\n }\n }\n return ho.join('');\n }\n\n private static _md5cycle(x: Int32Array|Uint32Array, k: Int32Array|Uint32Array) {\n let a = x[0];\n let b = x[1];\n let c = x[2];\n let d = x[3];\n // ff()\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n // gg()\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n // hh()\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n // ii()\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n private privateDataLength: number = 0;\n private privateBufferLength: number = 0;\n\n private privateState: Int32Array = new Int32Array(4);\n private privateBuffer: ArrayBuffer = new ArrayBuffer(68);\n private privateBuffer8: Uint8Array;\n private privateBuffer32: Uint32Array;\n\n constructor() {\n this.privateBuffer8 = new Uint8Array(this.privateBuffer, 0, 68);\n this.privateBuffer32 = new Uint32Array(this.privateBuffer, 0, 17);\n this.start();\n }\n\n public start() {\n this.privateDataLength = 0;\n this.privateBufferLength = 0;\n this.privateState.set(Md5.stateIdentity);\n return this;\n }\n\n // Char to code point to to array conversion:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n // #Example.3A_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_\n // characters_if_their_presence_earlier_in_the_string_is_unknown\n public appendStr(str: string) {\n const buf8 = this.privateBuffer8;\n const buf32 = this.privateBuffer32;\n let bufLen = this.privateBufferLength;\n let code;\n let i;\n\n for (i = 0; i < str.length; i += 1) {\n code = str.charCodeAt(i);\n if (code < 128) {\n buf8[bufLen++] = code;\n } else if (code < 0x800) {\n buf8[bufLen++] = (code >>> 6) + 0xC0;\n buf8[bufLen++] = code & 0x3F | 0x80;\n } else if (code < 0xD800 || code > 0xDBFF) {\n buf8[bufLen++] = (code >>> 12) + 0xE0;\n buf8[bufLen++] = (code >>> 6 & 0x3F) | 0x80;\n buf8[bufLen++] = (code & 0x3F) | 0x80;\n } else {\n code = ((code - 0xD800) * 0x400) + (str.charCodeAt(++i) - 0xDC00) + 0x10000;\n if (code > 0x10FFFF) {\n throw new Error('Unicode standard supports code points up to U+10FFFF');\n }\n buf8[bufLen++] = (code >>> 18) + 0xF0;\n buf8[bufLen++] = (code >>> 12 & 0x3F) | 0x80;\n buf8[bufLen++] = (code >>> 6 & 0x3F) | 0x80;\n buf8[bufLen++] = (code & 0x3F) | 0x80;\n }\n if (bufLen >= 64) {\n this.privateDataLength += 64;\n Md5._md5cycle(this.privateState, buf32);\n bufLen -= 64;\n buf32[0] = buf32[16];\n }\n }\n this.privateBufferLength = bufLen;\n return this;\n }\n\n public appendAsciiStr(str: string) {\n const buf8 = this.privateBuffer8;\n const buf32 = this.privateBuffer32;\n let bufLen = this.privateBufferLength;\n let i;\n let j = 0;\n\n for (; ;) {\n i = Math.min(str.length - j, 64 - bufLen);\n while (i--) {\n buf8[bufLen++] = str.charCodeAt(j++);\n }\n if (bufLen < 64) {\n break;\n }\n this.privateDataLength += 64;\n Md5._md5cycle(this.privateState, buf32);\n bufLen = 0;\n }\n this.privateBufferLength = bufLen;\n return this;\n }\n\n public appendByteArray(input: Uint8Array) {\n const buf8 = this.privateBuffer8;\n const buf32 = this.privateBuffer32;\n let bufLen = this.privateBufferLength;\n let i;\n let j = 0;\n\n for (; ;) {\n i = Math.min(input.length - j, 64 - bufLen);\n while (i--) {\n buf8[bufLen++] = input[j++];\n }\n if (bufLen < 64) {\n break;\n }\n this.privateDataLength += 64;\n Md5._md5cycle(this.privateState, buf32);\n bufLen = 0;\n }\n this.privateBufferLength = bufLen;\n return this;\n }\n\n public getState() {\n const self = this;\n const s = self.privateState;\n\n return {\n buffer: String.fromCharCode.apply(null, self.privateBuffer8),\n buflen: self.privateBufferLength,\n length: self.privateDataLength,\n state: [s[0], s[1], s[2], s[3]]\n };\n }\n\n public setState(state: any) {\n const buf = state.buffer;\n const x = state.state;\n const s = this.privateState;\n let i;\n\n this.privateDataLength = state.length;\n this.privateBufferLength = state.buflen;\n s[0] = x[0];\n s[1] = x[1];\n s[2] = x[2];\n s[3] = x[3];\n\n for (i = 0; i < buf.length; i += 1) {\n this.privateBuffer8[i] = buf.charCodeAt(i);\n }\n }\n\n public end(raw: boolean = false) {\n const bufLen = this.privateBufferLength;\n const buf8 = this.privateBuffer8;\n const buf32 = this.privateBuffer32;\n const i = (bufLen >> 2) + 1;\n let dataBitsLen;\n\n this.privateDataLength += bufLen;\n\n buf8[bufLen] = 0x80;\n buf8[bufLen + 1] = buf8[bufLen + 2] = buf8[bufLen + 3] = 0;\n buf32.set(Md5.buffer32Identity.subarray(i), i);\n\n if (bufLen > 55) {\n Md5._md5cycle(this.privateState, buf32);\n buf32.set(Md5.buffer32Identity);\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n dataBitsLen = this.privateDataLength * 8;\n if (dataBitsLen <= 0xFFFFFFFF) {\n buf32[14] = dataBitsLen;\n } else {\n const matches = dataBitsLen.toString(16).match(/(.*?)(.{0,8})$/);\n if (matches === null) {\n return;\n }\n\n const lo = parseInt(matches[2], 16);\n const hi = parseInt(matches[1], 16) || 0;\n\n buf32[14] = lo;\n buf32[15] = hi;\n }\n\n Md5._md5cycle(this.privateState, buf32);\n\n return raw ? this.privateState : Md5._hex(this.privateState);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5JsErrorPlugin\n */\n\nimport { IContext } from '@omega-tracker/core/src/com/didichuxing/context/IContext';\nimport { ITrackerConfiguration } from 'com/didichuxing/tracker/config/ITrackerConfiguration';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITrackerAdvancedContext } from 'com/didichuxing/tracker/h5/context/ITrackerAdvancedContext';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5JsErrorEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5JsErrorEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport UUID from 'com/didichuxing/tracker/plugin/utils/UUID';\nimport Md5 from 'com/didichuxing/tracker/plugin/utils/MD5';\n\nexport default abstract class AOMGH5JsErrorPlugin extends AReportingStrategyPlugin {\n /**\n * 错误类型\n */\n private typeList: string[] = ['global code', 'TypeError',\n 'SyntaxError', 'ReferenceError', 'RangeError', 'URIError', 'EvalError'];\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_JS_ERROR;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public install(): boolean {\n this.handleError = this.handleError.bind(this);\n this.handlePromiseError = this.handlePromiseError.bind(this);\n window.addEventListener('error', this.handleError);\n window.addEventListener('unhandledrejection', this.handlePromiseError);\n this.reportbeforeError();\n return super.install();\n }\n\n /**\n * 发送onloan之前的错误\n */\n public reportbeforeError(): void {\n const beforeErrorList = this.getTracker().beforeErrorList || [];\n beforeErrorList.forEach((event) => {\n this.handleError(event, 'beforeLoad');\n });\n this.getTracker().beforeErrorList = [];\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IContext}\n */\n protected get initialzedContext(): IContext {\n const context: ITrackerAdvancedContext = this.getContext() as ITrackerAdvancedContext;\n return {\n ...super.initialzedContext,\n autoError: typeof context.autoError === 'boolean' ? context.autoError : true,\n jsErrorFilters: Array.isArray(context.jsErrorFilters) ? context.jsErrorFilters : []\n } as IContext;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n /* Nothing to execute */\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n /* Nothing to exit */\n }\n\n /**\n * 获取Breadcrumb\n */\n private getBreadcrumbList(): string[] {\n const breadcrumbListName = (window as any)[this.breadcrumbListName] || [];\n if (breadcrumbListName.length > 10) {\n (window as any)[this.breadcrumbListName].length = 10;\n }\n return breadcrumbListName;\n }\n\n /**\n * 获取错误类型\n * @param message\n */\n private getErrorType(message: string): string {\n let result: string = message || 'Empty';\n this.typeList.forEach((type: string): void => {\n if (message && message.indexOf(type) !== -1) {\n result = type;\n }\n });\n return result;\n\n }\n\n /**\n * handle promise error.\n * - 类型promiseRejectionEvent由于typescript的原因改为any\n */\n protected handlePromiseError(promiseRejectionEvent: any, occasion: string = 'afterLoad'): void {\n const event = promiseRejectionEvent.reason || {};\n // 过滤ResizeObserver 错误的上报。在 Chrome 83 无限上报会造成浏览器卡死\n if (event.message && event.message.indexOf('ResizeObserver') !== -1) {\n return;\n }\n // 过滤正则匹配后的错误\n const context: ITrackerAdvancedContext = this.getContext() as ITrackerAdvancedContext;\n if (context.jsErrorFilters) {\n // 标记是否需要过滤掉\n let isFilter: boolean = false;\n context.jsErrorFilters.forEach(k => {\n const message = k.message;\n if (message instanceof RegExp && message.test(event.message)) {\n isFilter = true;\n }\n });\n if (isFilter) {\n return;\n }\n }\n const type = this.getErrorType(event.message);\n this.report({\n eventId: PluginUtils.EVENT_ID_JS_ERROR,\n attrs: {\n label: event.stack,\n message: 'Uncaught (in promise) ' + event.message,\n stack: event.stack || '',\n breadcrumb: this.getBreadcrumbList(),\n UUID: UUID.v4,\n type: type,\n typeMd5: Md5.hashStr(type),\n occasion: occasion\n }\n });\n }\n\n /**\n * handle js error.\n */\n protected handleError(event: ErrorEvent, occasion: string = 'afterLoad'): void {\n // 过滤ResizeObserver 错误的上报。在 Chrome 83 无限上报会造成浏览器卡死\n if (event.message && event.message.indexOf('ResizeObserver') !== -1) {\n return;\n }\n // 过滤正则匹配后的错误\n const context: ITrackerAdvancedContext = this.getContext() as ITrackerAdvancedContext;\n if (context.jsErrorFilters) {\n // 标记是否需要过滤掉\n let isFilter: boolean = false;\n context.jsErrorFilters.forEach(k => {\n const message = k.message;\n if (message instanceof RegExp && message.test(event.message)) {\n isFilter = true;\n }\n });\n if (isFilter) {\n return;\n }\n }\n const type = this.getErrorType(event.message);\n this.report({\n eventId: PluginUtils.EVENT_ID_JS_ERROR,\n attrs: {\n label: event.error ? event.error.stack : event.message,\n line: event.lineno,\n url: event.filename,\n col: event.colno,\n message: event.message,\n stack: event.error ? (event.error.stack || '') : '',\n breadcrumb: this.getBreadcrumbList(),\n UUID: UUID.v4,\n type: type,\n typeMd5: Md5.hashStr(type),\n occasion: occasion\n }\n });\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5JsErrorEvent(eventArgs.attrs, this.getContext());\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public uninstall(): boolean {\n window.removeEventListener('error', this.handleError);\n window.removeEventListener('unhandledrejection', this.handlePromiseError);\n return super.uninstall();\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5JsErrorPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5JsErrorPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5JsErrorPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5JsErrorPlugin extends AOMGH5JsErrorPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ErrorEvent\n */\n\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\n/**\n * 用户主动上报的错误事件。\n *\n * @class\n * @extends {SequencedEvent}\n */\nexport default class OMGH5ErrorEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_ERROR;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5ErrorPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5ErrorEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5ErrorEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default abstract class AOMGH5ErrorPlugin extends AReportingStrategyPlugin {\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_ERROR;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n /* execute */\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n /* Nothing to exit */\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5ErrorEvent(eventArgs.attrs, this.getContext());\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ErrorPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5ErrorPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5ErrorPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5ErrorPlugin extends AOMGH5ErrorPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","import SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default class OMGH5SafeTypingEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_SAFETYPING;\n }\n}\n","import { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5SafeTypingEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5SafeTypingEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\ninterface ISafeTyping {\n text: string; // 最终输入框的内容\n tl: number; // 从开始输入到输入结束的时间长度(ms)\n dl: number; // 输入框内容的删除次数\n count: number; // 输入框最终的字符个数\n}\n\nconst FORM_ELEMENT_MAP: IObjectMap<string> = {\n input: 'input'\n};\nexport default abstract class AOMGSafeTypingPlugin extends AReportingStrategyPlugin {\n private currentFormElement: HTMLElement | undefined;\n private currentDate: number = 0;\n private safeTyping: ISafeTyping = {\n text: '',\n tl: 0,\n dl: 0,\n count: 0\n };\n\n /**\n * @constructor\n */\n constructor(tracker: ITracker) {\n super(tracker);\n this.delegateInputChange = this.delegateInputChange.bind(this);\n this.reportSafeTyping = this.reportSafeTyping.bind(this);\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_SAFETYPING;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n document.body.addEventListener('input', this.delegateInputChange);\n document.body.addEventListener('change', this.reportSafeTyping);\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n this.currentFormElement = undefined;\n document.body.removeEventListener('input', this.delegateInputChange);\n document.body.removeEventListener('change', this.reportSafeTyping);\n }\n\n /**\n * 委托input change事件\n * @param {Event} event\n */\n private delegateInputChange(event: Event): void {\n const target: HTMLInputElement = event.target as HTMLInputElement;\n // 是否在监控类型中\n if ((target.tagName && FORM_ELEMENT_MAP[target.tagName.toLowerCase()]) ||\n (target.nodeName && FORM_ELEMENT_MAP[target.nodeName.toLowerCase()])) {\n if ( (!target.getAttribute('type')) || target.getAttribute('type') === 'text') {\n // 是否是同节点 如果是 说明并非新节点 进行运算\n if (this.currentFormElement === target) {\n // @ts-ignore\n if (event.inputType && event.inputType === 'deleteContentBackward') {\n this.safeTyping.dl++;\n } else if (target.value && this.safeTyping.text.length > target.value.length) {\n this.safeTyping.dl++;\n }\n this.safeTyping.text = target.value || '';\n this.currentFormElement = target;\n } else {\n this.safeTyping = {\n text: target.value || '',\n tl: 0,\n dl: 0,\n count: 0\n };\n this.currentDate = new Date().getTime();\n this.currentFormElement = target;\n }\n }\n }\n }\n\n /**\n * 发送数据\n * @param event\n */\n private reportSafeTyping(event: Event): void {\n const target: HTMLInputElement = event.target as HTMLInputElement;\n // 是否在监控类型中 如果在 就去上包\n if ((target.tagName && FORM_ELEMENT_MAP[target.tagName.toLowerCase()]) ||\n (target.nodeName && FORM_ELEMENT_MAP[target.nodeName.toLowerCase()])) {\n if ( (!target.getAttribute('type')) || target.getAttribute('type') === 'text' ) {\n this.safeTyping.text = target.value || '';\n this.safeTyping.tl = new Date().getTime() - this.currentDate;\n this.safeTyping.count = this.safeTyping.text.length;\n this.report({\n eventId: PluginUtils.EVENT_ID_SAFETYPING,\n attrs: this.safeTyping\n });\n }\n }\n this.currentFormElement = undefined;\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5SafeTypingEvent(eventArgs.attrs, this.getContext());\n }\n}\n","import { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGSafeTypingPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGSafeTypingPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGSafeTypingPlugin extends AOMGSafeTypingPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5JsErrorEvent\n */\n\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\n\nexport default class OMGH5PerformanceEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap<string>}\n */\n protected getAttrsKeyMap(): IObjectMap<string> {\n return {\n ...super.getAttrsKeyMap(),\n pageLoadTime: 't_pgrd'\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_PERFORMANCE;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5PageInitPlugin\n */\n\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport OMGH5PerformanceEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5PerformanceEvent';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default abstract class AOMGH5PerformancePlugin extends AReportingStrategyPlugin {\n /**\n * 是否上报过\n */\n private isReport: boolean = false;\n\n /**\n * 获取全局性能信息。\n * {@link https://github.com/addyosmani/timing.js/issues/9}\n * @returns {Performance}\n */\n private globalPerformance(): Performance {\n const global: any = window;\n return global.performance || global.webkitPerformance || global.msPerformance || global.mozPerformance;\n }\n\n /**\n * 获取请求的时间统计信息\n */\n private getEntries(): any[] {\n const performance: Performance = this.globalPerformance();\n if (performance && performance.getEntries) {\n const entries: any[] = window.performance.getEntries() || [];\n if (entries.length > 100) {\n entries.length = 100;\n }\n return entries;\n } else {\n return [];\n }\n }\n\n private getEntryLength(): number {\n const performance: Performance = this.globalPerformance();\n if (performance && performance.getEntries) {\n const entries: any[] = window.performance.getEntries() || [];\n return entries.length;\n } else {\n return 0;\n }\n }\n\n private reportData() {\n if (this.isReport) {\n return;\n }\n document.removeEventListener('visibilitychange', this.onVisibilityChange, true);\n\n const entries = this.getEntries();\n const entryLength = this.getEntryLength();\n const timing: PerformanceTiming = performance.timing;\n this.report({\n eventId: PluginUtils.EVENT_ID_PERFORMANCE,\n attrs: {\n entries: entries,\n entryLength: entryLength,\n pageLoadTime: timing.loadEventStart - timing.navigationStart\n }\n });\n this.isReport = true;\n }\n\n private onVisibilityChange() {\n const performance: Performance = this.globalPerformance();\n if (document.visibilityState === 'hidden') {\n performance && performance.mark('hidden');\n }\n if (document.visibilityState === 'visible') {\n performance && performance.mark('visible');\n document.removeEventListener('visibilitychange', this.onVisibilityChange, true);\n }\n }\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_PERFORMANCE;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n this.onVisibilityChange = this.onVisibilityChange.bind(this);\n document.addEventListener('visibilitychange', this.onVisibilityChange, true);\n\n const performance: Performance = this.globalPerformance();\n try {\n const performanceObserver: PerformanceObserver = new PerformanceObserver(() => {\n performance && performance.mark('largest-contentful-paint');\n });\n performanceObserver.observe({ entryTypes: ['largest-contentful-paint'] });\n // 如果有用户交互,PerformanceObserver会停止观测,此时上报性能数据\n ['keydown', 'click'].forEach((type) => {\n addEventListener(type, () => {\n this.reportData();\n if (performanceObserver && performanceObserver.disconnect) {\n performanceObserver.disconnect();\n }\n }, { once: true, capture: true });\n });\n\n } catch (e) {\n // 如果浏览器不支持此API\n this.reportData();\n }\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n /* Nothing to exit */\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5PerformanceEvent(eventArgs.attrs, this.getContext());\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of DefaultExtraH5ActivityPluginsPublisher\n */\n\nimport DefaultExtraH5PluginsPublisher from 'com/didichuxing/plugins/DefaultExtraH5PluginsPublisher';\nimport OMGH5DetectionPlugin from 'com/didichuxing/tracker/h5/activity/plugins/OMGH5DetectionPlugin';\nimport OMGH5InputPlugin from 'com/didichuxing/tracker/h5/activity/plugins/OMGH5InputPlugin';\nimport OMGH5MediumPlugin from 'com/didichuxing/tracker/h5/activity/plugins/OMGH5MediumPlugin';\nimport OMGH5ScrollEndPlugin from 'com/didichuxing/tracker/h5/activity/plugins/OMGH5ScrollEndPlugin';\nimport OMGH5ActivePageViewPlugin from 'com/didichuxing/tracker/h5/activity/plugins/OMGH5ActivePageViewPlugin';\nimport PositionPlugin from './defaultextra/PositionPlugin';\nimport OMGH5PageLeavePlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5PageLeavePlugin';\nimport OMGH5ClickPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5ClickPlugin';\nimport OMGH5ReceivedPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5ReceivedPlugin';\nimport OMGH5CustomPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5CustomPlugin';\nimport OMGH5JsErrorPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5JsErrorPlugin';\nimport OMGH5ErrorPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5ErrorPlugin';\nimport OMGSafeTypingPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGSafeTypingPlugin';\nimport OMGH5PerformancePlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5PerformancePlugin';\nexport default [\n PositionPlugin,\n OMGH5PageLeavePlugin,\n OMGH5ClickPlugin,\n OMGH5ReceivedPlugin,\n OMGH5CustomPlugin,\n OMGH5JsErrorPlugin,\n // OMGH5DetectionPlugin,\n OMGH5InputPlugin,\n OMGH5MediumPlugin, OMGH5ScrollEndPlugin,\n OMGH5ActivePageViewPlugin, OMGH5ErrorPlugin,\n OMGH5PerformancePlugin,\n OMGSafeTypingPlugin\n];\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5PageViewPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5PerformancePlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5PerformancePlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5PerformancePlugin extends AOMGH5PerformancePlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n"],"names":["_fails","exec","e","_domCreate","it","is","document","createElement","_toPrimitive","S","isObject","fn","val","toString","call","valueOf","TypeError","_has","key","hasOwnProperty","$export","type","name","source","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","exports","core","expProto","PROTOTYPE","target","global","undefined","has","ctx","C","a","b","c","this","arguments","length","apply","Function","virtual","R","hide","commonjsHelpers.unwrapExports","commonjsHelpers.createCommonjsModule","module","instance","Constructor","__esModule","_global","window","Math","self","__g","_core","version","__e","_aFunction","_ctx","that","aFunction","_isObject","_anObject","_descriptors","require$$0","Object","defineProperty","get","_ie8DomDefine","require$$1","require$$2","dP","_objectDp","f","O","Attributes","anObject","toPrimitive","IE8_DOM_DEFINE","value","_propertyDesc","bitmap","enumerable","configurable","writable","_hide","object","createDesc","U","_export","_cof","slice","_toLength","min","toInteger","_objectKeysInternal","names","toIObject","i","result","IE_PROTO","push","arrayIndexOf","Empty","IS_INCLUDES","$Object","desc","_defineProperties","props","descriptor","_Object$defineProperty","protoProps","staticProps","prototype","_iobject","propertyIsEnumerable","cof","split","_defined","_toIobject","IObject","defined","ceil","floor","_toInteger","isNaN","max","_shared","SHARED","store","mode","copyright","id","px","random","_uid","concat","shared","_sharedKey","uid","$this","el","fromIndex","toLength","index","_enumBugKeys","_objectKeys","keys","$keys","enumBugKeys","_objectDps","defineProperties","Properties","getKeys","_html","documentElement","createDict","iframe","style","display","appendChild","src","iframeDocument","contentWindow","open","write","lt","close","_objectCreate","create","dPs","check","proto","D","_objectPie","gOPD","getOwnPropertyDescriptor","_objectGopd","pIE","_setProto","set","setPrototypeOf","test","buggy","Array","__proto__","_setPrototypeOf","o","p","_Object$setPrototypeOf","_invoke","args","un","subClass","superClass","_Object$create","constructor","arraySlice","factories","_bind","bind","partArgs","bound","len","n","join","construct","invoke","rConstruct","Reflect","NEW_TARGET_BUG","fails","ARGS_BUG","Target","newTarget","$args","_toObject","ObjectProto","_objectGpo","getPrototypeOf","toObject","_objectSap","KEY","exp","$getPrototypeOf","_getPrototypeOf","_Object$getPrototypeOf","isNativeReflectConstruct","_Reflect$construct","sham","Proxy","Boolean","_wksDefine","$Symbol","Symbol","charAt","wksExt","wrap","tag","sym","AllSymbols","_create","_k","$defineProperties","enumKeys","l","$defineProperty","_redefine","_meta","setMeta","setDesc","META","w","isExtensible","FREEZE","preventExtensions","meta","NEED","fastKey","getWeak","onFreeze","_wks","USE_SYMBOL","def","TAG","_setToStringTag","stat","_wksExt","_objectGops","getOwnPropertySymbols","_enumKeys","getSymbols","gOPS","symbols","isEnum","_isArray","isArray","arg","hiddenKeys","_objectGopn","getOwnPropertyNames","gOPN","windowNames","_objectGopnExt","getWindowNames","$GOPD","$DP","gOPNExt","$JSON","JSON","_stringify","stringify","HIDDEN","wks","TO_PRIMITIVE","SymbolRegistry","OPSymbols","USE_NATIVE","$GOPS","QObject","setter","findChild","setSymbolDesc","DESCRIPTORS","$fails","protoDesc","isSymbol","iterator","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","redefine","$set","es6Symbols","j","wellKnownSymbols","k","wksDefine","for","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","require$$4","symbol","_iterators","IteratorPrototype","returnThis","TO_STRING","ITERATOR","BUGGY","VALUES","_iterDefine","Base","NAME","next","DEFAULT","IS_SET","FORCED","setToStringTag","getMethod","kind","methods","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","Iterators","values","$at","pos","s","String","charCodeAt","iterated","_t","_i","done","point","_iterStep","step","Arguments","TO_STRING_TAG","DOMIterables","Collection","_typeof_1","_typeof","obj","_Symbol","_Symbol$iterator","assertThisInitialized","ReferenceError","possibleConstructorReturn","_classof","T","tryGet","ARG","callee","_iterCall","ret","_isArrayIter","ArrayProto","_speciesConstructor","SPECIES","run","queue","defer","Derived","hasNativeReflectConstruct","NewTarget","Super","core_getIteratorMethod","getIteratorMethod","classof","_forOf","BREAK","RETURN","iterable","iterFn","getIterFn","isArrayIter","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","ONREADYSTATECHANGE","listener","event","data","nextTick","now","port","channel","port2","port1","onmessage","postMessage","addEventListener","importScripts","cel","html","removeChild","setTimeout","_task","clear","macrotask","Observer","MutationObserver","WebKitMutationObserver","Promise","isNode","PromiseCapability","resolve","reject","promise","$$resolve","$$reject","_promiseResolve","x","promiseCapability","newPromiseCapability","_newPromiseCapability","_perform","v","navigator","_userAgent","userAgent","SAFE_CLOSING","head","last","notify","toggle","node","_iterDetect","skipClosing","safe","arr","iter","task","microtask","flush","standalone","then","createTextNode","observe","characterData","parent","domain","exit","enter","empty","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","PROMISE","versions","v8","$Promise","newPromiseCapabilityModule","FakePromise","PromiseRejectionEvent","indexOf","isThenable","isReject","chain","_n","_c","_v","ok","_s","reaction","exited","handler","fail","_h","emit","onrejectionhandled","reason","console","unhandled","isUnhandled","perform","onunhandledrejection","error","_a","$reject","_d","_w","$resolve","wrapper","executor","forbiddenField","anInstance","err","require$$3","onFulfilled","onRejected","speciesConstructor","catch","require$$6","r","capability","promiseResolve","require$$7","all","remaining","forOf","$index","alreadyCalled","race","finally","onFinally","isFunction","try","callbackfn","_createProperty","_ownKeys","ownKeys","getOwnPropertyDescriptors","getDesc","createProperty","enumerableOnly","_Object$keys","_Object$getOwnPropertySymbols","filter","_Object$getOwnPropertyDescriptor","forEach","_Object$getOwnPropertyDescriptors","_Object$defineProperties","$assign","assign","_objectAssign","A","K","aLen","EventStatus","_extends","_Object$assign","rawSerialized","cbObjName","ReportCallbackUtil","OMG_CALLBACK_OBJ_NAME","cbkMethodName","Date","getTime","reportCallback","cbArg","bn","OMG_EVENT_BLACKLIST_NAME","eventid","prop","splice","performance","timing","loadEventEnd","readyState","str","replace","mesageEvent","createEvent","initMessageEvent","dispatchEvent","location","protocol","attrs","context","info","trackerVersion","getContext","appKey","productName","url","href","modifyAppKey","noUrlParam","formatUrl","eventId","getType","timestamp","viewportId","appName","appVersion","omgId","osType","osVersion","userName","userId","bizId","locale","countyId","countryCallingCode","utcOffset","getAttrs","from","getFrom","latitude","longitude","cityId","telephone","_label","eventData","getData","dataKeyMap","getDataKeyMap","_JSON$stringify","GlobalUtil","dispatchOmgLog","newkeys","sort","kvs","attrsJsonStr","_this","serializeAttrs2JsonStr","encodeURIComponent","serializedAttrs","attrsKeyMap","getAttrsKeyMap","thisAttrs","openId","getVersion","isEmptyString","AEvent","BLOCKED","PluginUtils","UPLOAD_DOMAIN_LOCAL","UPLOAD_DOMAIN_GLOBAL","UPLOAD_DOMAIN_RU","UA_BROWSER_REGEXPS","uaRegExps","UA_OS_REGEXPS","tracker","installed","AppKey","breadcrumbListName","getBreadcrumbListName","initialzedContext","uaRegExpNameItems","ua","item","idx","regExpExecArray","wx","miniProgram","getEnv","res","miniprogram","my","appInfo","getInfo","getBrowserRegExpsInUA","osInfo","getOSRegExpsInUA","uploadHost","getDeviceInfo","getUploadHost","eventArgs","cb","EVENT_ID_CLICK","serialize","sliceBreadcrumbList","some","BlockedEvent","_Promise","compatibleCallback","finalEvent","dispatchTrackerEventUnderWindow","trackedEvent","generateEvent","addTrackerEventToBreadcrumb","getEventReportor","reportEvent","propertyKey","receiver","superPropBase","property","_get","_Reflect$get","base","prefix","SequencedEvent","OMG_SEQUENCE_NAME_PREFIX","suffix","OMG_SEQUENCE_NAME_SUFFIX","sequence","NORMAL","doc","viewportHeight","offsetHeight","body","viewportWidth","offsetWidth","element","hierarchies","tagName","toLowerCase","ElementUtils","getNodeIndexInSiblings","parentElement","reverse","children","toLocaleUpperCase","nodeName","toLocaleLowerCase","targetRect","getBoundingClientRect","targetTagName","getTargetTagName","targetId","targetName","getAttribute","targetHref","targetClassName","className","targetX","round","left","targetY","top","targetWidth","width","targetHeight","height","hierarchy","getHierarchy","ViewportUtils","getViewportBox","targetText","getViewportBoxAttrsMap","targetElement","checkedAttrs","Number","checked","getElementExtraAttrs","_value","_type","getElementExtraAttrsMap","FORM_ELEMENT_MAP","input","select","textarea","AReportingStrategyPlugin","delegateInputChange","autoInput","currentFormElement","report","removeEventListener","OMGH5InputEvent","uniq","DataQueueSet","getInstance","unreportedEvents","reportEventsAfterLoad","unreportedItem","shift","reportEventImmediately","Error","isLoaded","EVENT_ID_PAGE_INIT","EVENT_ID_OMG_LOG","errorreportedEvents","removeAll","FAILED","TIMEOUT","hash","encodeHash","AH5EventReportor","cId","ts","URL","getProtocol","reportPath","xhr","XMLHttpRequest","timeout","ontimeout","TimeoutEvent","setRequestHeader","cid","getOmgci","send","EncodeHash","encodeHashUrl","onreadystatechange","status","response","parse","responseText","state","code","add","msg","onerror","FailedEvent","sendBeacon","PostEventReportor","AOMGH5InputPlugin","SendStrategyChoice","switchSendStrategy","arrayLikeToArray","arr2","arrayWithoutHoles","_Array$isArray","arrayLike","mapfn","mapping","from_1","iterableToArray","_Array$from","unsupportedIterableToArray","minLen","nonIterableSpread","_mu","currentSrc","_loop","loop","_auto","autoplay","_ct","currentTime","_nts","networkState","_pl","preload","DETECTION_TIMER_KEY_NAME","handleMediumPlay","handleMediumPause","handleMediumEnded","handleMediumReadyStateChange","autoMedium","mediumElements","getElementsByTagName","mediumElement","dataset","_this2","reportWidthAttrs","_action","handleMediumDetection","clearTimeout","clearMediumDetection","pop","OMGH5MediumEvent","AOMGH5MediumPlugin","scrollX","scrollY","handleScrollEnd","scrollTimer","autoScrollEnd","OMGH5ScrollEndEvent","AOMGH5ScrollEndPlugin","EVENT_ID_PAGE_VIEW","webkitPerformance","msPerformance","mozPerformance","globalPerformance","FP","getEntriesByName","FCP","FMP","redirectDuration","fetchStart","navigationStart","dnsDuration","domainLookupEnd","domainLookupStart","tcpDuration","connectEnd","connectStart","ttfbDuration","responseStart","requestStart","transDuration","responseEnd","domParsedDuration","domInteractive","resourceLoadDuration","loadEventStart","domContentLoadedEventEnd","firstByteTime","htmlLoadCompleteTime","firstPaintTime","startTime","firstContentfulPaintTime","firstMeaningfulPaintTime","interactTime","domReadyTime","pageLoadTime","domContentLoadedTime","domCompleteTime","domComplete","trackerSDKLoadDuration","loadEventTime","memory","usedJSHeapSize","totalJSHeapSize","jsHeapSizeLimit","trackerPerformanceEntry","getEntries","entry","initiatorType","duration","performanceTiming","performanceMemory","screen","search","referrer","cookieEnabled","pageTitle","title","host","path","pathname","screenWidth","clientWidth","screenHeight","clientHeight","colorDepth","deviceVendor","pvExtraAttrs","pvPerformanceAttrs","getPVExtraAttrsKeyMap","getPerformanceTimingAttrsKeyMap","getPerformanceMemoryAttrsKeyMap","pvType","PV_TYPE","reportPVUnderHashChange","reportPVUnderPopstateChange","urlStatck","PLUGIN_NAME_PAGE_VIEW","autoSendPageView","getTracker","setConfig","omg_ci","reportPV","hashRouterEnable","browserRouterEnable","OMGH5PageViewEvent","AOMGH5PageViewPlugin","stmItems","getUrlParams","globalAttrs","_activity_id","_activity_name","reg","RegExp","params","substr","match","decodeURIComponent","getSTMAttrs","level","socialIdKey","socialId","socialLevel","sourceSocialIdKey","refererSocialIdKey","openAccount","socialName","socialAvatar","socialGender","getSTMAttrsKeyMap","OMGH5PageViewPlugin","OMGH5ActivityPageViewEvent","EVENT_ID_RECEIVED","PLUGIN_NAME_RECEIVED","positionable","lng","lat","setLocation","config","autoPosition","fetchPosition","setConfigHandler","OMGH5ReceivedEvent","adviceSetConfigHandler","EVENT_ID_PAGE_LEAVE","reportLeaveUnderHashChange","reportLeaveUnderPopstateChange","PLUGIN_NAME_PAGE_LEAVE","reportFromLeave","OMGH5PageLeaveEvent","AOMGH5PageLeavePlugin","eventInfo","clickedCover","attr","getRealTarget","customClickedInfo","clickedCoverisChild","getTargetChildAttrs","clickedFilter","hasAttribute","customFilterClickedInfo","attrKey","parentNode","childNodeAttrs","childArr","nodeType","targetPostion","targetPosition","pointX","pageX","clientX","scrollLeft","pointY","pageY","clientY","scrollTop","clickedExtraAttrs","clickedAttrs","PLUGIN_NAME_CLICK","handleDocumentClick","autoClick","targetClassList","classes","contains","evt","getClickedFilter","eventTarget","correspondingUseElement","class","containClasses","classList","OMGH5ClickEvent","getClickedCover","getClickedCoverChild","aopHandlers","aopHandler","remove","AOMGH5ClickPlugin","AOMGH5ReceivedPlugin","PLUGIN_NAME_CUSTOM","OMGH5CustomEvent","creatInfo","AOMGH5CustomPlugin","EVENT_ID_JS_ERROR","byteToHex","buf","offset","bth","UUID","getByte2Hex","rnds","bytesToUuid","_stringWs","space","spaces","ltrim","rtrim","exporter","ALIAS","FORCE","trim","string","TYPE","$parseInt","parseInt","$trim","hex","_parseInt","ws","radix","Int32Array","ArrayBuffer","privateBuffer8","Uint8Array","privateBuffer","privateBuffer32","Uint32Array","start","privateDataLength","privateBufferLength","privateState","Md5","stateIdentity","buf8","buf32","bufLen","_md5cycle","buffer","fromCharCode","buflen","raw","buffer32Identity","subarray","dataBitsLen","matches","lo","hi","_hex","onePassHasher","appendStr","end","appendAsciiStr","hc","hexChars","ho","hexOut","d","PLUGIN_NAME_JS_ERROR","handleError","handlePromiseError","reportbeforeError","beforeErrorList","autoError","jsErrorFilters","message","typeList","promiseRejectionEvent","occasion","isFilter","getErrorType","label","stack","breadcrumb","getBreadcrumbList","v4","typeMd5","hashStr","line","lineno","filename","col","colno","OMGH5JsErrorEvent","AOMGH5JsErrorPlugin","EVENT_ID_ERROR","PLUGIN_NAME_ERROR","OMGH5ErrorEvent","AOMGH5ErrorPlugin","EVENT_ID_SAFETYPING","text","tl","dl","count","reportSafeTyping","PLUGIN_NAME_SAFETYPING","inputType","safeTyping","currentDate","OMGH5SafeTypingEvent","AOMGSafeTypingPlugin","EVENT_ID_PERFORMANCE","entryLength","isReport","onVisibilityChange","getEntryLength","visibilityState","mark","PLUGIN_NAME_PERFORMANCE","performanceObserver","PerformanceObserver","entryTypes","reportData","disconnect","once","capture","OMGH5PerformanceEvent","PositionPlugin","OMGH5PageLeavePlugin","OMGH5ClickPlugin","OMGH5ReceivedPlugin","OMGH5CustomPlugin","OMGH5JsErrorPlugin","OMGH5InputPlugin","OMGH5MediumPlugin","OMGH5ScrollEndPlugin","OMGH5ActivePageViewPlugin","OMGH5ErrorPlugin","AOMGH5PerformancePlugin","OMGSafeTypingPlugin"],"mappings":"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"}