{"version":3,"sources":["../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/common/Utils.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/DataCollector.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/Id.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/Timespan.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/events/WebEvent.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/events/ContentUpdate.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/events/PageAction.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/events/PageUnload.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/events/PageView.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/events/PageViewPerformance.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/handlers/DomContentHandler.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/WebAnalyticsPlugin.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/Enums.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/Behaviors.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/common/Constants.js","../../../../node_modules/.pnpm/@microsoft+1ds-wa-js@4.2.1_tslib@2.7.0/node_modules/@microsoft/1ds-wa-js/dist-es5/handlers/AutoCaptureHandler.js"],"names":["__webpack_require__","d","__webpack_exports__","_removeInvalidElements","_findClosestAnchor","_walkUpDomChainWithElementValidation","_returnDomObjectIfjQuery","_isElementTrulyVisible","_extractFieldFromObject","_isRightClick","_isLeftClick","_isMiddleClick","_isKeyboardEnter","_isKeyboardSpace","_isElementDnt","_isClickTelemetryAllowed","_findClosestByAttribute","_bracketIt","_debounce","_getScrollOffset","_getViewportDimensions","_getViewportBoundingRect","_microsoft_1ds_core_js__WEBPACK_IMPORTED_MODULE_0__","_microsoft_1ds_core_js__WEBPACK_IMPORTED_MODULE_1__","doNotTrackFieldName","manualTrackOnlyFieldName","object","Object","property","value","JSON","stringify","element","_isElementAnAnchor","el","validationMethod","validationMethodParam","parentNode","nodeName","viewportBoundingRect","rect1","rect2","x11","left","y11","top","x12","right","y12","bottom","x21","y21","x22","y22","Math","max","min","_getIntersectionArea","getBoundingClientRect","obj","fieldName","fieldValue","evt","which","button","keyCode","deprecated","dntElement","overrideValues","isAuto","attribute","_isAttributeInElement","attributeToLookFor","getAttribute","str","firstCallFunction","secondCallFunction","wait","context","timeout","args","arguments","callNow","clearTimeout","setTimeout","apply","scrollOffset","h","v","win","doc","parseInt","body","scrollLeft","documentElement","pageXOffset","scrollTop","pageYOffset","viewport","w","screen","docElem","innerHeight","clientHeight","innerWidth","clientWidth","viewportDimensions","_isPii","_getUri","_getPageName","_getSignedInStatus","_getCookies","_getClickTarget","onDomLoaded","_microsoft_1ds_core_js__WEBPACK_IMPORTED_MODULE_2__","_microsoft_1ds_core_js__WEBPACK_IMPORTED_MODULE_3__","_microsoft_1ds_core_js__WEBPACK_IMPORTED_MODULE_4__","_microsoft_1ds_core_js__WEBPACK_IMPORTED_MODULE_5__","_common_Utils__WEBPACK_IMPORTED_MODULE_6__","clickCaptureInputTypes","BUTTON","CHECKBOX","RADIO","RESET","SUBMIT","attributes","pii","toLowerCase","e","config","location","coreData","requestUri","url","protocol","hostname","host","port","pathname","urlCollectQuery","query","search","hash","queryIndex","indexOf","slice","urlCollectHash","_sanitizeUrl","pageName","callback","pagename","fragments","replace","split","length","signedinStatus","isLoggedIn","_cookieMgr","traceLogger","cookieValue","cookies","uniqueCookies","mergedCookies","cookiesConfig","cookiesToCollect","shareAuthStatus","push","window","varCustomerCookies","concat","hasOwnProperty","decodeURIComponent","get","clickTarget","tagName","href","temp","parent","src","_getImageHref","type","toUpperCase","loc","form","action","parentEvtNamespace","evtNamespace","onDomReadyDo","f","test","readyState","call","document","win_1","userIdPrefixes","supportedMuidHosts","microsoft.com","xbox.com","live.com","microsoftstore.com","msn.com","windows.com","office.com","Id_Id","Id","core","this","deviceClass","lastPageViewId","Utils","internalTraceId","CoreUtils","appUserId","firstPageView","CookieMgr","DynamicProto","_self","getTraceId","getTraceCtx","getLastPageViewId","initializeIds","getMuidUserId","muidValue","setAppUserId","uid","i","substring","setDeviceClass","newDeviceClass","getDeviceClass","getAppUserId","syncMuid","muidHost","EnvUtils","muidsrc","document_1","ts_utils","img","createElement","style","display","hidden","role","getMuidHost","rootDomain","visitorId","Timespan","_timers","prototype","_recordTimeSpan","counterName","isComplete","timestamp","Date","getTime","_getMetaData","metaTags","metaTagName","WebEvent_WebEvent","WebEvent","_webAnalyticsPlugin","_config","_contentHandler","_id","_pageTagsCallback","_traceLogger","_pageTags","_setBasicProperties","event","ver","Constants","id","name","DataCollector","uri","_setCommonProperties","eventProperties","_setPageTags","_pageTypeMetaTag","_marketMetaTag","_behaviorMetaTag","pageType","market","cookieEnabled","metaTag","pageTags","properties","_getBehavior","behavior","_getValidBehavior","result","isNaN","Behaviors","_getContentFormatted","content","common_Utils","ContentUpdate_ContentUpdate","_super","ContentUpdate","TsLibShims","trackContentUpdate","contentUpdateEvent","ext","web","isManual","baseType","data","baseData","latency","key","track","captureContentUpdate","customProperties","actionType","viewportDim","pageHeight","scrollHeight","vpHeight","vpWidth","vScrollOffset","hScrollOffset","contentVer","getVisibleContent","isDomComplete","PageAction_PageAction","PageAction","trackPageAction","pageActionEvent","sync","clickCoordinates","targetUri","capturePageAction","isRightClick","pageActionProperties","elementContent","syncPageActionNavClick","Enums","CLICKLEFT","KEYBOARDENTER","getElementContent","PAGE_ACTION","_getCustomTags","bhvr","currentBehavior","clickCoordinateX","clickCoordinateY","currentContent","pageActionContentTags","contentTags","timeToAction","_getTimeToClick","refUri","referrerUri","cookieMgr","cookiesValue","customParameters","attr","nn","parentElement","perf","timing","isNavigationStart","navigationStart","PageUnload_PageUnload","PageUnload","maxScroll","_this","_timestamp","_maxScroll","trackPageUnload","pageUnloadEvent","syncUnloadAction","capturePageUnload","dwellTime","scrollDepth","toString","windowPerformanceTiming","loadEventStart","pageLoadTime","PageView_PageView","PageView","capturePageView","pageViewEvent","trackPageView","PageViewPerformance_PageViewPerformance","PageViewPerformance","capturePageViewPerformance","framework","systemTiming","customTiming","_populatePageViewPerformance","trackPageViewPerformance","_contentBlobFieldNameObjects","longNames","isShortNames","areaName","slotNumber","contentName","contentSource","templateName","productId","contentType","parentId","parentName","shortNames","_keyName","DomContentHandler_DomContentHandler","DomContentHandler","_contentBlobFieldNames","useShortNameForContentBlob","getMetadata","msTags","awaTags","_getMetaDataFromDOM","autoCapture","elements","querySelectorAll","biBlobAttributeTag","arrayOfContents","CONTENT_UPDATE","eventType","biBlobElement","biBlobValue","contentElement","_isTracked","_isTrackedWithDataM","parse","DiagnosticLogger","_isTrackedWithDataBi","_populateElementContentwithDataBi","lineage","getLineageDetails","autoPopulateParentIdAndParentName","_getParentDetails","containerName","nameValue","idValue","identifier","elementBiDataAttribute","dataAttr","moduleIdAttribute","telemetryObject","cN","cT","undefined","join","lineageById","lineageContainerName","useDefaultContentName","areaElement","areaContent","_getAreaContent","customizedContentName","defaultContentName","_getDefaultContentName","aN","sN","cS","tN","pid","pI","pN","contentId","attrib","prefix","removePrefix","metaElements","metaData","meta","product","all","innerText","innerHTML","text","alt","parentIdKey","parentNameKey","_populateParentInfo","attrs","parentInfo","closestParentElement","defaultConfig","debounceMs","ConfigDefaultHelpers","scroll","resize","pageView","onLoad","onUnload","click","jsError","pageActionPageTags","pageViewPageTags","contentUpdatePageTags","referrer","muidDomain","mscomCookies","manageCv","manualPageUnload","WebAnalyticsPlugin_ApplicationInsights","ApplicationInsights","_pageView","_pageAction","_contentUpdate","_pageUnload","_pageViewPerformance","_cvPlugin","_theConfig","version","_timespan","_autoCaptureHandler","_autoCaptureConfig","_syncMuid","_muidDomain","_userSetContentHandler","_isPageUnloadFired","_base","_initDefaults","_setupAutoCapture","isInitialize","_getSystemProperties","updateCoreDataConfig","refreshMetadata","initialize","coreConfig","extensions","logger","diagLog","AutoCaptureHandler","_addHook","DynamicConfig","ctx","ProcessTelemetryContext","extConfig","getExtCfg","existingGetWParamMethod","getWParam","wparam","disableExceptionTracking","extensionConfig","shouldUpdate","_evtNamespace","_updateMuid","_populateDefaults","processTelemetry","itemCtx","cv","getCv","increment","seed","trackEvent","prop","sendPageViewInternal","pageViewPerformance","sendPageViewPerformanceInternal","trackException","exception","sendExceptionInternal","perfManager","_pageViewPerformanceManager","populatePageViewPerformanceEvent","setContentHandler","contentHandler","setAutoCaptureHandler","autoCaptureHandler","teardown","_doTeardown","unloadCtx","unloadState","__ieDyn","AnalyticsPlugin","ActionType","EventType","CLICKRIGHT","CLICKMIDDLE","SCROLL","ZOOM","RESIZE","KEYBOARDSPACE","OTHER","Behavior","MSCONTENT_PARTB_VERSION","CONTENT_VERSION","MAX_CONTENTNAME_LENGTH","APPID_PREFIX","_microsoft_dynamicproto_js__WEBPACK_IMPORTED_MODULE_0__","_DataCollector__WEBPACK_IMPORTED_MODULE_4__","_Enums__WEBPACK_IMPORTED_MODULE_5__","webAnalytics","_plugin","_logger","_clickAdded","_scrollAdded","_maxScrollAdded","_resizeAdded","_unloadAdded","_domLoadedAdded","_processClick","clickEvent","clickCaptureElements","A","AREA","INPUT","srcElement","target","pageX","pageY","control","_analyticsPlugin","addEventListener","navigator","appVersion","attachEvent","debounceConfig","processScroll","currentScroll","processResize","_doUnload","excludePageUnloadEvents","disablePageUnloadEvents"],"mappings":"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","file":"static/js/vendor.initial~e9bf6efe.217f197a.chunk.js","sourcesContent":["/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Utils.ts\r\n* @author Ram Thiru (ramthi) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n* File containing utility functions.\r\n*/\r\nimport { arrForEach, getDocument, getPerformance, getWindow, isObject, isValueAssigned, isWindowObjectAvailable, objForEachKey } from \"@microsoft/1ds-core-js\";\r\nimport { APPID_PREFIX } from \"./Constants\";\r\nvar doNotTrackFieldName = \"data-bi-dnt\";\r\nvar manualTrackOnlyFieldName = \"data-bi-mto\";\r\n/**\r\n* Check if appId has a colon as the third character. If it does\r\n* do nothing otherwise prefix it with 'JS:'.A colon is valid in an appId\r\n* @param appId - appId\r\n* @returns An appId with js:prefix\r\n*/\r\nexport function _getAppIdWithPrefix(appId) {\r\n    var result;\r\n    if (appId) {\r\n        var appIdArray = appId.split(\":\");\r\n        result = appIdArray.length > 1 && appIdArray[0].toLowerCase() === \"js\" ? appId : APPID_PREFIX + appId;\r\n    }\r\n    return result;\r\n}\r\n/**\r\n* Finds attributes in overrideConfig which are invalid or should be objects\r\n* and deletes them. useful in override config\r\n* @param overrideConfig - override config object\r\n* @param attributeNamesExpectedObjects - attributes that should be objects in override config object\r\n*/\r\nexport function _removeNonObjectsAndInvalidElements(overrideConfig, attributeNamesExpectedObjects) {\r\n    _removeInvalidElements(overrideConfig);\r\n    arrForEach(attributeNamesExpectedObjects, function (objectName, i) {\r\n        if (isObject(overrideConfig[objectName])) {\r\n            _removeInvalidElements(overrideConfig[objectName]);\r\n        }\r\n        else {\r\n            delete overrideConfig[objectName];\r\n        }\r\n    });\r\n}\r\n/**\r\n* Finds attributes in object which are invalid\r\n* and deletes them. useful in override config\r\n* @param object Input object\r\n*/\r\nexport function _removeInvalidElements(object) {\r\n    /// Because the config object 'callback' contains only functions,\r\n    /// when it is stringified it returns the empty object. This explains\r\n    /// the workaround regarding 'callback'\r\n    objForEachKey(object, function (property, value) {\r\n        if (!isValueAssigned(value) ||\r\n            (JSON.stringify(value) === \"{}\" && (property !== \"callback\"))) {\r\n            delete object[property];\r\n        }\r\n    });\r\n}\r\n/**\r\n* Gets intersection area of two rectangles\r\n* and deletes them. useful in override config\r\n* @param  rect1 - object containing top, left, right, and bottom numbers\r\n* @param  rect2 - object containing top, left, right, and bottom numbers\r\n* @returns Intersection area in px^2\r\n*/\r\nexport function _getIntersectionArea(rect1, rect2) {\r\n    var x11 = rect1.left;\r\n    var y11 = rect1.top;\r\n    var x12 = rect1.right;\r\n    var y12 = rect1.bottom;\r\n    var x21 = rect2.left;\r\n    var y21 = rect2.top;\r\n    var x22 = rect2.right;\r\n    var y22 = rect2.bottom;\r\n    var xOverlap = Math.max(0, Math.min(x12, x22) - Math.max(x11, x21));\r\n    var yOverlap = Math.max(0, Math.min(y12, y22) - Math.max(y11, y21));\r\n    return xOverlap * yOverlap;\r\n}\r\n/**\r\n* Walks up DOM tree to find anchor element\r\n* @param element - DOM element\r\n* @returns Dom element which is an anchor\r\n*/\r\nexport function _findClosestAnchor(element) {\r\n    /// <summary> Walks up DOM tree to find anchor element </summary>\r\n    /// <param type='object'> DOM element </param>\r\n    /// <returns> Dom element which is an anchor</returns>\r\n    return _walkUpDomChainWithElementValidation(element, _isElementAnAnchor);\r\n}\r\n/**\r\n* Stringify object\r\n* @param fieldName - Field name\r\n* @param value - Value\r\n* @returns Stringified value\r\n*/\r\nexport function _stringifyField(fieldName, value) {\r\n    if (value) {\r\n        try {\r\n            var stringified = JSON.stringify(value);\r\n            if (stringified === \"{}\") {\r\n                if (fieldName === \"timing\") {\r\n                    return _stringifyWindowPerformanceTiming();\r\n                }\r\n            }\r\n            return stringified;\r\n        }\r\n        catch (e) {\r\n            // JSON.Strigify has issues with circular references.\r\n            // http://stackoverflow.com/questions/4816099/chrome-sendrequest-error-typeerror-converting-circular-structure-to-json\r\n            var message = \"{'error': 'ERROR: could not stringify {0} {1}'}\";\r\n            var token = (typeof value === \"string\") ? value : \"\";\r\n            return message.replace(\"{0}\", fieldName).replace(\"{1}\", token);\r\n        }\r\n    }\r\n    return \"\";\r\n}\r\n/**\r\n* Stringify window timing object\r\n* Safari does not serialize window.performance.timing, therefore this shim is necessary.\r\n* @returns stringified window.performance.timing\r\n*/\r\nfunction _stringifyWindowPerformanceTiming() {\r\n    var performanceString = \"{\";\r\n    if (isWindowObjectAvailable) {\r\n        var WPTfields = [\"navigationStart\",\r\n            \"unloadEventStart\",\r\n            \"unloadEventEnd\",\r\n            \"redirectStart\",\r\n            \"redirectEnd\",\r\n            \"fetchStart\",\r\n            \"domainLookupStart\",\r\n            \"domainLookupEnd\",\r\n            \"connectStart\",\r\n            \"connectEnd\",\r\n            \"secureConnectionStart\",\r\n            \"requestStart\",\r\n            \"responseStart\",\r\n            \"responseEnd\",\r\n            \"domLoading\",\r\n            \"domInteractive\",\r\n            \"domContentLoadedEventStart\",\r\n            \"domContentLoadedEventEnd\",\r\n            \"domComplete\",\r\n            \"loadEventStart\",\r\n            \"loadEventEnd\"];\r\n        var perf = getPerformance();\r\n        var windowPerformanceTiming = perf ? perf.timing : {};\r\n        for (var i = 0; i < WPTfields.length; i++) {\r\n            var WindowPerformanceTimingTempValue = windowPerformanceTiming[WPTfields[i]];\r\n            if (isValueAssigned(WindowPerformanceTimingTempValue)) {\r\n                performanceString += \"'\" + WPTfields[i] + \"':\" + WindowPerformanceTimingTempValue;\r\n                if (i < WPTfields.length - 1) {\r\n                    performanceString += \",\";\r\n                }\r\n            }\r\n        }\r\n    }\r\n    performanceString += \"}\";\r\n    return performanceString;\r\n}\r\n/**\r\n* Walks up DOM tree to find element which matches validationMethod\r\n* @param el - DOM element\r\n* @param validationMethod - DOM element validation method\r\n* @param validationMethodParam - DOM element validation method parameters\r\n* @returns Dom element which is an anchor\r\n*/\r\nexport function _walkUpDomChainWithElementValidation(el, validationMethod, validationMethodParam) {\r\n    var element = el;\r\n    if (element) {\r\n        element = _returnDomObjectIfjQuery(element);\r\n        while (!validationMethod(element, validationMethodParam)) {\r\n            element = element.parentNode;\r\n            element = _returnDomObjectIfjQuery(element);\r\n            if (!element || !(element.getAttribute)) {\r\n                return null;\r\n            }\r\n        }\r\n        return element;\r\n    }\r\n}\r\n/**\r\n* Determine if DOM element is an anchor\r\n* @param element - DOM element\r\n* @returns Is element an anchor\r\n*/\r\nexport function _isElementAnAnchor(element) {\r\n    return element.nodeName === \"A\";\r\n}\r\n/**\r\n* Some elements might be jQuery, do not have method getAttribute\r\n* @param element - DOM or jQuery element\r\n* @returns DOM element\r\n*/\r\nexport function _returnDomObjectIfjQuery(element) {\r\n    // TODO: Fix Jquery reference.\r\n    // if (typeof jQuery === 'function' && element instanceof jQuery) {\r\n    //    return element[0];\r\n    // }\r\n    return element;\r\n}\r\n/**\r\n* Determines if an element is currently visible to the user\r\n* @param element - element to check for visibility\r\n* @param viewportBoundingRect - Viewport bounding rectangle\r\n* @returns true if element is truly visible\r\n*/\r\nexport function _isElementTrulyVisible(element, viewportBoundingRect) {\r\n    element = _returnDomObjectIfjQuery(element);\r\n    var rect = element.getBoundingClientRect();\r\n    var intersectionArea = _getIntersectionArea(rect, viewportBoundingRect);\r\n    if (intersectionArea > 0) {\r\n        return true;\r\n    }\r\n    else {\r\n        return false;\r\n    }\r\n}\r\n/**\r\n* Returns the specified field and also removes the property from the object if exists.\r\n* @param obj - Input object\r\n* @param fieldName - >Name of the field/property to be extracted\r\n* @returns Value of the specified tag\r\n*/\r\nexport function _extractFieldFromObject(obj, fieldName) {\r\n    var fieldValue;\r\n    if (obj && obj[fieldName]) {\r\n        fieldValue = obj[fieldName];\r\n        delete obj[fieldName];\r\n    }\r\n    return fieldValue;\r\n}\r\n/**\r\n* Determines whether an event is a right click or not\r\n* @param evt - Mouse event\r\n* @returns true if the event is a right click\r\n*/\r\nexport function _isRightClick(evt) {\r\n    if (\"which\" in evt) { // Chrome, FF, ...\r\n        return (evt.which === 3);\r\n    }\r\n    else if (\"button\" in evt) { // IE, ...\r\n        return (evt.button === 2);\r\n    }\r\n}\r\n/**\r\n* Determines whether an event is a left click or not\r\n* @param evt - Mouse event\r\n* @returns true if the event is a left click\r\n*/\r\nexport function _isLeftClick(evt) {\r\n    if (\"which\" in evt) { // Chrome, FF, ...\r\n        return (evt.which === 1);\r\n    }\r\n    else if (\"button\" in evt) { // IE, ...\r\n        return (evt.button === 1);\r\n    }\r\n}\r\n/**\r\n* Determines whether an event is a middle click or not\r\n* @param evt - Mouse event\r\n* @returns true if the event is a middle click\r\n*/\r\nexport function _isMiddleClick(evt) {\r\n    if (\"which\" in evt) { // Chrome, FF, ...\r\n        return (evt.which === 2);\r\n    }\r\n    else if (\"button\" in evt) { // IE, ...\r\n        return (evt.button === 4);\r\n    }\r\n}\r\n/**\r\n*  Determines whether an event is a keyboard enter or not\r\n* @param evt - Keyboard event\r\n* @returns true if the event is a keyboard enter\r\n*/\r\nexport function _isKeyboardEnter(evt) {\r\n    if (\"keyCode\" in evt) { // Chrome, FF, ...\r\n        return (evt.keyCode === 13);\r\n    }\r\n}\r\n/**\r\n*  Determines whether an event is a keyboard space or not\r\n* @param evt - Keyboard event\r\n* @returns true if the event is a space enter\r\n*/\r\nexport function _isKeyboardSpace(evt) {\r\n    if (\"keyCode\" in evt) { // Chrome, FF, ...\r\n        return (evt.keyCode === 32);\r\n    }\r\n}\r\n/**\r\n*  Determines whether the element have a DNT(Do Not Track) tag\r\n* @param element - DOM element\r\n* @param doNotTrackFieldName - Deprecated\r\n* @returns true if the element must not be tracked\r\n*/\r\nexport function _isElementDnt(element, deprecated) {\r\n    var dntElement = _findClosestByAttribute(element, doNotTrackFieldName);\r\n    if (!isValueAssigned(dntElement)) {\r\n        return false;\r\n    }\r\n    return true;\r\n}\r\n/**\r\n*  Determines whether the element can generate pageAction telemetry using data-bi attributes mto and dnt\r\n* @param element - DOM element\r\n* @param overrides - Override to determine if auto or manual call\r\n* @returns true if the element is can be tracked\r\n*/\r\nexport function _isClickTelemetryAllowed(element, overrideValues) {\r\n    // MTO do not send auto telemetry for this element\r\n    if (overrideValues &&\r\n        overrideValues.isAuto &&\r\n        isValueAssigned(_findClosestByAttribute(element, manualTrackOnlyFieldName))) {\r\n        return false;\r\n    }\r\n    // Do not track element\r\n    if (_isElementDnt(element)) {\r\n        return false;\r\n    }\r\n    return true;\r\n}\r\n/**\r\n* Walks up DOM tree to find element with attribute\r\n* @param el - DOM element\r\n* @param attribute - Attribute name\r\n* @returns Dom element which contains attribute\r\n*/\r\nexport function _findClosestByAttribute(el, attribute) {\r\n    return _walkUpDomChainWithElementValidation(el, _isAttributeInElement, attribute);\r\n}\r\n/**\r\n* checks if attribute is in element.\r\n* method checks for empty string, in case the attribute is set but no value is assigned to it\r\n* @param element - DOM element\r\n* @param attributeToLookFor - Attribute name\r\n* @returns true if attribute is in element, even if empty string\r\n*/\r\nexport function _isAttributeInElement(element, attributeToLookFor) {\r\n    var value = element.getAttribute(attributeToLookFor);\r\n    return isValueAssigned(value) || value === \"\";\r\n}\r\n/**\r\n*  Adds surrounding square brackets to the passed in text\r\n* @param str - Input string\r\n* @returns String with surrounding brackets\r\n*/\r\nexport function _bracketIt(str) {\r\n    /// <summary>\r\n    ///  Adds surrounding square brackets to the passed in text\r\n    /// </summary>\r\n    return \"[\" + str + \"]\";\r\n}\r\n/**\r\n *  When constantly called, debounce returns two functions, where:\r\n *  - function 1 will trigger at first call,\r\n *  - function 2 will be called at last call, after it stops being called for\r\n *  'wait' milliseconds\r\n * @param firstCallFunction - The function that will trigger at first call\r\n * @param secondCallFunction - The function that will trigger at last call after 'wait' milliseconds\r\n * @params wait - The debounce time interval\r\n */\r\nexport function _debounce(firstCallFunction, secondCallFunction, wait, context) {\r\n    var timeout;\r\n    return function () {\r\n        var args = arguments;\r\n        var later = function () {\r\n            timeout = 0;\r\n            if (secondCallFunction) {\r\n                secondCallFunction.apply(context, args);\r\n            }\r\n        };\r\n        var callNow = !timeout;\r\n        clearTimeout(timeout);\r\n        timeout = setTimeout(later, wait);\r\n        if (callNow) {\r\n            if (firstCallFunction) {\r\n                firstCallFunction.apply(context, args);\r\n            }\r\n        }\r\n    };\r\n}\r\n/**\r\n *  Get scroll offset\r\n * @returns Returns the scroll offset\r\n */\r\nexport function _getScrollOffset() {\r\n    var scrollOffset = { h: 0, v: 0 };\r\n    var win = getWindow();\r\n    var doc = getDocument();\r\n    if (doc && win) {\r\n        scrollOffset = {\r\n            h: parseInt(doc.body.scrollLeft || doc.documentElement.scrollLeft || win.pageXOffset, 10),\r\n            v: parseInt(doc.body.scrollTop || doc.documentElement.scrollTop || win.pageYOffset, 10)\r\n        };\r\n    }\r\n    return scrollOffset;\r\n}\r\n/**\r\n* Use window dimensions if available before reaching into DOM.\r\n* Accessing DOM frequently causes layout to reflow and impacts perf.\r\n* @returns Returns a Viewport object that contains dimensions of the current viewport\r\n* @description When this is executed from within an iFrame, the dimensions would be that of the iFrame and not the browser window.\r\n*/\r\nexport function _getViewportDimensions() {\r\n    var viewport = { h: 0, w: 0 };\r\n    var win = getWindow();\r\n    var doc = getDocument();\r\n    if (win && doc && win.screen) {\r\n        var body = doc.body || {};\r\n        var docElem = doc.documentElement || {};\r\n        viewport.h = win.innerHeight || body.clientHeight || docElem.clientHeight;\r\n        viewport.w = win.innerWidth || body.clientWidth || docElem.clientWidth;\r\n    }\r\n    return viewport;\r\n}\r\n/**\r\n *  Get viewport bounding dimensions\r\n * @param viewportDimensions Dimensions of the viewport\r\n * @returns Returns viewport bounding rect\r\n */\r\nexport function _getViewportBoundingRect(viewportDimensions) {\r\n    var viewportBoundingRect = {\r\n        top: 0,\r\n        bottom: viewportDimensions.h,\r\n        left: 0,\r\n        right: viewportDimensions.w\r\n    };\r\n    return viewportBoundingRect;\r\n}\r\n//# sourceMappingURL=Utils.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* DataCollector.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { _throwInternal, arrForEach, createUniqueNamespace, eventOff, eventOn, getDocument, getLocation, getWindow, isDocumentObjectAvailable, isValueAssigned, isWindowObjectAvailable, mergeEvtNamespace } from \"@microsoft/1ds-core-js\";\r\nimport { _findClosestAnchor } from \"./common/Utils\";\r\nvar clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };\r\n/**\r\n* Get Image href of a given HTMLImageElement\r\n* @param element - An html image element\r\n* @returns Href value.\r\n*/\r\nexport function _getImageHref(element) {\r\n    var temp = element;\r\n    if (temp) {\r\n        var parent = _findClosestAnchor(temp);\r\n        if (parent && parent.length === 1) {\r\n            if (parent[0].href) {\r\n                return parent[0].href;\r\n            }\r\n            else if (parent[0].src) {\r\n                return (parent[0].src);\r\n            }\r\n        }\r\n    }\r\n    return \"\";\r\n}\r\n/**\r\n* Check if a given element has an element has data-dc attribute defined with a value 'pii'\r\n* @param element - An html element\r\n* @returns Flag indicating if an element is market PII.\r\n*/\r\nexport function _isPii(element) {\r\n    if (!element || !element.attributes) {\r\n        return false;\r\n    }\r\n    try {\r\n        var pii = element.getAttribute(\"data-dc\");\r\n        if (isValueAssigned(pii)) {\r\n            if (pii.toLowerCase() === \"pii\") {\r\n                return true;\r\n            }\r\n            else {\r\n                return false;\r\n            }\r\n        }\r\n        else {\r\n            return false;\r\n        }\r\n    }\r\n    catch (e) {\r\n        return false;\r\n    }\r\n}\r\n/**\r\n* Get URI, sanitize the value if configured on\r\n* @param config - Configuration\r\n* @param location - window.location or document.location\r\n* @returns Flag indicating if an element is market PII.\r\n*/\r\nexport function _getUri(config, location) {\r\n    if (config.coreData && config.coreData.requestUri && config.coreData.requestUri !== \"\") {\r\n        return config.coreData.requestUri;\r\n    }\r\n    return _sanitizeUrl(config, location);\r\n}\r\n/**\r\n* Sanitize URL values\r\n* @param config - Configuration\r\n* @param location - window.location or document.location\r\n* @returns Flag indicating if an element is market PII.\r\n*/\r\nexport function _sanitizeUrl(config, location) {\r\n    if (!location) {\r\n        return null;\r\n    }\r\n    var url = location.protocol + \"//\" + (location.hostname || location.host) + // location.hostname is not supported on Opera and Opera for Android\r\n        (isValueAssigned(location.port) ? \":\" + location.port : \"\") +\r\n        location.pathname;\r\n    if (config.urlCollectQuery) { // false by default\r\n        var query = location.search;\r\n        if (!query) {\r\n            // in older browsers the query parameters can be contained in the hash\r\n            var hash = location.hash || \"\";\r\n            var queryIndex = hash.indexOf(\"?\");\r\n            if (queryIndex !== -1) {\r\n                query = hash.slice(queryIndex);\r\n            }\r\n        }\r\n        url += query;\r\n    }\r\n    if (config.urlCollectHash) { // false by default\r\n        url += (location.hash || \"\");\r\n    }\r\n    return url;\r\n}\r\n/**\r\n* Gets the pageName from the DOM or by calling a override if set.\r\n* @param config - configuration object\r\n* @returns Page name.\r\n*/\r\nexport function _getPageName(config, overrideValues) {\r\n    /// <summary>\r\n    ///  Gets the pageName from the DOM or by calling a override if set.\r\n    /// </summary>\r\n    if (overrideValues && overrideValues.pageName) {\r\n        return overrideValues.pageName;\r\n    }\r\n    else if (config.callback && typeof (config.callback.pageName) === \"function\") {\r\n        return config.callback.pageName();\r\n    }\r\n    else if (config.coreData && config.coreData.pageName) {\r\n        return config.coreData.pageName;\r\n    }\r\n    else {\r\n        var loc = getLocation() || {};\r\n        var pagename = loc.pathname || \"\";\r\n        var fragments = pagename.replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\r\n        if (fragments && fragments[fragments.length - 1]) {\r\n            pagename = fragments[fragments.length - 1];\r\n        }\r\n        else {\r\n            pagename = \"Home\";\r\n        }\r\n        return pagename;\r\n    }\r\n}\r\n/**\r\n* Gets the document's title.  Title returned is trimmed to 150 characters\r\n* @returns Document title.\r\n*/\r\nexport function _getTitle() {\r\n    return isDocumentObjectAvailable ? document.title.substring(0, 150) : \"\";\r\n}\r\nexport function _getSignedInStatus(config) {\r\n    var isLoggedIn = config.callback && typeof (config.callback.signedinStatus) === \"function\" ?\r\n        config.callback.signedinStatus() : config.isLoggedIn;\r\n    return isLoggedIn;\r\n}\r\nexport function _getCookies(config, _cookieMgr, traceLogger) {\r\n    var cookies = \"\";\r\n    var uniqueCookies = {};\r\n    var mergedCookies = [];\r\n    var cookiesConfig = config.cookiesToCollect;\r\n    if (config.shareAuthStatus === false) {\r\n        // collect ANON if it is in cookiesConfig\r\n        mergedCookies = cookiesConfig;\r\n    }\r\n    else {\r\n        // do not collect ANON even if it is in cookiesConfig\r\n        arrForEach(cookiesConfig, function (value) {\r\n            if (value !== \"ANON\") {\r\n                mergedCookies.push(value);\r\n            }\r\n        });\r\n    }\r\n    try {\r\n        // adding a try catch block to ensure any mis-handling\r\n        // of the varCustomerCookies variable by adopters is not impacting the rest.\r\n        if (isWindowObjectAvailable && window.varCustomerCookies && window.varCustomerCookies.length > 0) {\r\n            mergedCookies = mergedCookies.concat(window.varCustomerCookies);\r\n        }\r\n    }\r\n    catch (e) {\r\n        _throwInternal(traceLogger, 1 /* eLoggingSeverity.CRITICAL */, 512 /* _eExtendedInternalMessageId.FailedToGetCookies */, \"Failed to get cookies \");\r\n    }\r\n    var cookieValue;\r\n    arrForEach(mergedCookies, function (value) {\r\n        // de-dupe the list, no value is necessary hence ''\r\n        if (!uniqueCookies.hasOwnProperty(value)) {\r\n            uniqueCookies[value] = \"\";\r\n            cookieValue = decodeURIComponent(_cookieMgr.get(value));\r\n            if (cookieValue !== \"\") {\r\n                cookies += value + \"=\" + cookieValue + \";\";\r\n            }\r\n        }\r\n    });\r\n    return cookies;\r\n}\r\n/**\r\n *\r\n* Get click target\r\n* @returns Click target URI\r\n*/\r\nexport function _getClickTarget(element) {\r\n    var clickTarget = \"\";\r\n    switch (element.tagName) {\r\n        case \"A\":\r\n        case \"AREA\":\r\n            clickTarget = element.href || \"\";\r\n            break;\r\n        case \"IMG\":\r\n            clickTarget = _getImageHref(element);\r\n            break;\r\n        case \"INPUT\":\r\n            var type = element.type;\r\n            if (type && (clickCaptureInputTypes[type.toUpperCase()])) {\r\n                var loc = getLocation() || {};\r\n                if (element.form) {\r\n                    clickTarget = element.form.action || (loc.pathname || \"\");\r\n                }\r\n                else {\r\n                    clickTarget = loc.pathname || \"\";\r\n                }\r\n            }\r\n            break;\r\n        default:\r\n            break;\r\n    }\r\n    return clickTarget;\r\n}\r\n/**\r\n *\r\n * Execute callback when DOM finish loading\r\n */\r\nexport function onDomLoaded(callback, parentEvtNamespace) {\r\n    var evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"onDomLoaded\"), parentEvtNamespace);\r\n    onDomReadyDo(function () {\r\n        if (isDocumentObjectAvailable && document.readyState === \"complete\") {\r\n            callback();\r\n        }\r\n        else {\r\n            var win_1 = getWindow();\r\n            if (win_1) {\r\n                eventOn(win_1, \"load\", function () {\r\n                    callback && callback();\r\n                    callback = null;\r\n                    // Auto remove the event handler\r\n                    eventOff(win_1, null, null, evtNamespace);\r\n                }, evtNamespace);\r\n            }\r\n        }\r\n    });\r\n}\r\n// use smallest domready ever for IE8. When IE8 is deprecated, use addEventListener('DomContentLoaded')\r\nfunction onDomReadyDo(f) {\r\n    /// <summary> fires function f on domRead </summary>\r\n    /// <param type='function'>function to call on domRead</param>\r\n    var doc = getDocument() || {};\r\n    /in/.test(doc.readyState) ? setTimeout(function () { onDomReadyDo(f); }, 100) : f.call();\r\n}\r\n//# sourceMappingURL=DataCollector.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* id.ts\r\n* @author Ram Thiru (ramthi)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createGuid, generateW3CId, getCookieValue, getDocument, getLocation, safeGetCookieMgr } from \"@microsoft/1ds-core-js\";\r\n// Limit support to i, w, and c; make logging accidental PII data more difficult.\r\nvar userIdPrefixes = [\r\n    \"c:\",\r\n    \"i:\",\r\n    \"w:\" // domain user id as hash\r\n];\r\nvar supportedMuidHosts = {\r\n    \"microsoft.com\": \"c1.microsoft.com\",\r\n    \"xbox.com\": \"c.xbox.com\",\r\n    \"live.com\": \"c.live.com\",\r\n    \"microsoftstore.com\": \"c.microsoftstore.com\",\r\n    \"msn.com\": \"c.msn.com\",\r\n    \"windows.com\": \"c.windows.com\",\r\n    \"office.com\": \"c.office.com\"\r\n};\r\nvar Id = /** @class */ (function () {\r\n    function Id(core) {\r\n        this.core = core;\r\n        var lastPageViewId = createGuid();\r\n        var internalTraceId = generateW3CId();\r\n        var appUserId = null;\r\n        var firstPageView = false;\r\n        var deviceClass;\r\n        var _cookieMgr = safeGetCookieMgr(core);\r\n        dynamicProto(Id, this, function (_self) {\r\n            _self.getTraceId = function () {\r\n                if (core && core.getTraceCtx) {\r\n                    return core.getTraceCtx().getTraceId() || internalTraceId;\r\n                }\r\n                return internalTraceId;\r\n            };\r\n            _self.getLastPageViewId = function () {\r\n                return lastPageViewId;\r\n            };\r\n            _self.initializeIds = function () {\r\n                if (!firstPageView) {\r\n                    firstPageView = true;\r\n                }\r\n                else {\r\n                    // this.traceId = this.createTraceId();\r\n                    lastPageViewId = createGuid();\r\n                }\r\n            };\r\n            _self.getMuidUserId = function () {\r\n                var muidValue = getCookieValue(_cookieMgr, \"MUID\");\r\n                return muidValue && muidValue.length ? \"t:\" + muidValue : muidValue;\r\n            };\r\n            /// Set app user id.\r\n            _self.setAppUserId = function (uid) {\r\n                appUserId = null; // Make sure to reset the last user id.\r\n                if (!uid) {\r\n                    return; // No need to log null or empty user ids which can be used to reset app user ids.\r\n                }\r\n                for (var i = 0; i < userIdPrefixes.length; i++) {\r\n                    if (userIdPrefixes[i] === uid.substring(0, 2)) {\r\n                        appUserId = uid;\r\n                        break;\r\n                    }\r\n                }\r\n                if (!appUserId) {\r\n                    // this._traceLogger.w('Unsupported app user id: ' + uid + '. Supported app user ids are: c:, i:, and w:');\r\n                }\r\n            };\r\n            _self.setDeviceClass = function (newDeviceClass) {\r\n                if (newDeviceClass) {\r\n                    deviceClass = newDeviceClass;\r\n                }\r\n            };\r\n            _self.getDeviceClass = function () {\r\n                return deviceClass;\r\n            };\r\n            _self.getAppUserId = function () {\r\n                return appUserId;\r\n            };\r\n            _self.syncMuid = function (muidHost) {\r\n                var location = getLocation();\r\n                if (location && muidHost) {\r\n                    var muidsrc = (location.protocol || \"http:\") + \"//\" + muidHost + \"/c.gif?DI=4050&did=1&t=\";\r\n                    var document_1 = getDocument();\r\n                    if (document_1) {\r\n                        var img = document_1.createElement(\"IMG\");\r\n                        img.style.display = \"none\";\r\n                        img.src = muidsrc;\r\n                        img.hidden = \"\";\r\n                        img[\"aria-hidden\"] = \"true\";\r\n                        img.role = \"presentation\";\r\n                    }\r\n                    return true;\r\n                }\r\n                return false;\r\n            };\r\n            _self.getMuidHost = function (rootDomain) {\r\n                return supportedMuidHosts[rootDomain];\r\n            };\r\n        });\r\n    }\r\n    Id.visitorId = function () {\r\n        var userId = getCookieValue(safeGetCookieMgr(null), \"MUID\");\r\n        return userId;\r\n    };\r\n// Removed Stub for Id.prototype.getTraceId.\r\n// Removed Stub for Id.prototype.getLastPageViewId.\r\n// Removed Stub for Id.prototype.initializeIds.\r\n// Removed Stub for Id.prototype.getMuidUserId.\r\n    /// Set app user id.\r\n// Removed Stub for Id.prototype.setAppUserId.\r\n// Removed Stub for Id.prototype.setDeviceClass.\r\n// Removed Stub for Id.prototype.getDeviceClass.\r\n// Removed Stub for Id.prototype.getAppUserId.\r\n// Removed Stub for Id.prototype.syncMuid.\r\n// Removed Stub for Id.prototype.getMuidHost.\r\n    return Id;\r\n}());\r\nexport { Id };\r\n//# sourceMappingURL=Id.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* timespan.ts\r\n* @author Ram Thiru (ramthi)\r\n* @copyright Microsoft 2018\r\n*/\r\nvar Timespan = /** @class */ (function () {\r\n    function Timespan() {\r\n        this._timers = [];\r\n    }\r\n    /**\r\n     * Records the current time on a timer object identified by the counterName passed in\r\n     * Returns a number > 0  that denotes the milliseconds elapsed between start and current time, if isComplete param is set to true.\r\n     * @param counterName - Unique name for the counter instance that needs to be operated on.\r\n     * @param isComplete - Indicates if the call is to complete a timer or start a new one.\r\n     */\r\n    Timespan.prototype._recordTimeSpan = function (counterName, isComplete) {\r\n        var timestamp = new Date().getTime();\r\n        if (!isComplete) {\r\n            this._timers[counterName] = timestamp;\r\n        }\r\n        else {\r\n            return timestamp - this._timers[counterName];\r\n        }\r\n    };\r\n    return Timespan;\r\n}());\r\nexport { Timespan };\r\n//# sourceMappingURL=Timespan.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* webEvents.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport * as DataCollector from \"../DataCollector\";\r\nimport { cookieAvailable, extend, getLocation, isArray, isValueAssigned, isWindowObjectAvailable, objForEachKey } from \"@microsoft/1ds-core-js\";\r\nimport { Behavior } from \"../Behaviors\";\r\nimport { MSCONTENT_PARTB_VERSION } from \"../common/Constants\";\r\nimport { _bracketIt } from \"../common/Utils\";\r\n/**\r\n* Get the specified metadata value from the collection\r\n* If overrideValue is specified in the config that takes precedence.\r\n* @param metaTags - Meta data.\r\n* @param awaTags - Coredata values from configuration.\r\n* @param metaTagName - Name of the metaTag to get.\r\n* @returns Meta data value\r\n*/\r\nfunction _getMetaData(metaTags, coreData, metaTagName) {\r\n    var value = \"\";\r\n    if (coreData && coreData[metaTagName]) {\r\n        value = coreData[metaTagName];\r\n    }\r\n    else if (metaTags) {\r\n        value = metaTags[metaTagName];\r\n    }\r\n    return value;\r\n}\r\nvar WebEvent = /** @class */ (function () {\r\n    /**\r\n   * @param webAnalyticsPlugin - Web Analytics plugin instance\r\n   * @param config - WebAnalytics configuration object\r\n   * @param contentHandler - Content handler\r\n   * @param id - Id object\r\n   * @param pageTagsCallback - callback methods to get pageTags value\r\n   * @param metaTags - Meta tags\r\n   * @param traceLogger - Trace logger to log to console.\r\n   */\r\n    function WebEvent(_webAnalyticsPlugin, _config, _contentHandler, _id, _pageTagsCallback, metaTags, _traceLogger) {\r\n        this._webAnalyticsPlugin = _webAnalyticsPlugin;\r\n        this._config = _config;\r\n        this._contentHandler = _contentHandler;\r\n        this._id = _id;\r\n        this._pageTagsCallback = _pageTagsCallback;\r\n        this.metaTags = metaTags;\r\n        this._traceLogger = _traceLogger;\r\n        this._pageTags = {};\r\n    }\r\n    WebEvent.prototype._setBasicProperties = function (event, overrideValues) {\r\n        // Fill common PartB fields\r\n        event.ver = MSCONTENT_PARTB_VERSION;\r\n        event.id = this._id.getLastPageViewId();\r\n        if (!isValueAssigned(event.name)) {\r\n            event.name = DataCollector._getPageName(this._config, overrideValues);\r\n        }\r\n        if (!isValueAssigned(event.uri) && isWindowObjectAvailable) {\r\n            event.uri = DataCollector._getUri(this._config, getLocation());\r\n        }\r\n    };\r\n    /**\r\n    * Sets common properties for events that are based on the WebEvent schema.\r\n    * @param event - The event\r\n    */\r\n    WebEvent.prototype._setCommonProperties = function (event, eventProperties, overrideValues) {\r\n        var _self = this;\r\n        _self._setBasicProperties(event, overrideValues);\r\n        _self._setPageTags(event, overrideValues);\r\n        // extract specific meta tags out of the pageTags.metaTags collection.  These will go into assigned first class fields in the event.\r\n        // the rest will go into pageTags.metaTags collection as is.\r\n        _self._pageTypeMetaTag = _getMetaData(_self.metaTags, _self._config.coreData, \"pageType\");\r\n        _self._marketMetaTag = _getMetaData(_self.metaTags, _self._config.coreData, \"market\");\r\n        _self._behaviorMetaTag = _getMetaData(_self.metaTags, _self._config.coreData, \"behavior\");\r\n        if (isValueAssigned(overrideValues.pageType)) {\r\n            event.pageType = overrideValues.pageType;\r\n        }\r\n        // Only assign if not overriden and meta data is available\r\n        if (isValueAssigned(_self._pageTypeMetaTag) && !isValueAssigned(event.pageType)) {\r\n            event.pageType = _self._pageTypeMetaTag;\r\n        }\r\n        if (isValueAssigned(_self._marketMetaTag)) {\r\n            event.market = _self._marketMetaTag;\r\n        }\r\n        event.isLoggedIn = DataCollector._getSignedInStatus(_self._config);\r\n        // Fill common PartC fields\r\n        eventProperties.cookieEnabled = cookieAvailable();\r\n    };\r\n    /**\r\n    * Sets pageTags.\r\n    * @param event - The event\r\n    */\r\n    WebEvent.prototype._setPageTags = function (event, overrideValues) {\r\n        var _self = this;\r\n        _self._pageTags = {};\r\n        // Use DOM meta data first and then apply overrides\r\n        if (_self.metaTags) {\r\n            _self._pageTags.metaTags = _self._pageTags.metaTags || {};\r\n            // Remove not supported meta data in pageTags.metaTags\r\n            objForEachKey(_self.metaTags, function (metaTag, value) {\r\n                if (metaTag !== \"behavior\" && metaTag !== \"market\" && metaTag !== \"pageType\") {\r\n                    _self._pageTags.metaTags[metaTag] = value;\r\n                }\r\n            });\r\n        }\r\n        // Prepare the pageTags object that is mostly the same for all events.  Event specific pageTags will be added inside event constructors.\r\n        if (_self._config.coreData && _self._config.coreData.pageTags) {\r\n            _self._pageTags = extend(true, _self._pageTags, _self._config.coreData.pageTags);\r\n        }\r\n        if (_self._pageTagsCallback) {\r\n            _self._pageTags = extend(true, _self._pageTags, _self._pageTagsCallback());\r\n        }\r\n        if (isValueAssigned(overrideValues.pageTags)) {\r\n            _self._pageTags = extend(true, _self._pageTags, overrideValues.pageTags);\r\n        }\r\n        // All metadata tags that must be saved as properties have been extracted at this point.  Assign pageTags as is.\r\n        event.properties = event.properties || {};\r\n        event.properties[\"pageTags\"] = _self._pageTags;\r\n    };\r\n    WebEvent.prototype._getBehavior = function (overrideValues) {\r\n        var behavior;\r\n        // If override specified\r\n        if (overrideValues && isValueAssigned(overrideValues.behavior)) {\r\n            behavior = overrideValues.behavior;\r\n        }\r\n        else if (isValueAssigned(this._behaviorMetaTag)) {\r\n            behavior = this._behaviorMetaTag;\r\n        }\r\n        return this._getValidBehavior(behavior);\r\n    };\r\n    WebEvent.prototype._getValidBehavior = function (behavior) {\r\n        if (isValueAssigned(behavior)) {\r\n            var result = void 0;\r\n            var value = parseInt(behavior);\r\n            if (!isNaN(value)) {\r\n                result = value;\r\n            }\r\n            else {\r\n                result = Behavior[behavior];\r\n            }\r\n            if (result in Behavior) {\r\n                return result;\r\n            }\r\n        }\r\n        return 0; /*UNDEFINED*/\r\n    };\r\n    WebEvent.prototype._getContentFormatted = function (content) {\r\n        if (isValueAssigned(content)) {\r\n            if (isArray(content)) {\r\n                return JSON.stringify(content);\r\n            }\r\n            else {\r\n                return _bracketIt(JSON.stringify(content));\r\n            }\r\n        }\r\n        return undefined;\r\n    };\r\n    return WebEvent;\r\n}());\r\nexport { WebEvent };\r\n//# sourceMappingURL=WebEvent.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* ContentUpdate.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, isDocumentObjectAvailable, isValueAssigned, objForEachKey } from \"@microsoft/1ds-core-js\";\r\nimport { CONTENT_VERSION } from \"../common/Constants\";\r\nimport { _getScrollOffset, _getViewportDimensions } from \"../common/Utils\";\r\nimport { WebEvent } from \"./WebEvent\";\r\nvar ContentUpdate = /** @class */ (function (_super) {\r\n    __extends(ContentUpdate, _super);\r\n    function ContentUpdate() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n      * API to send ContentUpdate event\r\n      * @param contentUpdateEvent - ContentUpdate event\r\n      * @param  properties - ContentUpdate properties(Part C)\r\n      */\r\n    ContentUpdate.prototype.trackContentUpdate = function (contentUpdateEvent, properties) {\r\n        // Get part A properties\r\n        var ext = {};\r\n        ext[\"web\"] = {};\r\n        ext[\"web\"][\"isManual\"] = contentUpdateEvent.isManual;\r\n        var event = {\r\n            name: \"Ms.Web.ContentUpdate\",\r\n            baseType: \"ContentUpdateData\",\r\n            ext: ext,\r\n            data: {},\r\n            baseData: {},\r\n            latency: 3 /* EventLatencyValue.RealTime */\r\n        };\r\n        arrForEach([\r\n            \"name\",\r\n            \"uri\",\r\n            \"market\",\r\n            \"pageType\",\r\n            \"isLoggedIn\",\r\n            \"id\",\r\n            \"properties\",\r\n            \"ver\",\r\n            \"actionType\",\r\n            \"behavior\",\r\n            \"pageHeight\",\r\n            \"content\",\r\n            \"contentVer\",\r\n            \"vpHeight\",\r\n            \"vpWidth\",\r\n            \"vScrollOffset\",\r\n            \"hScrollOffset\"\r\n        ], function (key) {\r\n            event.baseData[key] = contentUpdateEvent[key];\r\n        });\r\n        objForEachKey(properties, function (property, value) {\r\n            if (!event.data[property]) {\r\n                event.data[property] = value;\r\n            }\r\n        });\r\n        this._webAnalyticsPlugin.core.track(event);\r\n    };\r\n    /**\r\n   * API to create and send a populated ContentUpdate event\r\n   * @param overrideValues - ContentUpdate overrides\r\n   * @param customProperties - Custom properties(Part C)\r\n   */\r\n    ContentUpdate.prototype.captureContentUpdate = function (overrideValues, customProperties) {\r\n        overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;\r\n        var event = {};\r\n        var properties = isValueAssigned(customProperties) ? customProperties : {};\r\n        this._setCommonProperties(event, properties, overrideValues);\r\n        event.behavior = this._getBehavior(overrideValues);\r\n        if (isValueAssigned(overrideValues.actionType)) {\r\n            event.actionType = overrideValues.actionType;\r\n        }\r\n        var viewportDim = _getViewportDimensions();\r\n        var scrollOffset = _getScrollOffset();\r\n        event.pageHeight = isDocumentObjectAvailable ? document.body.scrollHeight : null;\r\n        event.vpHeight = viewportDim.h;\r\n        event.vpWidth = viewportDim.w;\r\n        event.vScrollOffset = scrollOffset.v;\r\n        event.hScrollOffset = scrollOffset.h;\r\n        event.contentVer = CONTENT_VERSION;\r\n        event.isManual = !overrideValues.isAuto;\r\n        var content = this._getContentFormatted(overrideValues.content) || JSON.stringify(this._contentHandler.getVisibleContent());\r\n        if (content) {\r\n            event.content = content;\r\n        }\r\n        // Set PartC values\r\n        if (isValueAssigned(overrideValues.isDomComplete)) {\r\n            properties.isDomComplete = overrideValues.isDomComplete;\r\n        }\r\n        else {\r\n            properties.isDomComplete = false;\r\n        }\r\n        this.trackContentUpdate(event, properties);\r\n    };\r\n    return ContentUpdate;\r\n}(WebEvent));\r\nexport { ContentUpdate };\r\n//# sourceMappingURL=ContentUpdate.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* pageAction.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { extend, getPerformance, isArray, isUndefined, isValueAssigned, objForEachKey, safeGetCookieMgr, strStartsWith } from \"@microsoft/1ds-core-js\";\r\nimport { ActionType, EventType } from \"../Enums\";\r\nimport { CONTENT_VERSION } from \"../common/Constants\";\r\nimport { _extractFieldFromObject, _returnDomObjectIfjQuery } from \"../common/Utils\";\r\nimport { WebEvent } from \"./WebEvent\";\r\nimport { _getClickTarget, _getCookies, _isPii } from \"../DataCollector\";\r\nvar PageAction = /** @class */ (function (_super) {\r\n    __extends(PageAction, _super);\r\n    function PageAction() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n      * API to send pageAction event\r\n      * @param pageActionEvent - PageAction event\r\n      * @param properties - PageAction properties(Part C)\r\n      */\r\n    PageAction.prototype.trackPageAction = function (pageActionEvent, properties) {\r\n        // Get part A properties\r\n        var ext = {};\r\n        ext[\"web\"] = {};\r\n        ext[\"web\"][\"isManual\"] = pageActionEvent.isManual;\r\n        var event = {\r\n            name: \"Ms.Web.PageAction\",\r\n            baseType: \"PageActionData\",\r\n            ext: ext,\r\n            data: {},\r\n            baseData: {},\r\n            latency: 1 /* EventLatencyValue.Normal */\r\n        };\r\n        if (!isUndefined(pageActionEvent.sync)) {\r\n            event.sync = pageActionEvent.sync;\r\n        }\r\n        event.baseData[\"name\"] = pageActionEvent.name;\r\n        event.baseData[\"uri\"] = pageActionEvent.uri;\r\n        event.baseData[\"market\"] = pageActionEvent.market;\r\n        event.baseData[\"pageType\"] = pageActionEvent.pageType;\r\n        event.baseData[\"isLoggedIn\"] = pageActionEvent.isLoggedIn;\r\n        event.baseData[\"id\"] = pageActionEvent.id;\r\n        event.baseData[\"properties\"] = pageActionEvent.properties;\r\n        event.baseData[\"ver\"] = pageActionEvent.ver;\r\n        event.baseData[\"actionType\"] = pageActionEvent.actionType;\r\n        event.baseData[\"behavior\"] = pageActionEvent.behavior;\r\n        event.baseData[\"clickCoordinates\"] = pageActionEvent.clickCoordinates;\r\n        event.baseData[\"content\"] = pageActionEvent.content;\r\n        event.baseData[\"contentVer\"] = pageActionEvent.contentVer;\r\n        event.baseData[\"targetUri\"] = pageActionEvent.targetUri;\r\n        objForEachKey(properties, function (property, value) {\r\n            if (!event.data[property]) {\r\n                event.data[property] = value;\r\n            }\r\n        });\r\n        this._webAnalyticsPlugin.core.track(event);\r\n    };\r\n    /**\r\n    * API to create and send a populated PageAction event\r\n    * @param element - DOM element\r\n    * @param overrideValues - PageAction overrides\r\n    * @param customProperties - Custom properties(Part C)\r\n    * @param isRightClick - Flag for mouse right clicks\r\n    */\r\n    PageAction.prototype.capturePageAction = function (element, overrideValues, customProperties, isRightClick) {\r\n        overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;\r\n        var pageActionEvent = {};\r\n        var pageActionProperties = isValueAssigned(customProperties) ? customProperties : {};\r\n        this._setCommonProperties(pageActionEvent, pageActionProperties, overrideValues);\r\n        pageActionEvent.isManual = !overrideValues.isAuto;\r\n        pageActionEvent.behavior = this._getBehavior(overrideValues);\r\n        // element in scope is needed for below properties.  We cannot pass element into the plugin call chain.\r\n        // process them here.\r\n        var elementContent = {};\r\n        element = _returnDomObjectIfjQuery(element);\r\n        if (isRightClick) {\r\n            // Default behavior for righ click\r\n            pageActionEvent.behavior = 9 /*CONTEXTMENU*/;\r\n        }\r\n        else {\r\n            var config = this._config || {};\r\n            if (element && config.syncPageActionNavClick) {\r\n                if (overrideValues.actionType === ActionType.CLICKLEFT || overrideValues.actionType === ActionType.KEYBOARDENTER) {\r\n                    if (element.tagName.toLowerCase() === \"a\") {\r\n                        var href = (element.getAttribute(\"href\") || \"\").toLowerCase();\r\n                        // Simple check for a URI that would typically cause a navigation\r\n                        if (href && (strStartsWith(href, \"https:\") || strStartsWith(href, \"http:\") || strStartsWith(href, \".\") || strStartsWith(href, \"/\"))) {\r\n                            // Special case that looks like this page action is going to cause a page navigation which will result\r\n                            // in a race condition with the sending of the batched event and XHR cancellation\r\n                            pageActionEvent.sync = 3 /* EventSendType.SyncFetch */; // Attempt to send the event immediately without blocking the JS execution\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        // Fill PartB\r\n        if (element) {\r\n            pageActionEvent.targetUri = _getClickTarget(element);\r\n            elementContent = this._contentHandler.getElementContent(element, EventType.PAGE_ACTION); // collect data-bi tags\r\n            elementContent = extend(elementContent, this._getCustomTags(element)); // collect ms.* tags\r\n            // if the element has a data-bi-bhvr attrib defined, use it.\r\n            if (elementContent && elementContent.bhvr && !isValueAssigned(overrideValues.behavior)) {\r\n                var currentBehavior = _extractFieldFromObject(elementContent, \"bhvr\");\r\n                pageActionEvent.behavior = this._getValidBehavior(currentBehavior);\r\n            }\r\n        }\r\n        if (isValueAssigned(overrideValues.actionType)) {\r\n            pageActionEvent.actionType = overrideValues.actionType;\r\n        }\r\n        if (isValueAssigned(overrideValues.clickCoordinateX) && isValueAssigned(overrideValues.clickCoordinateY)) {\r\n            pageActionEvent.clickCoordinates = overrideValues.clickCoordinateX + \"X\" + overrideValues.clickCoordinateY;\r\n        }\r\n        if (isValueAssigned(overrideValues.targetUri)) {\r\n            pageActionEvent.targetUri = overrideValues.targetUri;\r\n        }\r\n        pageActionEvent.contentVer = CONTENT_VERSION;\r\n        var currentContent = overrideValues.content || elementContent;\r\n        // Array cannot be merged with kvp objects\r\n        if (!isArray(currentContent)) {\r\n            var pageActionContentTags = this._config.callback.pageActionContentTags;\r\n            currentContent = extend(currentContent, typeof pageActionContentTags === \"function\" ? pageActionContentTags(element) : {}, overrideValues && overrideValues.contentTags ? overrideValues.contentTags : {});\r\n        }\r\n        pageActionEvent.content = this._getContentFormatted(currentContent);\r\n        // set PartC values\r\n        pageActionProperties.timeToAction = this._getTimeToClick();\r\n        pageActionProperties.refUri = isValueAssigned(overrideValues.refUri) ? overrideValues.refUri : this._config.coreData.referrerUri;\r\n        var cookieMgr = this._webAnalyticsPlugin.core && safeGetCookieMgr(this._webAnalyticsPlugin.core);\r\n        var cookiesValue = _getCookies(this._config, cookieMgr, this._traceLogger);\r\n        if (cookiesValue) {\r\n            pageActionProperties.cookies = cookiesValue;\r\n        }\r\n        this.trackPageAction(pageActionEvent, pageActionProperties);\r\n    };\r\n    PageAction.prototype._getCustomTags = function (obj) {\r\n        /// <summary>Collect data from attributes that have a ms. prefix.\r\n        /// This functionality is there to provide compatibility with WEDCS.\r\n        ///   TODO: When all adopters have moved to the new tagging taxanomy we can remove this functionality.\r\n        /// </summary>\r\n        /// <param type='Object'>The element from which attributes need to be collected.</param>\r\n        /// <returns type='Object'>Tags collection/property bag</returns>\r\n        var customParameters = {};\r\n        while (obj) {\r\n            if (!_isPii(obj)) {\r\n                for (var attr in obj.attributes) {\r\n                    if (attr) {\r\n                        if (obj.attributes[attr]) {\r\n                            var nn = obj.attributes[attr].name;\r\n                            if (nn) {\r\n                                if (nn.toLowerCase().indexOf(\"ms.\") === 0) {\r\n                                    customParameters[nn] = obj.attributes[attr].value;\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            obj = (obj.parentElement || obj.parentNode);\r\n        }\r\n        return customParameters;\r\n    };\r\n    PageAction.prototype._getTimeToClick = function () {\r\n        // capture performance data into PageTags\r\n        var perf = getPerformance();\r\n        if (perf && perf.timing) {\r\n            var isNavigationStart = perf.timing.navigationStart;\r\n            if (isNavigationStart && isNavigationStart !== 0) {\r\n                return new Date().getTime() - isNavigationStart;\r\n            }\r\n        }\r\n        return -1;\r\n    };\r\n    return PageAction;\r\n}(WebEvent));\r\nexport { PageAction };\r\n//# sourceMappingURL=PageAction.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* PageUnload.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { getPerformance, isDocumentObjectAvailable, isUndefined, isValueAssigned, isWindowObjectAvailable, objForEachKey } from \"@microsoft/1ds-core-js\";\r\nimport { _getViewportDimensions } from \"../common/Utils\";\r\nimport { WebEvent } from \"./WebEvent\";\r\nvar PageUnload = /** @class */ (function (_super) {\r\n    __extends(PageUnload, _super);\r\n    /**\r\n  * @param _webAnalyticsPlugin - Web Analytics plugin instance\r\n  * @param _config - WebAnalytics configuration object\r\n  * @param _id - Id\r\n  * @param _traceLogger - Trace logger to log to console.\r\n  * @param timestamp - Timespan instance.\r\n  * @param maxScroll - max scroll value\r\n  */\r\n    function PageUnload(_webAnalyticsPlugin, _config, _id, _traceLogger, timestamp, maxScroll) {\r\n        var _this = _super.call(this, _webAnalyticsPlugin, _config, null, _id, {}, {}, _traceLogger) || this;\r\n        _this._webAnalyticsPlugin = _webAnalyticsPlugin;\r\n        _this._config = _config;\r\n        _this._id = _id;\r\n        _this._traceLogger = _traceLogger;\r\n        _this._timestamp = timestamp;\r\n        _this._maxScroll = maxScroll;\r\n        return _this;\r\n    }\r\n    /**\r\n    * API to send PageUnload event\r\n    * @param pageUnloadEvent - PageUnload event\r\n    * @param properties - PageUnload properties(Part C)\r\n    */\r\n    PageUnload.prototype.trackPageUnload = function (pageUnloadEvent, properties) {\r\n        // Get part A properties\r\n        var ext = {};\r\n        ext[\"web\"] = {};\r\n        ext[\"web\"][\"isManual\"] = pageUnloadEvent.isManual;\r\n        var event = {\r\n            name: \"Ms.Web.PageUnload\",\r\n            baseType: \"PageUnloadData\",\r\n            ext: ext,\r\n            data: {},\r\n            baseData: {},\r\n            latency: 3 /* EventLatencyValue.RealTime */\r\n        };\r\n        var config = this._config || {};\r\n        if (isUndefined(config.syncUnloadAction) || config.syncUnloadAction) {\r\n            // Attempt to send the event immediately without blocking the JS execution\r\n            event.sync = 3 /* EventSendType.SyncFetch */;\r\n        }\r\n        event.baseData[\"name\"] = pageUnloadEvent.name;\r\n        event.baseData[\"uri\"] = pageUnloadEvent.uri;\r\n        event.baseData[\"id\"] = pageUnloadEvent.id;\r\n        event.baseData[\"properties\"] = pageUnloadEvent.properties;\r\n        event.baseData[\"ver\"] = pageUnloadEvent.ver;\r\n        event.baseData[\"market\"] = pageUnloadEvent.market;\r\n        event.baseData[\"pageType\"] = pageUnloadEvent.pageType;\r\n        event.baseData[\"isLoggedIn\"] = pageUnloadEvent.isLoggedIn;\r\n        objForEachKey(properties, function (property, value) {\r\n            if (!event.data[property]) {\r\n                event.data[property] = value;\r\n            }\r\n        });\r\n        this._webAnalyticsPlugin.core.track(event);\r\n    };\r\n    /**\r\n   * API to create and send a populated PageUnload event\r\n   * @param overrideValues - PageUnload overrides\r\n   * @param customProperties - Custom properties(Part C)\r\n   */\r\n    PageUnload.prototype.capturePageUnload = function (overrideValues, customProperties) {\r\n        overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;\r\n        var event = {};\r\n        var properties = isValueAssigned(customProperties) ? customProperties : {};\r\n        var scrollHeight = isDocumentObjectAvailable ? document.body.scrollHeight : 0;\r\n        this._setBasicProperties(event, overrideValues);\r\n        event.isManual = !overrideValues.isAuto;\r\n        // Set PartC values\r\n        properties.dwellTime = this._timestamp._recordTimeSpan(\"dwellTime\", true);\r\n        properties.scrollDepth = overrideValues.scrollDepth || this._maxScroll.v.toString() + \"/\" + scrollHeight.toString();\r\n        properties.vpHeight = _getViewportDimensions().h;\r\n        properties.vScrollOffset = overrideValues.vScrollOffset || this._maxScroll.v;\r\n        if (isWindowObjectAvailable) {\r\n            var perf = getPerformance();\r\n            var windowPerformanceTiming = perf ? perf.timing : null;\r\n            if (windowPerformanceTiming && windowPerformanceTiming.loadEventStart && windowPerformanceTiming.navigationStart) {\r\n                if (windowPerformanceTiming.loadEventStart > 0) {\r\n                    properties.pageLoadTime = windowPerformanceTiming.loadEventStart - windowPerformanceTiming.navigationStart;\r\n                }\r\n            }\r\n        }\r\n        this.trackPageUnload(event, properties);\r\n    };\r\n    return PageUnload;\r\n}(WebEvent));\r\nexport { PageUnload };\r\n//# sourceMappingURL=PageUnload.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* pageView.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { isValueAssigned, safeGetCookieMgr } from \"@microsoft/1ds-core-js\";\r\nimport { WebEvent } from \"./WebEvent\";\r\nimport { _getCookies } from \"../DataCollector\";\r\nvar PageView = /** @class */ (function (_super) {\r\n    __extends(PageView, _super);\r\n    function PageView() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n      * API to populate and send a PageView event\r\n      * @param overrideValues - PageView overrides\r\n      * @param customProperties - Custom properties(Part C)\r\n      */\r\n    PageView.prototype.capturePageView = function (overrideValues, customProperties) {\r\n        overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;\r\n        var pageViewEvent = {};\r\n        var properties = isValueAssigned(customProperties) ? customProperties : {};\r\n        this._setCommonProperties(pageViewEvent, properties, overrideValues);\r\n        // Add pageView fields\r\n        pageViewEvent.refUri = isValueAssigned(overrideValues.referrerUri) ? overrideValues.referrerUri : this._config.coreData.referrerUri;\r\n        pageViewEvent.isManual = !overrideValues.isAuto;\r\n        var cookieMgr = this._webAnalyticsPlugin.core && safeGetCookieMgr(this._webAnalyticsPlugin.core);\r\n        var cookiesValue = _getCookies(this._config, cookieMgr, this._traceLogger);\r\n        if (cookiesValue) {\r\n            properties.cookies = cookiesValue;\r\n        }\r\n        properties.behavior = this._getBehavior(overrideValues);\r\n        this._webAnalyticsPlugin.trackPageView(pageViewEvent, properties);\r\n    };\r\n    return PageView;\r\n}(WebEvent));\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n/**\r\n* PageViewPerformance.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport { isValueAssigned } from \"@microsoft/1ds-core-js\";\r\nimport { WebEvent } from \"./WebEvent\";\r\nvar PageViewPerformance = /** @class */ (function (_super) {\r\n    __extends(PageViewPerformance, _super);\r\n    function PageViewPerformance() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n      * API to populate and send a PageViewPerformance event\r\n      * @param overrideValues - PageView overrides\r\n      * @param customProperties - Custom properties(Part C)\r\n      */\r\n    PageViewPerformance.prototype.capturePageViewPerformance = function (overrideValues, customProperties) {\r\n        overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;\r\n        var event = {};\r\n        var properties = isValueAssigned(customProperties) ? customProperties : {};\r\n        this._setBasicProperties(event, overrideValues);\r\n        this._setPageTags(event, overrideValues);\r\n        event.isManual = !overrideValues.isAuto;\r\n        properties.behavior = this._getBehavior(overrideValues);\r\n        properties.vpHeight = overrideValues.vpHeight;\r\n        properties.vpWidth = overrideValues.vpWidth;\r\n        properties.framework = overrideValues.framework;\r\n        properties.systemTiming = overrideValues.systemTiming;\r\n        properties.customTiming = overrideValues.customTiming;\r\n        this._webAnalyticsPlugin._populatePageViewPerformance(event);\r\n        this._webAnalyticsPlugin.trackPageViewPerformance(event, properties);\r\n    };\r\n    return PageViewPerformance;\r\n}(WebEvent));\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* DomContentHandler.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport * as DataCollector from \"../DataCollector\";\r\nimport { _throwInternal, extend, getDocument, isDocumentObjectAvailable } from \"@microsoft/1ds-core-js\";\r\nimport { EventType } from \"../Enums\";\r\nimport { MAX_CONTENTNAME_LENGTH } from \"../common/Constants\";\r\nimport { _bracketIt, _findClosestByAttribute, _getViewportBoundingRect, _getViewportDimensions, _isElementDnt, _isElementTrulyVisible, _removeInvalidElements, _returnDomObjectIfjQuery, _walkUpDomChainWithElementValidation } from \"../common/Utils\";\r\nexport var _contentBlobFieldNameObjects = {\r\n    longNames: {\r\n        isShortNames: false,\r\n        id: \"data-bi-id\",\r\n        areaName: \"data-bi-area\",\r\n        slotNumber: \"data-bi-slot\",\r\n        contentName: \"data-bi-name\",\r\n        contentSource: \"data-bi-source\",\r\n        templateName: \"data-bi-view\",\r\n        productId: \"data-bi-product\",\r\n        contentType: \"data-bi-type\",\r\n        parentId: \"data-bi-parentid\",\r\n        parentName: \"data-bi-parentname\"\r\n    },\r\n    shortNames: {\r\n        isShortNames: true,\r\n        id: \"data-bi-id\",\r\n        areaName: \"data-bi-an\",\r\n        slotNumber: \"data-bi-sn\",\r\n        contentName: \"data-bi-cn\",\r\n        contentSource: \"data-bi-cs\",\r\n        templateName: \"data-bi-tn\",\r\n        productId: \"data-bi-pid\",\r\n        contentType: \"data-bi-ct\",\r\n        parentId: \"data-bi-pi\",\r\n        parentName: \"data-bi-pn\"\r\n    }\r\n};\r\nexport var _keyName = {\r\n    longKeys: {\r\n        parentId: \"parentId\",\r\n        parentName: \"parentName\"\r\n    },\r\n    shortKeys: {\r\n        parentId: \"pI\",\r\n        parentName: \"pN\"\r\n    }\r\n};\r\nvar DomContentHandler = /** @class */ (function () {\r\n    /**\r\n   * @param config - WebAnalytics configuration object\r\n   * @param traceLogger - Trace logger to log to console.\r\n   */\r\n    function DomContentHandler(_config, _traceLogger) {\r\n        this._config = _config;\r\n        this._traceLogger = _traceLogger;\r\n        this._contentBlobFieldNames = null;\r\n        this._contentBlobFieldNames = this._config.useShortNameForContentBlob === true ?\r\n            _contentBlobFieldNameObjects.shortNames : _contentBlobFieldNameObjects.longNames;\r\n    }\r\n    /**\r\n    * Collect metatags from DOM.\r\n    * Collect data from meta tags. Assign specific field values\r\n    * in the event object.Return an object that is a kvp of awa- and ms.tags.\r\n    * @returns {object} - Metatags collection/property bag\r\n    */\r\n    DomContentHandler.prototype.getMetadata = function () {\r\n        var msTags = {};\r\n        var awaTags = {};\r\n        if (isDocumentObjectAvailable) {\r\n            // Collect the awa-* tags.\r\n            awaTags = this._getMetaDataFromDOM(\"awa-\", true);\r\n            if (this._config.autoCapture && this._config.autoCapture.msTags) {\r\n                // Collect the legacy ms.* tags and append them to the metaTags.\r\n                msTags = this._getMetaDataFromDOM(\"ms.\", false);\r\n            }\r\n        }\r\n        return extend(true, awaTags, msTags);\r\n    };\r\n    DomContentHandler.prototype.getVisibleContent = function () {\r\n        /// <summary> takes an array of elements and only pushes the visible ones to arrayOfContents </summary>\r\n        /// <param type='object'> the list of elements </param>\r\n        /// <param type='object'> the array to push in </param>\r\n        var viewportDim = _getViewportDimensions();\r\n        var viewportBoundingRect = _getViewportBoundingRect(viewportDim);\r\n        // Select all elements that have data-bi-area/aN, data-bi-slot/sN or data-m (biAttributeName) defined in the viewPort.\r\n        var elements = null;\r\n        if (isDocumentObjectAvailable) {\r\n            elements = document.querySelectorAll(_bracketIt(this._contentBlobFieldNames.areaName) + \",\" +\r\n                _bracketIt(this._contentBlobFieldNames.slotNumber) + \",\" +\r\n                _bracketIt(this._config.biBlobAttributeTag));\r\n        }\r\n        var arrayOfContents = [];\r\n        if (elements) {\r\n            for (var i = 0; i < elements.length; i++) {\r\n                // DNT = Do Not Track\r\n                var element = elements[i];\r\n                if (!_isElementDnt(element)) {\r\n                    if (_isElementTrulyVisible(element, viewportBoundingRect)) {\r\n                        var elementContent = this.getElementContent(element, EventType.CONTENT_UPDATE);\r\n                        if (elementContent) {\r\n                            arrayOfContents.push(elementContent);\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        return arrayOfContents;\r\n    };\r\n    /**\r\n    * Collect data-bi attributes for the given element.\r\n    * All attributes with data-bi prefix are collected.  'data-bi' prefix is removed from the key name.\r\n    * @param element - The element from which attributes need to be collected.\r\n    * @returns String representation of the Json array of element attributes\r\n    */\r\n    DomContentHandler.prototype.getElementContent = function (element, eventType) {\r\n        if (!element) {\r\n            return {};\r\n        }\r\n        var elementContent = {};\r\n        var biBlobElement;\r\n        var biBlobValue;\r\n        var contentElement;\r\n        // element has no tags - look for the closest upper element with tags\r\n        if (!this._isTracked(element)) {\r\n            // capture config.biBlobAttributeTag blob from element or hierarchy\r\n            biBlobElement = _findClosestByAttribute(element, this._config.biBlobAttributeTag);\r\n            if (biBlobElement) {\r\n                biBlobValue = biBlobElement.getAttribute(this._config.biBlobAttributeTag);\r\n            }\r\n            if (biBlobValue) {\r\n                try {\r\n                    elementContent = JSON.parse(biBlobValue);\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(this._traceLogger, 1 /* eLoggingSeverity.CRITICAL */, 506 /* _eExtendedInternalMessageId.CannotParseBiBlobValue */, \"Can not parse \" + biBlobValue);\r\n                }\r\n            }\r\n            else {\r\n                // Get the element if it has any data-bi tag defined.  If not traverse up the DOM to find the closest parent with data-bi tag defined\r\n                contentElement = _walkUpDomChainWithElementValidation(element, this._isTrackedWithDataBi);\r\n                elementContent = extend(elementContent, this._populateElementContentwithDataBi(contentElement, element));\r\n            }\r\n        }\r\n        else if (this._isTrackedWithDataM(element)) {\r\n            biBlobElement = element;\r\n            biBlobValue = biBlobElement.getAttribute(this._config.biBlobAttributeTag);\r\n            try {\r\n                elementContent = JSON.parse(biBlobValue);\r\n            }\r\n            catch (e) {\r\n                _throwInternal(this._traceLogger, 1 /* eLoggingSeverity.CRITICAL */, 506 /* _eExtendedInternalMessageId.CannotParseBiBlobValue */, \"Can not parse \" + biBlobValue);\r\n            }\r\n        }\r\n        else if (this._isTrackedWithDataBi(element)) {\r\n            // Get the element if it has any data-bi tag defined.  If not traverse up the DOM to find the closest parent with data-bi tag defined\r\n            contentElement = element;\r\n            elementContent = extend(elementContent, this._populateElementContentwithDataBi(contentElement, element));\r\n        }\r\n        _removeInvalidElements(elementContent);\r\n        if (this._config.autoCapture.lineage && eventType === EventType.PAGE_ACTION) {\r\n            elementContent = extend(elementContent, this.getLineageDetails(element));\r\n        }\r\n        if (this._config.autoPopulateParentIdAndParentName) {\r\n            elementContent = extend(elementContent, this._getParentDetails(biBlobElement ? biBlobElement : contentElement, elementContent));\r\n        }\r\n        return elementContent;\r\n    };\r\n    /**\r\n    *  Computes the lineage of a given element.\r\n    * @param element - An html element\r\n    * @returns An object containing the different forms of lineage/hierarchy on DOM tree starting with the current element.\r\n    * example output: {'lineage':'GET OFFICE 365>coreui-hero-6zx3vxo-item-2>R1Hero 1>primaryR1 1>primaryArea 1',\r\n    * 'lineageById':'n10m1r1a2>nn9m1r1a2>m1r1a2>r1a2>a2Body','containerName':'R1Hero 1'}\r\n    */\r\n    DomContentHandler.prototype.getLineageDetails = function (element) {\r\n        var name = [];\r\n        var identifier = [];\r\n        var lineageDelimiter = \">\";\r\n        var elementBiDataAttribute = this._config.biBlobAttributeTag; // data-m\r\n        var elementModuleIdAttribute = \"data-module-id\";\r\n        var containerName;\r\n        var nameValue;\r\n        var idValue;\r\n        while (element) {\r\n            var dataAttr = element.getAttribute(elementBiDataAttribute) || element[elementBiDataAttribute];\r\n            var moduleIdAttribute = element.getAttribute(elementModuleIdAttribute) || element[elementModuleIdAttribute];\r\n            if (dataAttr) {\r\n                try {\r\n                    var telemetryObject = JSON.parse(dataAttr);\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(this._traceLogger, 1 /* eLoggingSeverity.CRITICAL */, 507 /* _eExtendedInternalMessageId.CannotParseDataAttribute */, \"Can not parse \" + dataAttr);\r\n                }\r\n                if (telemetryObject) {\r\n                    nameValue = telemetryObject.cN || telemetryObject.cT;\r\n                    idValue = telemetryObject.id || undefined;\r\n                    if (nameValue || idValue) {\r\n                        name.push(nameValue);\r\n                        if (moduleIdAttribute) {\r\n                            // reporting treats cN of modules as containerName\r\n                            containerName = nameValue;\r\n                        }\r\n                        identifier.push(idValue);\r\n                    }\r\n                }\r\n            }\r\n            else {\r\n                nameValue = element.getAttribute(this._contentBlobFieldNames.contentName) || element.getAttribute(this._contentBlobFieldNames.contentType);\r\n                idValue = element.getAttribute(this._contentBlobFieldNames.id) || undefined;\r\n                if (nameValue || idValue) {\r\n                    name.push(nameValue);\r\n                    if (moduleIdAttribute) {\r\n                        containerName = nameValue;\r\n                    }\r\n                    identifier.push(idValue);\r\n                }\r\n            }\r\n            element = element.parentElement;\r\n        }\r\n        var lineageDetails = {\r\n            lineage: name.join(lineageDelimiter),\r\n            lineageById: identifier.join(lineageDelimiter),\r\n            lineageContainerName: containerName\r\n        };\r\n        return lineageDetails;\r\n    };\r\n    DomContentHandler.prototype._populateElementContentwithDataBi = function (contentElement, element) {\r\n        var elementContent = {};\r\n        if (!contentElement) {\r\n            // None of the element and its parent has any tags, collect standard HTML attribute for contentName when useDefaultContentName flag is true\r\n            if (this._config.useDefaultContentName) {\r\n                contentElement = element;\r\n            }\r\n            else {\r\n                return elementContent;\r\n            }\r\n        }\r\n        // Get the closest element with attribute data-bi-area.\r\n        var areaElement = _findClosestByAttribute(contentElement, this._contentBlobFieldNames.areaName);\r\n        var areaContent = extend({}, this._getAreaContent(areaElement));\r\n        var customizedContentName = this._config.callback.contentName ? this._config.callback.contentName(contentElement, this._config.useDefaultContentName) : \"\";\r\n        //Default content name must be for original clicked element and not contentElement to align with JSLL implementation\r\n        var defaultContentName = this._getDefaultContentName(element, this._config.useDefaultContentName);\r\n        elementContent = {\r\n            id: contentElement.getAttribute(this._contentBlobFieldNames.id) || contentElement.id || \"\",\r\n            aN: areaContent.areaName,\r\n            sN: contentElement.getAttribute(this._contentBlobFieldNames.slotNumber),\r\n            cN: customizedContentName || contentElement.getAttribute(this._contentBlobFieldNames.contentName) || defaultContentName || contentElement.getAttribute(\"alt\") || \"\",\r\n            cS: contentElement.getAttribute(this._contentBlobFieldNames.contentSource) || areaContent.contentSource,\r\n            tN: areaContent.templateName,\r\n            pid: contentElement.getAttribute(this._contentBlobFieldNames.productId),\r\n            cT: contentElement.getAttribute(this._contentBlobFieldNames.contentType) || areaContent.type,\r\n            pI: contentElement.getAttribute(this._contentBlobFieldNames.parentId),\r\n            pN: contentElement.getAttribute(this._contentBlobFieldNames.parentName)\r\n        };\r\n        // Validate to ensure the minimum required field 'contentName/cN' is present.\r\n        // The content schema defines id, aN and sN as required fields.  However,\r\n        /// requiring these fields would result in majority of adopter's content from being collected.\r\n        // Just throw a warning and continue collection.\r\n        if (!elementContent.id || !elementContent.aN || !elementContent.sN || !elementContent.cN) {\r\n            _throwInternal(this._traceLogger, 2 /* eLoggingSeverity.WARNING */, 515 /* _eExtendedInternalMessageId.InvalidContentBlob */, \"Invalid content blob.  Missing required attributes (id, aN/area, sN/slot), cN/contentName. \" +\r\n                \" Content information will still be collected!\");\r\n        }\r\n        // use legacy fullNames for the content blob if configured so.\r\n        if (!this._contentBlobFieldNames.isShortNames) {\r\n            elementContent = {\r\n                contentId: elementContent.id,\r\n                areaName: elementContent.aN,\r\n                slotNumber: elementContent.sN,\r\n                contentName: elementContent.cN,\r\n                contentSource: elementContent.cS,\r\n                templateName: elementContent.tN,\r\n                productId: elementContent.pid,\r\n                contentType: elementContent.cT,\r\n                parentId: elementContent.pI,\r\n                parentName: elementContent.pN\r\n            };\r\n        }\r\n        // Collect all other data-bi attributes and name them w/o the data-bi prefix.\r\n        for (var i = 0, attrib; i < contentElement.attributes.length; i++) {\r\n            attrib = contentElement.attributes[i];\r\n            if (attrib.name === this._contentBlobFieldNames.id ||\r\n                attrib.name === this._contentBlobFieldNames.areaName ||\r\n                attrib.name === this._contentBlobFieldNames.slotNumber ||\r\n                attrib.name === this._contentBlobFieldNames.contentName ||\r\n                attrib.name === this._contentBlobFieldNames.contentSource ||\r\n                attrib.name === this._contentBlobFieldNames.templateName ||\r\n                attrib.name === this._contentBlobFieldNames.productId ||\r\n                attrib.name === this._contentBlobFieldNames.contentType ||\r\n                attrib.name === this._contentBlobFieldNames.parentId ||\r\n                attrib.name === this._contentBlobFieldNames.parentName ||\r\n                attrib.name.indexOf(\"data-bi-\") === -1) {\r\n                continue;\r\n            }\r\n            var attribName = attrib.name.replace(\"data-bi-\", \"\");\r\n            elementContent[attribName] = attrib.value;\r\n        }\r\n        return elementContent;\r\n    };\r\n    /**\r\n    * Retrieve a specified metadata tag value from the DOM.\r\n    * @param prefix - Prefix to search the metatags with.\r\n    * @param removePrefix - Specifies if the prefix must be excluded from key names in the returned collection.\r\n    * @returns Metadata collection/property bag\r\n    */\r\n    DomContentHandler.prototype._getMetaDataFromDOM = function (prefix, removePrefix) {\r\n        var metaElements;\r\n        var metaData = {};\r\n        if (isDocumentObjectAvailable) {\r\n            metaElements = document.querySelectorAll(\"meta\");\r\n            for (var i = 0; i < metaElements.length; i++) {\r\n                var meta = metaElements[i];\r\n                if (meta.name) {\r\n                    var mt = meta.name.toLowerCase();\r\n                    if (mt.indexOf(prefix) === 0) {\r\n                        var name = removePrefix ? meta.name.replace(prefix, \"\") : meta.name;\r\n                        metaData[name] = meta.content;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        return metaData;\r\n    };\r\n    /**\r\n    * extracts area content from element\r\n    * @param areaElement An html element\r\n    * @returns A JSON object representing the content.\r\n    */\r\n    DomContentHandler.prototype._getAreaContent = function (areaElement) {\r\n        areaElement = _returnDomObjectIfjQuery(areaElement);\r\n        if (areaElement) {\r\n            return {\r\n                areaName: areaElement.getAttribute(this._contentBlobFieldNames.areaName),\r\n                templateName: areaElement.getAttribute(this._contentBlobFieldNames.templateName),\r\n                contentSource: areaElement.getAttribute(this._contentBlobFieldNames.contentSource),\r\n                product: areaElement.getAttribute(this._contentBlobFieldNames.productId),\r\n                type: areaElement.getAttribute(this._contentBlobFieldNames.contentType)\r\n            };\r\n        }\r\n    };\r\n    /**\r\n    * Gets the default content name.\r\n    * @param element - An html element\r\n    * @param useDefaultContentName -Flag indicating if an element is market PII.\r\n    * @returns Content name\r\n    */\r\n    /*ignore jslint start*/\r\n    DomContentHandler.prototype._getDefaultContentName = function (element, useDefaultContentName) {\r\n        if (useDefaultContentName === false || DataCollector._isPii(element) || !element.tagName) {\r\n            return \"\";\r\n        }\r\n        var doc = getDocument() || {};\r\n        var contentName;\r\n        switch (element.tagName) {\r\n            case \"A\":\r\n                contentName = doc.all ? element.innerText || element.innerHTML : element.text || element.innerHTML;\r\n                break;\r\n            case \"IMG\":\r\n            case \"AREA\":\r\n                contentName = element.alt;\r\n                break;\r\n            default:\r\n                contentName = element.value || element.name || element.alt || element.innerText || element.id;\r\n        }\r\n        return contentName.substring(0, MAX_CONTENTNAME_LENGTH);\r\n    };\r\n    /*ignore jslint end*/\r\n    /**\r\n    * Computes the parentId and parentName of a given element.\r\n    * @param element - An html element\r\n    * @returns An object containing the closest parentId and parentName, can be empty if nothing was found\r\n    */\r\n    DomContentHandler.prototype._getParentDetails = function (element, elementContent) {\r\n        var parentIdKey = this._contentBlobFieldNames.isShortNames ? _keyName.shortKeys.parentId : _keyName.longKeys.parentId;\r\n        var parentNameKey = this._contentBlobFieldNames.isShortNames ? _keyName.shortKeys.parentName : _keyName.longKeys.parentName;\r\n        var parentId = elementContent[parentIdKey];\r\n        var parentName = elementContent[parentNameKey];\r\n        var parentInfo = {};\r\n        if (parentId || parentName || !element) {\r\n            return parentInfo;\r\n        }\r\n        return this._populateParentInfo(element, parentIdKey, parentNameKey);\r\n    };\r\n    /**\r\n    * Check if the user wants to track the element, which means if the element has any tags\r\n    * @param element - An html element\r\n    * @returns true if any data-bi- tag or data-m tag exist, otherwise return false\r\n    */\r\n    DomContentHandler.prototype._isTrackedWithDataM = function (element) {\r\n        var attrs = element.attributes;\r\n        for (var i = 0; i < attrs.length; i++) {\r\n            if (attrs[i].name === \"data-m\") {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    };\r\n    /**\r\n    * Check if the user wants to track the element, which means if the element has any tags\r\n    * @param element - An html element\r\n    * @returns true if any data-bi- tag or data-m tag exist, otherwise return false\r\n    */\r\n    DomContentHandler.prototype._isTrackedWithDataBi = function (element) {\r\n        var attrs = element.attributes;\r\n        for (var i = 0; i < attrs.length; i++) {\r\n            if (attrs[i].name.indexOf(\"data-bi-\") >= 0) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    };\r\n    /**\r\n    * Check if the user wants to track the element, which means if the element has any tags\r\n    * @param element - An html element\r\n    * @returns true if any data-bi- tag or data-m tag exist, otherwise return false\r\n    */\r\n    DomContentHandler.prototype._isTracked = function (element) {\r\n        var attrs = element.attributes;\r\n        for (var i = 0; i < attrs.length; i++) {\r\n            if (attrs[i].name === \"data-m\" || attrs[i].name.indexOf(\"data-bi-\") >= 0) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    };\r\n    /**\r\n    * Check if parent info already set up, if so take and put into content, if not walk up the DOM to find correct info\r\n    * @param element - An html element that the user wants to track\r\n    * @returns n object containing the parent info, can be empty if nothing was found\r\n    */\r\n    DomContentHandler.prototype._populateParentInfo = function (element, parentIdKey, parentNameKey) {\r\n        var parentInfo = {};\r\n        var elementBiDataAttribute = this._config.biBlobAttributeTag; // data-m\r\n        var parentId;\r\n        var parentName;\r\n        // if the user does not set up parent info, walk to the DOM, find the closest parent element (with tags) and populate the info\r\n        var closestParentElement = _walkUpDomChainWithElementValidation(element.parentElement, this._isTracked);\r\n        if (closestParentElement) {\r\n            var dataAttr = closestParentElement.getAttribute(elementBiDataAttribute) || element[elementBiDataAttribute];\r\n            if (dataAttr) {\r\n                try {\r\n                    var telemetryObject = JSON.parse(dataAttr);\r\n                }\r\n                catch (e) {\r\n                    _throwInternal(this._traceLogger, 1 /* eLoggingSeverity.CRITICAL */, 507 /* _eExtendedInternalMessageId.CannotParseDataAttribute */, \"Can not parse \" + dataAttr);\r\n                }\r\n                if (telemetryObject) {\r\n                    parentId = telemetryObject.id;\r\n                    parentName = telemetryObject.cN;\r\n                }\r\n            }\r\n            else {\r\n                parentId = closestParentElement.getAttribute(this._contentBlobFieldNames.id);\r\n                parentName = closestParentElement.getAttribute(this._contentBlobFieldNames.contentName);\r\n            }\r\n            if (parentId) {\r\n                parentInfo[parentIdKey] = parentId;\r\n            }\r\n            if (parentName) {\r\n                parentInfo[parentNameKey] = parentName;\r\n            }\r\n        }\r\n        return parentInfo;\r\n    };\r\n    return DomContentHandler;\r\n}());\r\nexport { DomContentHandler };\r\n//# sourceMappingURL=DomContentHandler.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n/**\r\n* WebAnalyticsPlugin.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n* File containing the interfaces for WebAnalytics SDK.\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, createGuid, createProcessTelemetryContext, extend, isDocumentObjectAvailable, isValueAssigned, objForEachKey, onConfigChange, setProcessTelemetryTimings } from \"@microsoft/1ds-core-js\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { cfgDfFunc, cfgDfMerge } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze } from \"@nevware21/ts-utils\";\r\nimport { onDomLoaded } from \"./DataCollector\";\r\nimport { Id } from \"./Id\";\r\nimport { Timespan } from \"./Timespan\";\r\nimport { _isClickTelemetryAllowed } from \"./common/Utils\";\r\nimport { ContentUpdate } from \"./events/ContentUpdate\";\r\nimport { PageAction } from \"./events/PageAction\";\r\nimport { PageUnload } from \"./events/PageUnload\";\r\nimport { PageView } from \"./events/PageView\";\r\nimport { PageViewPerformance } from \"./events/PageViewPerformance\";\r\nimport { AutoCaptureHandler } from \"./handlers/AutoCaptureHandler\";\r\nimport { DomContentHandler } from \"./handlers/DomContentHandler\";\r\nvar defaultConfig = objDeepFreeze({\r\n    // General library settings\r\n    useDefaultContentName: true,\r\n    useShortNameForContentBlob: true,\r\n    debounceMs: cfgDfMerge({\r\n        scroll: 600,\r\n        resize: 3000\r\n    }),\r\n    biBlobAttributeTag: \"data-m\",\r\n    isLoggedIn: false,\r\n    shareAuthStatus: false,\r\n    cookiesToCollect: [\"MSFPC\", \"ANON\"],\r\n    autoCapture: cfgDfMerge({\r\n        pageView: true,\r\n        onLoad: true,\r\n        onUnload: true,\r\n        click: true,\r\n        scroll: false,\r\n        resize: false,\r\n        lineage: false,\r\n        jsError: true,\r\n        msTags: true\r\n    }),\r\n    callback: cfgDfMerge({\r\n        pageName: cfgDfFunc(),\r\n        pageActionPageTags: cfgDfFunc(),\r\n        pageViewPageTags: cfgDfFunc(),\r\n        contentUpdatePageTags: cfgDfFunc(),\r\n        pageActionContentTags: cfgDfFunc(),\r\n        signedinStatus: cfgDfFunc()\r\n    }),\r\n    // overrideValues to use instead of collecting automatically\r\n    coreData: cfgDfMerge({\r\n        referrerUri: isDocumentObjectAvailable ? document.referrer : \"\",\r\n        requestUri: \"\",\r\n        pageName: \"\",\r\n        pageType: \"\",\r\n        product: \"\",\r\n        market: \"\",\r\n        pageTags: {}\r\n    }),\r\n    autoPopulateParentIdAndParentName: false,\r\n    syncMuid: false,\r\n    muidDomain: \"microsoft.com\",\r\n    mscomCookies: false,\r\n    manageCv: false,\r\n    urlCollectHash: false,\r\n    urlCollectQuery: false,\r\n    manualPageUnload: false,\r\n    syncPageActionNavClick: true,\r\n    syncUnloadAction: true,\r\n});\r\nvar ApplicationInsights = /** @class */ (function (_super) {\r\n    __extends(ApplicationInsights, _super);\r\n    /**\r\n     * @constructor\r\n     * @param WebAnalytics module configuration object.\r\n     */\r\n    function ApplicationInsights() {\r\n        var _this = _super.call(this) || this;\r\n        _this.identifier = \"WebAnalyticsPlugin\";\r\n        _this.version = '4.2.1';\r\n        var _pageView;\r\n        var _pageAction;\r\n        var _contentUpdate;\r\n        var _pageUnload;\r\n        var _pageViewPerformance;\r\n        var _cvPlugin;\r\n        var _theConfig;\r\n        var _maxScroll;\r\n        var _isPageUnloadFired = false;\r\n        var _timespan;\r\n        var _contentHandler;\r\n        var _autoCaptureHandler;\r\n        var _autoCaptureConfig;\r\n        var _syncMuid;\r\n        var _muidDomain;\r\n        var _userSetContentHandler; // the value set from _self.setContentHandler, this will overwrite any dynamic config changes\r\n        dynamicProto(ApplicationInsights, _this, function (_self, _base) {\r\n            _initDefaults();\r\n            _self.updateCoreDataConfig = function (coreData) {\r\n                _theConfig.coreData = extend(true, _theConfig.coreData, coreData);\r\n            };\r\n            _self.refreshMetadata = function () {\r\n                var metaTags = _contentHandler.getMetadata();\r\n                _pageView.metaTags = metaTags;\r\n                _contentUpdate.metaTags = metaTags;\r\n                _pageAction.metaTags = metaTags;\r\n                _pageViewPerformance.metaTags = metaTags;\r\n            };\r\n            _self.initialize = function (coreConfig, core, extensions) {\r\n                _base.initialize(coreConfig, core, extensions);\r\n                _populateDefaults(coreConfig, extensions);\r\n            };\r\n            _self.processTelemetry = function (evt, itemCtx) {\r\n                setProcessTelemetryTimings(evt, _self.identifier);\r\n                var event = evt;\r\n                if (event.baseType === \"PageviewData\") {\r\n                    event.name = \"Ms.Web.PageView\";\r\n                    event.latency = 3 /* EventLatencyValue.RealTime */;\r\n                }\r\n                else if (event.baseType === \"ExceptionData\") {\r\n                    event.name = \"Ms.Web.ClientError\";\r\n                    event.latency = 1 /* EventLatencyValue.Normal */;\r\n                    // Remove extra AI properties\r\n                    delete (event.baseData[\"aiDataContract\"]);\r\n                }\r\n                else if (event.baseType === \"PageviewPerformanceData\") {\r\n                    event.name = \"Ms.Web.PageViewPerformance\";\r\n                    event.latency = 1 /* EventLatencyValue.Normal */;\r\n                    // Remove extra AI properties\r\n                    delete (event.baseData[\"isValid\"]);\r\n                    delete (event.baseData[\"durationMs\"]);\r\n                }\r\n                // Correlation\r\n                var cv = null;\r\n                if (event.baseType !== \"PageviewData\") {\r\n                    // If automatic cV management is desired and cV plugin is available\r\n                    if (_theConfig.manageCv) {\r\n                        cv = _cvPlugin.getCv();\r\n                        if (cv) {\r\n                            cv.increment();\r\n                        }\r\n                    }\r\n                }\r\n                else {\r\n                    if (_theConfig.manageCv) {\r\n                        cv = _cvPlugin.getCv();\r\n                        // Seed a new cV for each event\r\n                        if (!cv) {\r\n                            cv = _cvPlugin.getCv();\r\n                        }\r\n                        else {\r\n                            cv.seed();\r\n                        }\r\n                    }\r\n                }\r\n                _base.processTelemetry(event, itemCtx);\r\n            };\r\n            _self.trackEvent = function (event, customProperties) {\r\n                event.latency = event.latency || 1 /* EventLatencyValue.Normal */;\r\n                event.baseData = event.baseData || {};\r\n                event.data = event.data || {};\r\n                // Add extra Part C\r\n                if (isValueAssigned(customProperties)) {\r\n                    objForEachKey(customProperties, function (prop, value) {\r\n                        event.data[prop] = value;\r\n                    });\r\n                }\r\n                _self.core.track(event);\r\n            };\r\n            _self.trackPageView = function (pageViewEvent, properties) {\r\n                _resetPageUnloadProperties();\r\n                // Initialize IDs to be used as parent and trace IDs\r\n                _self.id.initializeIds();\r\n                pageViewEvent.id = _self.id.getLastPageViewId();\r\n                _base.sendPageViewInternal(pageViewEvent, properties, _getSystemProperties(pageViewEvent));\r\n            };\r\n            _self.capturePageView = function (overrideValues, customProperties) {\r\n                _pageView.capturePageView(overrideValues, customProperties);\r\n            };\r\n            _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n                _base.sendPageViewPerformanceInternal(pageViewPerformance, customProperties, _getSystemProperties(pageViewPerformance));\r\n            };\r\n            _self.capturePageViewPerformance = function (overrideValues, customProperties) {\r\n                _pageViewPerformance.capturePageViewPerformance(overrideValues, customProperties);\r\n            };\r\n            _self.trackException = function (exception, customProperties) {\r\n                exception.id = exception.id || createGuid();\r\n                _base.sendExceptionInternal(exception, customProperties, _getSystemProperties(exception));\r\n            };\r\n            _self.trackPageAction = function (pageActionEvent, pageActionProperties) {\r\n                _pageAction.trackPageAction(pageActionEvent, pageActionProperties);\r\n            };\r\n            _self.capturePageAction = function (element, overrideValues, customProperties, isRightClick) {\r\n                if (_isClickTelemetryAllowed(element, overrideValues)) {\r\n                    _pageAction.capturePageAction(element, overrideValues, customProperties, isRightClick);\r\n                }\r\n            };\r\n            _self.trackContentUpdate = function (contentUpdateEvent, properties) {\r\n                _contentUpdate.trackContentUpdate(contentUpdateEvent, properties);\r\n            };\r\n            _self.captureContentUpdate = function (overrideValues, customProperties) {\r\n                _contentUpdate.captureContentUpdate(overrideValues, customProperties);\r\n            };\r\n            _self.trackPageUnload = function (pageUnloadEvent, properties) {\r\n                if (!_isPageUnloadFired) {\r\n                    _isPageUnloadFired = true;\r\n                    _pageUnload.trackPageUnload(pageUnloadEvent, properties);\r\n                }\r\n            };\r\n            _self.capturePageUnload = function (overrideValues, customProperties) {\r\n                if (!_isPageUnloadFired) {\r\n                    _isPageUnloadFired = true;\r\n                    _pageUnload.capturePageUnload(overrideValues, customProperties);\r\n                }\r\n            };\r\n            _self._populatePageViewPerformance = function (pageViewPerformance) {\r\n                var perfManager = _self._pageViewPerformanceManager;\r\n                if (perfManager) {\r\n                    perfManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n                }\r\n            };\r\n            _self.setContentHandler = function (contentHandler) {\r\n                _contentHandler = _userSetContentHandler = contentHandler; // be sure to set handler before initialization\r\n            };\r\n            _self.setAutoCaptureHandler = function (autoCaptureHandler) {\r\n                if (_autoCaptureHandler !== autoCaptureHandler) {\r\n                    // Make sure it removes any event handlers\r\n                    _autoCaptureHandler && _autoCaptureHandler.teardown();\r\n                    _autoCaptureHandler = autoCaptureHandler;\r\n                    _setupAutoCapture(false);\r\n                }\r\n            };\r\n            _self._doTeardown = function (unloadCtx, unloadState) {\r\n                _autoCaptureHandler && _autoCaptureHandler.teardown(unloadCtx, unloadState);\r\n                _base._doTeardown(unloadCtx, unloadState);\r\n                _initDefaults();\r\n            };\r\n            _self[\"_getDbgPlgTargets\"] = function () {\r\n                return [_theConfig];\r\n            };\r\n            function _populateDefaults(coreConfig, extensions) {\r\n                var core = _self.core;\r\n                var logger = _self.diagLog();\r\n                _self.id = new Id(core);\r\n                _timespan = new Timespan();\r\n                // Default to DOM content handler\r\n                _autoCaptureHandler = _autoCaptureHandler ? _autoCaptureHandler : new AutoCaptureHandler(_self, logger);\r\n                _self._addHook(onConfigChange(coreConfig, function () {\r\n                    var ctx = createProcessTelemetryContext(null, coreConfig, core);\r\n                    var extConfig = ctx.getExtCfg(_self.identifier, defaultConfig);\r\n                    _theConfig = extConfig;\r\n                    _autoCaptureConfig = _theConfig.autoCapture;\r\n                    var existingGetWParamMethod = core.getWParam;\r\n                    core.getWParam = function () {\r\n                        var wparam = 0;\r\n                        if (_theConfig.mscomCookies) {\r\n                            wparam = wparam | 1;\r\n                        }\r\n                        return wparam | existingGetWParamMethod.call(core);\r\n                    };\r\n                    _theConfig.disableExceptionTracking = coreConfig.extensionConfig[_self.identifier].disableExceptionTracking = !_autoCaptureConfig.jsError;\r\n                    if (_theConfig.manageCv) {\r\n                        for (var i = 0; i < extensions.length; i++) {\r\n                            if ((extensions[i]).identifier === \"CorrelationVectorPlugin\") {\r\n                                _theConfig.manageCv = true;\r\n                                _cvPlugin = extensions[i];\r\n                                break;\r\n                            }\r\n                        }\r\n                        if (!_cvPlugin) {\r\n                            _throwInternal(_self.diagLog(), 2 /* eLoggingSeverity.WARNING */, 508 /* _eExtendedInternalMessageId.CVPluginNotAvailable */, \"Automatic Cv management is set to \\\"true\\\" in config.  However, cv plugin is not available. Disabling automatic Cv management\");\r\n                            _theConfig.manageCv = false;\r\n                        }\r\n                    }\r\n                    _contentHandler = _userSetContentHandler || new DomContentHandler(_theConfig, logger);\r\n                    var callback = _theConfig.callback;\r\n                    var metaTags = _contentHandler.getMetadata();\r\n                    var id = _self.id;\r\n                    _contentUpdate = new ContentUpdate(_self, _theConfig, _contentHandler, id, callback.contentUpdatePageTags, metaTags, logger);\r\n                    _pageView = new PageView(_self, _theConfig, _contentHandler, id, callback.pageViewPageTags, metaTags, logger);\r\n                    _pageAction = new PageAction(_self, _theConfig, _contentHandler, id, callback.pageActionPageTags, metaTags, logger);\r\n                    _contentUpdate = new ContentUpdate(_self, _theConfig, _contentHandler, id, callback.contentUpdatePageTags, metaTags, logger);\r\n                    _pageUnload = new PageUnload(_self, _theConfig, id, logger, _timespan, _maxScroll);\r\n                    _pageViewPerformance = new PageViewPerformance(_self, _theConfig, _contentHandler, id, callback.pageViewPageTags, metaTags, logger);\r\n                    _updateMuid();\r\n                    _syncMuid = !!_theConfig.syncMuid;\r\n                    _muidDomain = _theConfig.muidDomain;\r\n                }));\r\n                _setupAutoCapture(true);\r\n            }\r\n            function _updateMuid() {\r\n                var syncMuid = !!_theConfig.syncMuid;\r\n                var shouldUpdate = !_syncMuid || (_muidDomain !== _theConfig.muidDomain);\r\n                // Note: PageView is sent as soon as init is called (i.e. right after the Web Analytics script is loaded).\r\n                // No Muid Sync will happen as we wait to send PV as soon as possible while Muid Sync requires document ready to happen.\r\n                // This matches WEDCS in way of when they send PV without Muid Sync.\r\n                if (syncMuid && shouldUpdate) {\r\n                    onDomLoaded(function () {\r\n                        var muidDomain = _self.id.getMuidHost(_theConfig.muidDomain);\r\n                        _self.id.syncMuid(muidDomain);\r\n                    }, _self._evtNamespace);\r\n                }\r\n                // if syncMuid is set to false currently, do nothing\r\n            }\r\n            function _initDefaults() {\r\n                _pageView = null;\r\n                _pageAction = null;\r\n                _contentUpdate = null;\r\n                _pageUnload = null;\r\n                _pageViewPerformance = null;\r\n                _cvPlugin = null;\r\n                _theConfig = null;\r\n                _maxScroll = { h: 0, v: 0 };\r\n                _isPageUnloadFired = false;\r\n                _timespan = null;\r\n                _contentHandler = null;\r\n                _autoCaptureHandler = null;\r\n                _autoCaptureConfig = null;\r\n                _syncMuid = false;\r\n                _muidDomain = null;\r\n            }\r\n            function _setupAutoCapture(isInitialize) {\r\n                if (_autoCaptureHandler) {\r\n                    if (isInitialize) {\r\n                        // Initialize only events\r\n                        if (_autoCaptureConfig.pageView) {\r\n                            _autoCaptureHandler.pageView();\r\n                        }\r\n                        if (_autoCaptureConfig.onLoad) {\r\n                            _autoCaptureHandler.onLoad();\r\n                        }\r\n                    }\r\n                    // handle automatic event firing on user click\r\n                    if (_autoCaptureConfig.click) {\r\n                        _autoCaptureHandler.click();\r\n                    }\r\n                    // handle automatic event firing on user scroll\r\n                    if (_autoCaptureConfig.scroll) {\r\n                        _autoCaptureHandler.scroll(_theConfig.debounceMs);\r\n                    }\r\n                    // handle automatic event firing on user resize\r\n                    if (_autoCaptureConfig.resize) {\r\n                        _autoCaptureHandler.resize(_theConfig.debounceMs);\r\n                    }\r\n                    // measure maxScroll\r\n                    if (_autoCaptureConfig.onUnload || _theConfig.manualPageUnload) {\r\n                        _autoCaptureHandler.maxScroll(_maxScroll);\r\n                    }\r\n                    if (_autoCaptureConfig.onUnload) {\r\n                        _autoCaptureHandler.onUnload();\r\n                    }\r\n                }\r\n            }\r\n            function _getSystemProperties(event) {\r\n                var ext = {};\r\n                if (event.isManual !== undefined) {\r\n                    ext[\"web\"] = {};\r\n                    ext[\"web\"][\"isManual\"] = event.isManual !== undefined ? event.isManual : true;\r\n                    delete (event.isManual);\r\n                }\r\n                return ext;\r\n            }\r\n            /**\r\n             * @ignore\r\n             * Resets the values used for pageUnload.\r\n             */\r\n            function _resetPageUnloadProperties() {\r\n                _timespan._recordTimeSpan(\"dwellTime\", false);\r\n                _maxScroll.v = 0;\r\n                _isPageUnloadFired = false;\r\n            }\r\n        });\r\n        return _this;\r\n    }\r\n// Removed Stub for ApplicationInsights.prototype.updateCoreDataConfig.\r\n// Removed Stub for ApplicationInsights.prototype.refreshMetadata.\r\n// Removed Stub for ApplicationInsights.prototype.initialize.\r\n// Removed Stub for ApplicationInsights.prototype.processTelemetry.\r\n// Removed Stub for ApplicationInsights.prototype.trackEvent.\r\n// Removed Stub for ApplicationInsights.prototype.trackPageView.\r\n// Removed Stub for ApplicationInsights.prototype.capturePageView.\r\n// Removed Stub for ApplicationInsights.prototype.trackPageViewPerformance.\r\n// Removed Stub for ApplicationInsights.prototype.capturePageViewPerformance.\r\n// Removed Stub for ApplicationInsights.prototype.trackException.\r\n// Removed Stub for ApplicationInsights.prototype.trackPageAction.\r\n// Removed Stub for ApplicationInsights.prototype.capturePageAction.\r\n// Removed Stub for ApplicationInsights.prototype.trackContentUpdate.\r\n// Removed Stub for ApplicationInsights.prototype.captureContentUpdate.\r\n// Removed Stub for ApplicationInsights.prototype.trackPageUnload.\r\n// Removed Stub for ApplicationInsights.prototype.capturePageUnload.\r\n// Removed Stub for ApplicationInsights.prototype._populatePageViewPerformance.\r\n// Removed Stub for ApplicationInsights.prototype.setContentHandler.\r\n// Removed Stub for ApplicationInsights.prototype.setAutoCaptureHandler.\r\n    // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    // this will be removed when ES3 support is dropped.\n    ApplicationInsights.__ieDyn=1;\n\n    return ApplicationInsights;\r\n}(AnalyticsPlugin));\r\nexport { ApplicationInsights };\r\n//# sourceMappingURL=WebAnalyticsPlugin.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Enums.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nexport var ActionType = {\r\n    CLICKLEFT: \"CL\",\r\n    CLICKRIGHT: \"CR\",\r\n    CLICKMIDDLE: \"CM\",\r\n    SCROLL: \"S\",\r\n    ZOOM: \"Z\",\r\n    RESIZE: \"R\",\r\n    KEYBOARDENTER: \"KE\",\r\n    KEYBOARDSPACE: \"KS\",\r\n    OTHER: \"O\"\r\n};\r\nexport var EventType;\r\n(function (EventType) {\r\n    EventType[EventType[\"PAGE_ACTION\"] = 0] = \"PAGE_ACTION\";\r\n    EventType[EventType[\"CONTENT_UPDATE\"] = 1] = \"CONTENT_UPDATE\";\r\n})(EventType || (EventType = {}));\r\n//# sourceMappingURL=Enums.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Enums.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* Copyright (c) Microsoft and contributors. All rights reserved.\r\n*/\r\n// Behavior enum values\r\nexport var Behavior;\r\n(function (Behavior) {\r\n    Behavior[Behavior[\"UNDEFINED\"] = 0] = \"UNDEFINED\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Page Experience [1-19]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"NAVIGATIONBACK\"] = 1] = \"NAVIGATIONBACK\";\r\n    Behavior[Behavior[\"NAVIGATION\"] = 2] = \"NAVIGATION\";\r\n    Behavior[Behavior[\"NAVIGATIONFORWARD\"] = 3] = \"NAVIGATIONFORWARD\";\r\n    Behavior[Behavior[\"APPLY\"] = 4] = \"APPLY\";\r\n    Behavior[Behavior[\"REMOVE\"] = 5] = \"REMOVE\";\r\n    Behavior[Behavior[\"SORT\"] = 6] = \"SORT\";\r\n    Behavior[Behavior[\"EXPAND\"] = 7] = \"EXPAND\";\r\n    Behavior[Behavior[\"REDUCE\"] = 8] = \"REDUCE\";\r\n    Behavior[Behavior[\"CONTEXTMENU\"] = 9] = \"CONTEXTMENU\";\r\n    Behavior[Behavior[\"TAB\"] = 10] = \"TAB\";\r\n    Behavior[Behavior[\"COPY\"] = 11] = \"COPY\";\r\n    Behavior[Behavior[\"EXPERIMENTATION\"] = 12] = \"EXPERIMENTATION\";\r\n    Behavior[Behavior[\"PRINT\"] = 13] = \"PRINT\";\r\n    Behavior[Behavior[\"SHOW\"] = 14] = \"SHOW\";\r\n    Behavior[Behavior[\"HIDE\"] = 15] = \"HIDE\";\r\n    Behavior[Behavior[\"MAXIMIZE\"] = 16] = \"MAXIMIZE\";\r\n    Behavior[Behavior[\"MINIMIZE\"] = 17] = \"MINIMIZE\";\r\n    Behavior[Behavior[\"BACKBUTTON\"] = 18] = \"BACKBUTTON\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Scenario Process [20-39]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"STARTPROCESS\"] = 20] = \"STARTPROCESS\";\r\n    Behavior[Behavior[\"PROCESSCHECKPOINT\"] = 21] = \"PROCESSCHECKPOINT\";\r\n    Behavior[Behavior[\"COMPLETEPROCESS\"] = 22] = \"COMPLETEPROCESS\";\r\n    Behavior[Behavior[\"SCENARIOCANCEL\"] = 23] = \"SCENARIOCANCEL\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Download [40-59]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"DOWNLOADCOMMIT\"] = 40] = \"DOWNLOADCOMMIT\";\r\n    Behavior[Behavior[\"DOWNLOAD\"] = 41] = \"DOWNLOAD\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Search [60-79]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"SEARCHAUTOCOMPLETE\"] = 60] = \"SEARCHAUTOCOMPLETE\";\r\n    Behavior[Behavior[\"SEARCH\"] = 61] = \"SEARCH\";\r\n    Behavior[Behavior[\"SEARCHINITIATE\"] = 62] = \"SEARCHINITIATE\";\r\n    Behavior[Behavior[\"TEXTBOXINPUT\"] = 63] = \"TEXTBOXINPUT\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Commerce [80-99]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"PURCHASE\"] = 80] = \"PURCHASE\";\r\n    Behavior[Behavior[\"ADDTOCART\"] = 81] = \"ADDTOCART\";\r\n    Behavior[Behavior[\"VIEWCART\"] = 82] = \"VIEWCART\";\r\n    Behavior[Behavior[\"ADDWISHLIST\"] = 83] = \"ADDWISHLIST\";\r\n    Behavior[Behavior[\"FINDSTORE\"] = 84] = \"FINDSTORE\";\r\n    Behavior[Behavior[\"CHECKOUT\"] = 85] = \"CHECKOUT\";\r\n    Behavior[Behavior[\"REMOVEFROMCART\"] = 86] = \"REMOVEFROMCART\";\r\n    Behavior[Behavior[\"PURCHASECOMPLETE\"] = 87] = \"PURCHASECOMPLETE\";\r\n    Behavior[Behavior[\"VIEWCHECKOUTPAGE\"] = 88] = \"VIEWCHECKOUTPAGE\";\r\n    Behavior[Behavior[\"VIEWCARTPAGE\"] = 89] = \"VIEWCARTPAGE\";\r\n    Behavior[Behavior[\"VIEWPDP\"] = 90] = \"VIEWPDP\";\r\n    Behavior[Behavior[\"UPDATEITEMQUANTITY\"] = 91] = \"UPDATEITEMQUANTITY\";\r\n    Behavior[Behavior[\"INTENTTOBUY\"] = 92] = \"INTENTTOBUY\";\r\n    Behavior[Behavior[\"PUSHTOINSTALL\"] = 93] = \"PUSHTOINSTALL\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Authentication [100-119]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"SIGNIN\"] = 100] = \"SIGNIN\";\r\n    Behavior[Behavior[\"SIGNOUT\"] = 101] = \"SIGNOUT\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Social [120-139]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"SOCIALSHARE\"] = 120] = \"SOCIALSHARE\";\r\n    Behavior[Behavior[\"SOCIALLIKE\"] = 121] = \"SOCIALLIKE\";\r\n    Behavior[Behavior[\"SOCIALREPLY\"] = 122] = \"SOCIALREPLY\";\r\n    Behavior[Behavior[\"CALL\"] = 123] = \"CALL\";\r\n    Behavior[Behavior[\"EMAIL\"] = 124] = \"EMAIL\";\r\n    Behavior[Behavior[\"COMMUNITY\"] = 125] = \"COMMUNITY\";\r\n    Behavior[Behavior[\"SOCIALFOLLOW\"] = 126] = \"SOCIALFOLLOW\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Feedback [140-159]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"VOTE\"] = 140] = \"VOTE\";\r\n    Behavior[Behavior[\"SURVEYINITIATE\"] = 141] = \"SURVEYINITIATE\";\r\n    Behavior[Behavior[\"SURVEYCOMPLETE\"] = 142] = \"SURVEYCOMPLETE\";\r\n    Behavior[Behavior[\"REPORTAPPLICATION\"] = 143] = \"REPORTAPPLICATION\";\r\n    Behavior[Behavior[\"REPORTREVIEW\"] = 144] = \"REPORTREVIEW\";\r\n    Behavior[Behavior[\"SURVEYCHECKPOINT\"] = 145] = \"SURVEYCHECKPOINT\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Registration, Contact [160-179]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"CONTACT\"] = 160] = \"CONTACT\";\r\n    Behavior[Behavior[\"REGISTRATIONINITIATE\"] = 161] = \"REGISTRATIONINITIATE\";\r\n    Behavior[Behavior[\"REGISTRATIONCOMPLETE\"] = 162] = \"REGISTRATIONCOMPLETE\";\r\n    Behavior[Behavior[\"CANCELSUBSCRIPTION\"] = 163] = \"CANCELSUBSCRIPTION\";\r\n    Behavior[Behavior[\"RENEWSUBSCRIPTION\"] = 164] = \"RENEWSUBSCRIPTION\";\r\n    Behavior[Behavior[\"CHANGESUBSCRIPTION\"] = 165] = \"CHANGESUBSCRIPTION\";\r\n    Behavior[Behavior[\"REGISTRATIONCHECKPOINT\"] = 166] = \"REGISTRATIONCHECKPOINT\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Chat [180-199]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"CHATINITIATE\"] = 180] = \"CHATINITIATE\";\r\n    Behavior[Behavior[\"CHATEND\"] = 181] = \"CHATEND\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Trial [200-209]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"TRIALSIGNUP\"] = 200] = \"TRIALSIGNUP\";\r\n    Behavior[Behavior[\"TRIALINITIATE\"] = 201] = \"TRIALINITIATE\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Signup [210-219]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"SIGNUP\"] = 210] = \"SIGNUP\";\r\n    Behavior[Behavior[\"FREESIGNUP\"] = 211] = \"FREESIGNUP\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Referals [220-229]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"PARTNERREFERRAL\"] = 220] = \"PARTNERREFERRAL\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Intents [230-239]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"LEARNLOWFUNNEL\"] = 230] = \"LEARNLOWFUNNEL\";\r\n    Behavior[Behavior[\"LEARNHIGHFUNNEL\"] = 231] = \"LEARNHIGHFUNNEL\";\r\n    Behavior[Behavior[\"SHOPPINGINTENT\"] = 232] = \"SHOPPINGINTENT\";\r\n    Behavior[Behavior[\"TRIALINTENT\"] = 234] = \"TRIALINTENT\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Video [240-259]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"VIDEOSTART\"] = 240] = \"VIDEOSTART\";\r\n    Behavior[Behavior[\"VIDEOPAUSE\"] = 241] = \"VIDEOPAUSE\";\r\n    Behavior[Behavior[\"VIDEOCONTINUE\"] = 242] = \"VIDEOCONTINUE\";\r\n    Behavior[Behavior[\"VIDEOCHECKPOINT\"] = 243] = \"VIDEOCHECKPOINT\";\r\n    Behavior[Behavior[\"VIDEOJUMP\"] = 244] = \"VIDEOJUMP\";\r\n    Behavior[Behavior[\"VIDEOCOMPLETE\"] = 245] = \"VIDEOCOMPLETE\";\r\n    Behavior[Behavior[\"VIDEOBUFFERING\"] = 246] = \"VIDEOBUFFERING\";\r\n    Behavior[Behavior[\"VIDEOERROR\"] = 247] = \"VIDEOERROR\";\r\n    Behavior[Behavior[\"VIDEOMUTE\"] = 248] = \"VIDEOMUTE\";\r\n    Behavior[Behavior[\"VIDEOUNMUTE\"] = 249] = \"VIDEOUNMUTE\";\r\n    Behavior[Behavior[\"VIDEOFULLSCREEN\"] = 250] = \"VIDEOFULLSCREEN\";\r\n    Behavior[Behavior[\"VIDEOUNFULLSCREEN\"] = 251] = \"VIDEOUNFULLSCREEN\";\r\n    Behavior[Behavior[\"VIDEOREPLAY\"] = 252] = \"VIDEOREPLAY\";\r\n    Behavior[Behavior[\"VIDEOPLAYERLOAD\"] = 253] = \"VIDEOPLAYERLOAD\";\r\n    Behavior[Behavior[\"VIDEOPLAYERCLICK\"] = 254] = \"VIDEOPLAYERCLICK\";\r\n    Behavior[Behavior[\"VIDEOVOLUMECONTROL\"] = 255] = \"VIDEOVOLUMECONTROL\";\r\n    Behavior[Behavior[\"VIDEOAUDIOTRACKCONTROL\"] = 256] = \"VIDEOAUDIOTRACKCONTROL\";\r\n    Behavior[Behavior[\"VIDEOCLOSEDCAPTIONCONTROL\"] = 257] = \"VIDEOCLOSEDCAPTIONCONTROL\";\r\n    Behavior[Behavior[\"VIDEOCLOSEDCAPTIONSTYLE\"] = 258] = \"VIDEOCLOSEDCAPTIONSTYLE\";\r\n    Behavior[Behavior[\"VIDEORESOLUTIONCONTROL\"] = 259] = \"VIDEORESOLUTIONCONTROL\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // Virtual Event [260-279]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"VIRTUALEVENTJOIN\"] = 260] = \"VIRTUALEVENTJOIN\";\r\n    Behavior[Behavior[\"VIRTUALEVENTEND\"] = 261] = \"VIRTUALEVENTEND\";\r\n    Behavior[Behavior[\"JOINTEAMSMEETINGEVENT\"] = 262] = \"JOINTEAMSMEETINGEVENT\";\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    // \tAdvertisement Engagement [280-299]\r\n    ///////////////////////////////////////////////////////////////////////////////////////////////////\r\n    Behavior[Behavior[\"IMPRESSION\"] = 280] = \"IMPRESSION\";\r\n    Behavior[Behavior[\"CLICK\"] = 281] = \"CLICK\";\r\n    Behavior[Behavior[\"RICHMEDIACOMPLETE\"] = 282] = \"RICHMEDIACOMPLETE\";\r\n    Behavior[Behavior[\"ADBUFFERING\"] = 283] = \"ADBUFFERING\";\r\n    Behavior[Behavior[\"ADERROR\"] = 284] = \"ADERROR\";\r\n    Behavior[Behavior[\"ADSTART\"] = 285] = \"ADSTART\";\r\n    Behavior[Behavior[\"ADCOMPLETE\"] = 286] = \"ADCOMPLETE\";\r\n    Behavior[Behavior[\"ADSKIP\"] = 287] = \"ADSKIP\";\r\n    Behavior[Behavior[\"ADTIMEOUT\"] = 288] = \"ADTIMEOUT\";\r\n    Behavior[Behavior[\"OTHER\"] = 300] = \"OTHER\"; // Other\r\n})(Behavior || (Behavior = {}));\r\n//# sourceMappingURL=Behaviors.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* Constants.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez(hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nexport var COMMON_SCHEMA_VER = \"2.1\";\r\nexport var MSCONTENT_PARTB_VERSION = \"1.0\";\r\nexport var CONTENT_VERSION = \"2.0\";\r\nexport var MAX_CONTENTNAME_LENGTH = 200;\r\nexport var IS_SENSITIVE_FLAG = 0x080000;\r\nexport var APPID_PREFIX = \"JS:\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * 1DS JS SDK Web Analytics plugin, 4.2.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n * (Microsoft Internal Only)\n */\n/**\r\n* AutoCaptureHandler.ts\r\n* @author Ram Thiru (ramthi) and Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { addPageHideEventListener, addPageUnloadEventListener, createUniqueNamespace, eventOff, eventOn, getDocument, getWindow, mergeEvtNamespace, removePageHideEventListener, removePageUnloadEventListener } from \"@microsoft/1ds-core-js\";\r\nimport { onDomLoaded } from \"../DataCollector\";\r\nimport { ActionType } from \"../Enums\";\r\nimport { _debounce, _getScrollOffset, _isKeyboardEnter, _isKeyboardSpace, _isLeftClick, _isMiddleClick, _isRightClick } from \"../common/Utils\";\r\nvar clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };\r\nvar AutoCaptureHandler = /** @class */ (function () {\r\n    /**\r\n    * @param _plugin - WebAnalytics plugin\r\n    * @param _logger - Trace logger to log to console.\r\n    */\r\n    function AutoCaptureHandler(webAnalytics, diagLog) {\r\n        var _this = this;\r\n        var _plugin;\r\n        var _logger;\r\n        var _evtNamespace;\r\n        var _clickAdded;\r\n        var _scrollAdded;\r\n        var _maxScrollAdded;\r\n        var _resizeAdded;\r\n        var _unloadAdded;\r\n        var _domLoadedAdded;\r\n        dynamicProto(AutoCaptureHandler, this, function (_self) {\r\n            // Clears out all local values this is also used during teardown\r\n            _initDefaults();\r\n            // Assign the values that we want to use\r\n            _plugin = webAnalytics;\r\n            _logger = diagLog;\r\n            _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"AutoCaptureHandler\"), _plugin._evtNamespace);\r\n            // Re-Exposing as protected properties\r\n            _self._analyticsPlugin = _plugin;\r\n            _self._traceLogger = _logger;\r\n            _self.pageView = function () {\r\n                _plugin && _plugin.capturePageView({ isAuto: true });\r\n            };\r\n            _self.onLoad = function () {\r\n                if (_plugin && !_domLoadedAdded) {\r\n                    onDomLoaded(function () {\r\n                        _plugin && _plugin.capturePageViewPerformance({ isAuto: true });\r\n                        _plugin && _plugin.captureContentUpdate({ isAuto: true, isDomComplete: true });\r\n                    }, _evtNamespace);\r\n                    _domLoadedAdded = true;\r\n                }\r\n            };\r\n            // handle automatic event firing on user click\r\n            _self.click = function () {\r\n                if (!_clickAdded) {\r\n                    var win = getWindow();\r\n                    var doc = getDocument();\r\n                    if (win && win.addEventListener) {\r\n                        // IE9 onwards addEventListener is available, 'click' event captures mouse click. mousedown works on other browsers\r\n                        var event = (navigator.appVersion.indexOf(\"MSIE\") !== -1) ? \"click\" : \"mousedown\";\r\n                        eventOn(win, event, _processClick, _evtNamespace);\r\n                        eventOn(win, \"keyup\", _processClick, _evtNamespace);\r\n                    }\r\n                    else if (doc && doc.attachEvent) {\r\n                        // IE8 and below doesn't have addEventListener so it will use attachEvent\r\n                        // attaching to window does not work in IE8\r\n                        eventOn(doc, \"click\", _processClick, _evtNamespace);\r\n                        eventOn(doc, \"keyup\", _processClick, _evtNamespace);\r\n                    }\r\n                    _clickAdded = true;\r\n                }\r\n            };\r\n            // handle automatic event firing on user scroll\r\n            _self.scroll = function (debounceConfig) {\r\n                if (!_scrollAdded) {\r\n                    var processScroll = _debounce(\r\n                    // on first call do nothing\r\n                    null, \r\n                    // after debounce, send contentView with viewportOffset\r\n                    function () {\r\n                        _plugin && _plugin.captureContentUpdate({ isAuto: true, actionType: ActionType.SCROLL });\r\n                    }, debounceConfig.scroll, _this);\r\n                    eventOn(getWindow(), \"scroll\", processScroll, _evtNamespace);\r\n                    _scrollAdded = true;\r\n                }\r\n            };\r\n            // handle automatic event firing on user scroll\r\n            _self.maxScroll = function (maxScroll) {\r\n                if (!_maxScrollAdded) {\r\n                    var getMaxScrollDepth = function () {\r\n                        var currentScroll = _getScrollOffset();\r\n                        maxScroll.v = maxScroll.v > currentScroll.v ? maxScroll.v : currentScroll.v;\r\n                    };\r\n                    eventOn(getWindow(), \"scroll\", getMaxScrollDepth, _evtNamespace);\r\n                    _maxScrollAdded = true;\r\n                }\r\n            };\r\n            // handle automatic event firing on user resize\r\n            _self.resize = function (debounceConfig) {\r\n                /// I wasn't able to repro the bug\r\n                /// (https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/7958464)\r\n                /// until new content was loaded on the page and the resize\r\n                /// rendering became slow. When resize happens, the page rendering\r\n                /// time is longer than the resize debounce, and resize render\r\n                /// happens in time > debounce, and so resize is acting like\r\n                /// it's being done twice: once at the beginning of user resize,\r\n                /// one at the end of browser render resize.\r\n                if (!_resizeAdded) {\r\n                    var processResize = _debounce(\r\n                    // on first call, send resize contentUpdate\r\n                    function () {\r\n                        _plugin && _plugin.captureContentUpdate({ isAuto: true, actionType: ActionType.RESIZE });\r\n                    }, \r\n                    // after debounce, do nothing\r\n                    null, debounceConfig.resize, _this);\r\n                    eventOn(getWindow(), \"resize\", processResize, _evtNamespace);\r\n                    _resizeAdded = true;\r\n                }\r\n            };\r\n            _self.onUnload = function () {\r\n                function _doUnload() {\r\n                    _plugin && _plugin.capturePageUnload({ isAuto: true });\r\n                }\r\n                if (!_unloadAdded) {\r\n                    var coreConfig = ((_plugin || {}).core || {}).config;\r\n                    var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents;\r\n                    addPageUnloadEventListener(_doUnload, excludePageUnloadEvents, _evtNamespace);\r\n                    addPageHideEventListener(_doUnload, excludePageUnloadEvents, _evtNamespace);\r\n                    _unloadAdded = true;\r\n                }\r\n            };\r\n            _self.teardown = function (unloadCtx, unloadState) {\r\n                eventOff(getWindow(), null, null, _evtNamespace);\r\n                eventOff(getDocument(), null, null, _evtNamespace);\r\n                removePageUnloadEventListener(null, _evtNamespace);\r\n                removePageHideEventListener(null, _evtNamespace);\r\n                _initDefaults();\r\n            };\r\n            _self._processClick = _processClick;\r\n            function _processClick(clickEvent) {\r\n                var clickCaptureElements = { A: true, BUTTON: true, AREA: true, INPUT: true };\r\n                var win = getWindow();\r\n                clickEvent = clickEvent || win.event; // IE 8 does not pass the event\r\n                var element = clickEvent.srcElement || clickEvent.target;\r\n                // populate overrideValues\r\n                var overrideValues = {\r\n                    isAuto: true,\r\n                    clickCoordinateX: clickEvent.pageX,\r\n                    clickCoordinateY: clickEvent.pageY\r\n                };\r\n                var isRightClick = _isRightClick(clickEvent);\r\n                if (isRightClick) {\r\n                    overrideValues.actionType = ActionType.CLICKRIGHT;\r\n                }\r\n                else if (_isLeftClick(clickEvent)) {\r\n                    overrideValues.actionType = ActionType.CLICKLEFT;\r\n                }\r\n                else if (_isKeyboardEnter(clickEvent)) {\r\n                    overrideValues.actionType = ActionType.KEYBOARDENTER;\r\n                }\r\n                else if (_isKeyboardSpace(clickEvent)) {\r\n                    overrideValues.actionType = ActionType.KEYBOARDSPACE;\r\n                }\r\n                else if (_isMiddleClick(clickEvent)) {\r\n                    overrideValues.actionType = ActionType.CLICKMIDDLE;\r\n                }\r\n                else {\r\n                    return;\r\n                }\r\n                while (element && element.tagName) {\r\n                    // control property will be available for <label> elements with 'for' attribute, only use it when is a\r\n                    // valid JSLL capture element to avoid infinite loops\r\n                    if (element.control && clickCaptureElements[element.control.tagName.toUpperCase()]) {\r\n                        element = element.control;\r\n                    }\r\n                    if (!clickCaptureElements[element.tagName.toUpperCase()]) {\r\n                        element = element.parentElement || element.parentNode;\r\n                        continue;\r\n                    }\r\n                    else {\r\n                        // Check allowed INPUT types\r\n                        var sendEvent = element.tagName.toUpperCase() === \"INPUT\" ? clickCaptureInputTypes[element.type.toUpperCase()] : true;\r\n                        if (sendEvent) {\r\n                            _plugin && _plugin.capturePageAction(element, overrideValues, {}, isRightClick);\r\n                        }\r\n                        break;\r\n                    }\r\n                }\r\n            }\r\n            function _initDefaults() {\r\n                _self._analyticsPlugin = null;\r\n                _self._traceLogger = null;\r\n                _plugin = null;\r\n                _logger = null;\r\n                _evtNamespace = null;\r\n                _scrollAdded = false;\r\n                _maxScrollAdded = false;\r\n                _resizeAdded = false;\r\n                _unloadAdded = false;\r\n                _domLoadedAdded = false;\r\n            }\r\n        });\r\n    }\r\n// Removed Stub for AutoCaptureHandler.prototype.pageView.\r\n// Removed Stub for AutoCaptureHandler.prototype.onLoad.\r\n    // handle automatic event firing on user click\r\n// Removed Stub for AutoCaptureHandler.prototype.click.\r\n    // handle automatic event firing on user scroll\r\n// Removed Stub for AutoCaptureHandler.prototype.scroll.\r\n    // handle automatic event firing on user scroll\r\n// Removed Stub for AutoCaptureHandler.prototype.maxScroll.\r\n    // handle automatic event firing on user resize\r\n// Removed Stub for AutoCaptureHandler.prototype.resize.\r\n// Removed Stub for AutoCaptureHandler.prototype.onUnload.\r\n// Removed Stub for AutoCaptureHandler.prototype.teardown.\r\n// Removed Stub for AutoCaptureHandler.prototype._processClick.\r\n    // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n    // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n    // this will be removed when ES3 support is dropped.\n    AutoCaptureHandler.__ieDyn=1;\n\n    return AutoCaptureHandler;\r\n}());\r\nexport { AutoCaptureHandler };\r\n//# sourceMappingURL=AutoCaptureHandler.js.map"],"sourceRoot":""}