{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/visibility.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/trackInfo.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/events.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/escape.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/navigation.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/trackingHelper.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/track.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/render-cache/src/Constants.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/core/src/utilities/SingletonResetManager.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/telemetryconstants.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/core/src/utilities/UrlUtility.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/dom.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/experiences-redux/src/constants/ConnectorConstants.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/mediator.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/diagnostics/src/AppError/AppErrorTracker.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/isomorphic-util/src/requestData.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/diagnostics/src/AppError/AppErrors.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/core/src/utilities/Parsing.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/core/src/app/AppEnvironment.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/extend.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/experiences-constants/src/AppTypes.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/pageInstance.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/experiences-constants/src/SignedInStatus.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/core/src/utilities/Utility.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/render-cache/src/PersistHelpers.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/render-cache/src/PersistRenderCache.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/diagnostics/src/logging/Logger.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/core/src/utilities/WebStorage.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/isomorphic-util/src/DOMHelpers.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/telemetryReadyCallback.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/experiences-redux/src/reducers/DynamicReducer.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/experiences-redux/src/pages/PageHelper.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/experiences-redux/src/pages/PageBase.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/core/src/utilities/CookieUtility.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/core/src/app/Environment.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/core/src/constants/Constants.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/diagnostics/src/performance/PageTimings.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/experiences-redux/src/pages/index.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/telemetryDataTypes.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/experiences-redux/src/reducers/DataConnectorInjector.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/render-cache/src/Helper.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/experiences-constants/src/PageTypes.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/core/src/app/HeadData.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/core/src/app/Market.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/core/src/app/HostPage.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/telemetry-transitional/src/msnews-telemetry-transitional/guidGen.ts","webpack:///./src/startup/Startup.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/experiences-constants/src/AuthCookieNames.ts","webpack:///C:/agents/peregrineAgent_SELFHOSTW0000FP_a0/_work/1/s/libs/diagnostics/src/performance/PerfMarker.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","279","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","Deferred","callbacks","isResolved","resolvedArgs","flushCallbacks","errors","index","e","promise","then","callback","always","this","arguments","resolve","visibilityDeferred","visibilityProperty","prefixes","document","hidden","prospectivePropertyName","getHiddenPropertyName","isUnloadEventInProgress","addEventListener","wasBrowserHidden","evtname","replace","visibilityChanged","isHidden","clientClientId","browserWidth","browserHeight","notifyWhenPageVisible","isElementTrulyVisible","element","windowRight","windowLeft","windowHeight","contentArea","getElementById","contentRect","getBoundingClientRect","right","left","rec","elementHeightVisible","top","bottom","elementWidthVisible","height","width","wasBrowserHiddenAtLeastOnce","clientIdTypeValue","eventIndex","isFirstEventIndex","eventTransientCustomTags","baseUrl","userDefinedCustomTags","Module","visible","compress","moduleTelemetryData","getAttribute","JSON","parse","getBrowserSize","outerWidth","documentElement","clientWidth","outerHeight","clientHeight","joinTelemetryValuesForTmpl","separator","currentTmplValue","newTmplValue","combinedTelemetryVal","isDuplicateKeyExist","newTmplValueSplited","split","newKeyVal","indexOf","currentTmplValueSplited","currentKeyVal","val","defaultCustomTags","trackInfo","notrack","cmSeparator","defaultModule","defaultFormHeadline","piitxt","piiurl","wrapperId","MUIDCookie","gestureKey","gestureType","tap","rightclick","eventTypes","click","nonNavClckEvt","submit","contextmenu","mouseenter","imprUpdate","adPlay","contentPlay","videoClickNonNav","imprUpdateMechanisms","load","scroll","auto","resize","swipe","partial","view","event","sitePage","userStatic","overrideClientParams","persistOverriddenParams","customTags","adsEnabled","adoni","trackingDisabled","shouldFireTelemetry","appErrorEnabled","shouldFireAppError","getCurrentTime","Date","timeToInteract","eventTime","eventTiming","performance","timing","navigationStart","telemetryModuleTypes","Undefined","Header","Footer","topNavBar","navBar","dropDown","Section","Carousel","searchBox","inputBox","actionButton","Interaction","Headline","Navigation","Entity","structuredData","appStore","appLaunch","cmsPromotions","microsoftWebStore","xboxStore","officeStore","appInstall","PartnerLinks","SponsoredContent","contentPlacedBySource","Editorial","PersonalizationAlgo","BingAlgo","Taboola","Outbrain","telemetryDataAttribute","telemetryHLAttribute","client","clientId","requestId","clientIdType","gesture","dom","getTarget","trackInfoEvent","originalEvent","ctrlKey","shiftKey","getMuid","getAnonCookieName","AnonCookieName","AuthCookieName","getSsoComplete","SsoComplete","toLowerCase","getAadAuthentication","AadState","AadAccount","NonAadAccount","AccountType","AAD","orientation","screen","OTFTelemetry","mechanism","telemetryData","body","querySelectorAll","innerHeight","innerWidth","infopane","querySelector","infopaneVisible","telemetryTracking","isVisible","visibles","context","formatModules","vc","sendImprUpdateEvent","pageTitle","title","pageUrl","ocid","msnocid","hasQueryString","referrer","referrerOverride","screenResolution","join","userAgent","navigator","visibility","userDynamic","timeStamp","slideType","elem","target","containsClass","parent","firstEventIndex","currentEventIndex","pageInstance","getRequestId","resetEventIndex","custom","addCustomTags","combinedTags","extend","stringify","addCustomTagsForClickEvent","setupParameters","evt","trackInfoSitePage","anonckName","rid","di","domainId","clid","issso","aadState","afd","anoncknm","page_product","page_type","page_name","page_configuration","topLevelContainerType","undefined","parameters","winht","docht","Math","max","scrollHeight","offsetHeight","scrollOff","pageYOffset","scrollTop","wbh","tmpl","templ","mkt","localeCode","TTI","feedId","fid","fn","feedName","ft","feedType","flightid","tlcType","sendUpdate","formattedModules","mData","y","ct","telemetryDataTypes","getTelemetryContentType","telemetryReadyCallback","otfURL","idx","beaconData","url","requestType","POST","eventType","impressionUpdate","params","trackingType","OTF","mediator","pub","FireTelemetry","updateTemplValue","templToAdd","updateSitePage","flightId","currentSitePage","leftTmplValue","rightTemplValue","currentFlightIds","updatePageName","pageName","overridePageType","doOverridePageType","telemetryPageName","getTelemetryPageInfo","PageName","PageType","updateFeedMetadata","updatePagePivot","pagePivot","TelemetryPagePivot","validateTelemetryDataType","updateReferrer","referrerType","TelemetryContentType","setCustomTagsForClickEvent","updatePageUserTypeAndUserId","userType","userId","pageUserId","pageUserType","TelemetryUserType","trackCustomProperty","updateExtendedFlightId","namespace","flightIds","TelemetryPartnerNamespace","extflightid","type","handler","unbind","removeEventListener","sequenceTokens","sequenceValues","\"","text","urlPart","encodeURIComponent","html","ch","navigation","getUrl","relativeUrl","filter","navigate","location","href","getHostName","parseUrl","isLocal","hostname","getParams","getParamsFromUrl","supportMultiple","decodeComponents","mergeQueryStringParams","newParams","urlParts","param","queryString","decodeURIComponentAndPlusSign","decodeURIComponent","queryArray","ndx","parts","anchor","createElement","protocol","host","hostName","port","path","pathname","hash","query","search","origin","locationHost","domainParts","reverse","hostDomain","windowsStoreHost","domainMatchPattern","ocidMatchPattern","ccidMatchPattern","msnOcid","storeOcid","storeocid","addCcidToStoreUrl","tHref","emsAdId","ccidMatch","match","ccidOnUrl","hashIndex","hashValue","substring","storeUrl","ccidData","webig","muid","addOcidToHref","emsOnUrl","endOfScheme","locationOfStore","isStoreUrl","ocidMatch","ocidOnUrl","initStoreUrl","emsMatch","domainMatch","exec","hrefHostName","linkUrl","modifyValuesForTrackPage","preventComscore","personalization","attachTaglineClickHandler","getActionResult","action","isSuccessful","refreshPageLoad","attr","domName","getParent","getChildren","children","recipients","doc","lastClickedTarget","clickTargetResetTimeoutInMs","tEvtTag","regExpEventName","impressionCache","logSamplingRate","trackAll","implementationMethod","implementation","defOpts","defaultOpts","disableOnAutoRefresh","names","isInList","id","AR","isGeneratedEarly","depthFirstChildAttribute","attributeName","skipElement","altValue","localName","countAllTrackableLinks","count","getChildByTargetElement","tagName","depth","dataLength","subChild","trackAppErrorEventInternal","errorParams","severity","Alert","report","errId","errMsg","message","errSource","source","pb","msg","isError","logError","log","setAppErrorTrackInfo","trackFormSubmitEvent","destination","headline","campaign","getSearchTerm","trackEvent","contentAction","jquery","customHandled","elemHref","dataHlValue","headlineElement","trim","findCMValue","previousCM","curId","getContentElementIndex","clsGT1","className","RegExp","$1","moduleInfo","nameLineage","ordinalLineage","lineageDelimiter","actionType","behaviorType","moduleInfoJson","getTelemetryBehavior","TelemetryActionType","RightClick","TelemetryBehaviorType","ContextMenu","Click","Navigate","Submit","elementTelemetryLineage","nameLineageArray","ordinalLineageArray","telemetryObject","parseDomAttributeJson","getLineage","time","duHostname","track","filterUrlParams","destinationUrl","contentModule","contentElement","campaignId","sourceIndex","nodeName","nLineage","oLineage","trackPageInternal","overrideParams","pageType","telemetryPageType","TelemetryPageType","Unspecified","getItem","removeItem","ar","trackingHelper","preventBeacon","Comscore","sub","errorObject","onContextMenu","trackClickEvents","onClick","button","trackAdEvent","adParams","adWidth","parseInt","w","adHeight","h","dst","den","pg","isNaN","status","anAd","seqid","sdk","fen","trackVideoEvent","isInline","toString","defaultParams","canvas","serverImpressionGuid","department","subDepartment","vertical","cleanParam","removeNullOrEmptyParams","GET","eventSource","trackFeedbackEvent","feedbackParams","submitValue","otfPackage","getFeedbackTrackingParams","createEvent","createEvt","sendPageViewCandidate","pvUrl","sendSinglePageViewBeacon","beaconId","clearImpressionCache","blackList","splitedUrl","outputUrl","paramsString","contains","trackAppErrorEvent","trackPartialImpression","visibilityCheck","trackPartialImpressionInternal","trackPage","trackThirdPartyUpdate","register","args","trackingImplementation","samplingRate","getCurrentPageRequestId","mapTelemetryParams","common","commonMap","paramsMap","groupKey","groupValue","trackInfoGroupKey","clientParams","obj","form","formElem","events","trackPageRefresh","updatePageInstance","setTimeout","dataAttr","item","array","elements","domElement","telemetryChildren","findTelemetryElements","impressionContent","mech","getClickEventFromUrl","targetUrl","evtName","curUrl","getEventFromUrl","eventName","targetElem","initEvent","createEventObject","customTarget","useMap","activeElement","ex","ServiceWaffleAutomaticClickTrackingDisabled","appLauncherElement","includes","hasAttribute","currentTarget","isClickedTwice","preventDefault","returnValue","preventEventDefault","isPropagationStopped","overrideClickTelemetry","scr","d_dgk","subcvs","cvs","contentid","entityId","cu","signedin","isSignedIn","locationHref","storagePrefix","expirationPrefix","jssMapKey","renderCacheKey","renderCacheExpirationKey","defaultExpirationTimeMs","defaultForceExpirationTimeMs","riverRcClassName","resetCallbacks","registerResetCallback","Ctag","Exp","ResetIdx","UrlUtility","primeForbiddenCharacters","decodeURIComponentWithPlusSign","startsWith","queryKey","queryValue","newParam","existingParam","entry","encodeURIComponentForPrime","uriComponent","getParamsWithItems","queryItems","findIndex","getQueryParameterByName","paramsObj","paramArray","forEach","keyValuePair","getParamsObj","isValidUrl","validateScheme","keyValueArrayToQueryString","kv","isKeyValuePair","map","joinSubpathToURL","subPath","trimmedEndSlashFromHref","trimmedStartSlashFromSubpath","URL","updateSearchParam","searchParams","set","appendSearchParam","fallback","append","getAbsoluteUrl","partialUrl","otherWhitespaceRegex","trimRegex","textContent","innerText","parentNode","getElementsByTagName","srcElement","ConnectorConstants","connectorStateKey","renderAction","dataConnectorMergeInitAction","defaultPubSub","PublishSubscribe","channels","getChannel","channel","pubMap","listeners","unsub","pubChannel","subChannel","unsubChannel","Severity","RequestData","devicePixelRatio","canUseCssGrid","global","_instance","resetRequestData","Error","resetInstance","getRequestData","getInstance","build","BUILD_NUMBER","ServiceUiError","OneServiceCardProviderAppErrors","NoAlert","EmptyFeedListInOneServiceResponse","OneServiceResponseWasNullOrErroneous","ErrorFetchingOneServiceResponse","HighImpact","InvalidJsonInOneServiceResponse","InvalidFeedListInOneServiceResponse","RiverConfigurationIssue","QueryInterestContentFetchError","StaticContentLoaded","ContentPreviewAppErrors","ErrorWhileFetchingContentPreviewContent","InvalidResponseFromContentPreviewFetch","InvalidResponseFromContentPreviewResponseJson","ErrorWhileInitializingAsyncContentPreviewContent","InvalidOrMissingContentId","MissingDataForExternalContent","RiverAppErrors","UnknownMetadataReceivedFromRiverCardProvider","RiverContentProviderFetchException","UnableToSelectSectionTemplateForGivenChildExperiences","InvalidConfig","ChildLoadError","InitialDataLoadError","DuplicateInstanceIdWarning","UserInitiatedPageRefreshErrors","Default","SportsCardError","SportsLeaguePdpFetchError","SportsLeaguePdpInvalidResponse","SportsPlayersPdpFetchError","SportsPlayersPdpInvalidResponse","SportsTeamsPdpFetchError","SportsTeamsPdpInvalidResponse","SportsCardConfigFetchError","SportsCardGetFavoriteTeamDataError","SportsCardGetPlayerBioError","SportsCardGetLeaguesGamesArrayError","SportsCardGetPdpDataFailure","SportsCardGetLeagueSeasonYearDataFailure","SportsCardGetLocalizedTeamNameDataFailure","SportsCardGetTeamDataFailure","SportsCardGetLeagueDataFailure","MoneyCardError","MoneyQuoteSummaryGetError","MoneyQuoteSummariesGetError","MoneyPdpDataGetErrorFromService","MoneyPdpInvalidResponseFromService","MoneyQuoteSummaryGetErrorFromService","MoneyQuoteSummaryInvalidResponseFromService","TrendingNewsErrors","DataFetchError","BackupDataFetchError","GridSectionAppErrors","GridSectionCardGenerationError","PageClickTrackerErrors","InvalidResponse","FetchFailure","CoachmarkAppErrors","GeneralError","NotPlaceable","NotFoundComponent","CoachmarkDataConnectorUndefined","CoachmarkDataAppErrors","InvalidCoachmarkMessage","IrisDataConnectorUndefined","NoSurfaceFoundForCampaign","ErrorFoundForSurface","TelemetryInfoUndefined","EventTypeUndefined","IrisActionUndefined","SpotlightPreviewAppErrors","ErrorWhileFetchingSpotlightPreviewCardInfo","NoServiceContextMetadata","SpotlightErrors","UnknownError","ContentFetchError","CardActionErrors","CardActionBaseExperienceError","CardActionPostActionError","CardActionDeleteActionError","CardActionGetActionError","CookieRelatedErrors","SharedStateConnectorNull","OverlayErrors","LoadExperienceError","ViewsCommonAppErrors","InvalidIntraArticleDataError","InvalidDocumentContentError","ViewsPaddleDataLoadError","ViewsErrorPage","ProviderMapperError","ContentActionsToolbarAppErrors","ContentActionsSharingToolbarLoadError","ContentActionsArticleDatafetchError","ContentActionsBaseExperienceError","ContentActionsGetDocumentDataError","ContentActionsGetContentStatusActionError","ContentActionsDeleteActionError","ContentActionsPostActionError","ContentActionsExperienceLoadError","ContentActionsFlipToolbarError","ContentActionsContentStatusFetchError","ContentActionsContentPreviewFetchError","ContentSharingToolbarAppErrors","ContentSharingToolbarInitializationError","ContentProviderAppErrors","InvalidSourceIdError","ProviderDetailsFetchError","ProviderFeedFetchError","InvalidLayoutTemplate","ViewsGalleryAppErrors","InvalidGalleryIdError","GalleryDataLoadError","GalleryImagesLoadError","VideoListAppErrors","VideoListDataLoadError","ViewsArticleAppErrors","InvalidArticleIdError","ArticleDataLoadError","IntraArticleComponentLoadError","InlineGalleryInvokeError","InterestsSearchAppErrors","ErrorResponseFromOneService","ErrorResponseFromOneServiceIsInvalid","InvalidUrlFoundForElement","SelectedItemNotFoundInSuggestions","SelectedItemIsInvalid","InterestsAppErrors","InterestsRetrieveTopicsError","InterestsRetrieveFollowedTopicsError","InterestsRetrieveMutedPublishersError","InterestsUnMutePublisherError","InterestsFollowTopicError","InterestsUnfollowTopicError","InterestsTopicStateUndefined","InterestsShouldHaveRendered","InterestsRetrieveTopicError","InterestsRetrieveSavedStoriesError","InterestsSavedStoriesInvalidConfigError","InterestsSavedStoriesChildLoadError","InterestsSavedStoriesInvalidJsonError","InterestsSavedStoriesInvalidListError","InterestsRetrieveRecommendedTopicsError","UndefinedTopicDataConnector","InterestsRetrieveReadStoriesError","InterestsReadStoriesInvalidConfigError","InterestsReadStoriesChildLoadError","InterestsReadStoriesInvalidJsonError","InterestsReadStoriesInvalidListError","FailedRestoringDefaultTopicsError","TopicsFailedIndexedDBConnection","TopicsFailedGettingIndexedDB","TopicsFailedUpdatingIndexedDB","ComponentConnectorAppErrors","DuplicateChildInstanceFound","BundleLoadError","ChildConfigInfoListNull","ListStartPositionInvalid","ChildDelayLoadError","ExperienceDependencyTimeout","ExperienceLoaderAppErrors","InsufficientLoadArgs","SearchError","PollsCardAppErrors","PollsListFetchError","PollDataFetchError","PollsCardInvalidPoll","PollsCardInvalidQuizPoll","PollsCardVoteError","PollsCardMapStateToPropsError","PollsUnknownError","MonetizationAppErrors","PlacementManagerLoadError","ArrangementPositionLoadError","GetCMSContentError","GetSAMRTBResponseError","MediaNetEOABError","InvalidPromoModuleConfig","CookieSyncDownloadExternalScriptError","CookieSyncMissingExternalScriptUrl","CookieSyncTimeout","CookieSyncPartnerScriptError","CookieSyncPixelPartnerDownloadError","CMSOrBackfillNativeAdLoadError","MissingRequiredPropertyPlacementManagerConfig","NativeAdTargetScopeError","RiverVideoAdPartnerError","JsTrackerPartnerScriptLoadError","ViglinkError","MissingTopicId","TopicIdNotFound","GetSAMRTBResponseErrorNoAlert","DisplayAdsOathLoadError","DisplayAdsApnLoadError","DisplayAdsApnEmptyProvider","DisplayAdsAdsDetectionNotInit","DisplayAdsMoatLoadError","DisplayAdsNoAdObjects","DisplayAdsProviderIdEncode","TaboolaRiverAppErrors","TaboolaRiverFetchError","CoreLibAppErrors","DeprecatedCompositionLayoutUsed","InvalidColumnInGridConfig","ErrorLoadingBundle","GenericJSException","LocalStorageDoesntExist","SessionStorageDoesntExist","ResolverAppErrors","IndexedDbWriteFailed","IndexedDbReadFailed","CrsFetchFailed","ReceivedConfigFromCdnAsCrsFetchFailed","GetConfigException","IndexedDbBulkReadFailed","IndexedDbFailedToRemoveCachedConfig","IndexedDbFailedToClearAllCachedConfigs","RenderCachePurgedDueToChangesInConfig","FailedToPurgeRenderCache","RefreshConfigCacheFailed","IndexedDbInitFailed","DifferentCbid","BingCardsAppErrors","BingCardGetHotelAnswersError","BingCardGetHotelErrorFromService","BingCardGetAnswersError","BingCardInvalidEntityType","BingCardErrorOut","BingAnswersAppErrors","FailedToLoadData","NoCardsContentType","NoCardsRelated","BingShoppingLifestyleCardError","LifestyleShopCardServiceFetchError","LifestyleShopCardServiceFetchInvalidResponse","LifestyleShopCardServiceEmptyResponse","LifestyleShopCardServiceInvalidResponse","LifestyleShopCardCdnServiceFetchError","LifestyleShopCardCdnServiceFetchInvalidResponse","LifestyleShopCardCdnServiceInvalidResponse","LifestyleShopAutosuggestServiceFetchError","LifestyleShopAutosuggestServiceFetchInvalidResponse","LifestyleShopAutosuggestServiceEmptyResponse","LifestyleShopAutosuggestServiceInvalidResponse","LifestyleShopAutosuggestInvalidSuggestionUrl","OneServiceContentDataConnector","FailedToUpdateBypassValueConnectorNotInitialized","FailedToGetBypassValueConnectorNotInitialized","NotificationBellErrors","JsonParseError","NewsItemDataFetchError","MalformedNewsItemResponseError","RecommendedSearchErrors","ResponseParsingFailed","InvalidJsonResponse","ServiceCallFailed","RenderFailed","Timeout","ElectionResultMapConnectorErrors","ElectionResultMapInspectorErrors","EmptyResultSummaryError","ElectionResultMapErrors","FetchAndUpdateElectionDataError","ElectionDelegateCounterErrors","WebWorkerErrors","FileNotFound","RuntimeError","MessageTimeout","HandledError","IrisErrors","IrisUnknown","InvalidQParams","ArcCallFailed","ArcResponseNotOk","ArcResponseUnparsable","MissingAppEnv","UnknownIrisErrorFound","TimeoutIrisErrorFound","TemplateIrisErrorFound","ClientErrorIrisErrorFound","DSourceIrisErrorFound","ActionCallFailure","ActionFetchFailure","ActionResponseFailure","UncaughtErrorDetected","UnconvertableCreative","InvalidResponseFormat","AbortErrorDiscovered","UnparsableSingleResponseJSON","IrisDataConnectorErrors","SubscriberNotFound","CreativeCountNegativeOrZero","ErrorFetchingSurfaceInfo","SubscriberNotFoundInIrisPlacementDictionary","ConfigDataUndefined","FailedToFetchConfigData","ExceptionFetchingConfigData","RenderCacheErrors","JssStyleMismatchWarning","JssStyleCriticalMismatchError","PreloadReportingMessages","TtvrMissing","TfprMissing","TtvrSearchBoxMissing","TtfSearchBoxMissing","PushNotificationsLibErrors","FetchKeyError","SubscribeUnsubscribeError","ContentTruncationErrors","OverTruncationError","tryParseJson","jsonString","tryParseInt","defaultValue","AppEnvironment","_serviceUrl","_configServiceUrlBase","initializeAppEnvironment","activityId","environmentConfigUrl","process","env","WEBPACK_DEV_SERVER","URLSearchParams","searchParam","contentServiceUrlBase","currentRequestTargetScope","currentMarket","environment","assetsHost","hostPage","appType","authCookieName","accountType","accountInfoPromise","buildVersion","isDebug","showMnsCreatorDashboard","currentContentLinkHost","serviceUrlBase","feedServiceUrlBase","isFrePage","rootTelemetryId","getUserMuid","disableCachingConfigs","enableConfigService","EnableCMSPPEConfigs","isMultiConfigRetrievalEnabled","disableContentPreviewCache","sendFeedCallActivityIdInHeader","queryParamOverride","disableContentCacheIDBRead","disableContentListCache","disableContentListCacheIDBRead","configServiceBaseUrl","featureFlags","configRootUrl","cacheBustingIdentifier","countryCode","ClientSettings","aid","latitude","longitude","serviceUrl","configServiceUrlBase","appEnvironment","environmentFromHeadData","clientSettings","tryReformatGuid","v","Locale","apps_locale","geo_country","geo_lat","geo_long","setAccountType","setAccountInfoPromise","apptype","getAuthCookieName","disableActivityIdInHeader","Edge","cbid","rootElement","locationOrigin","envQSOverwrite","prod","feedBaseDomain","getHostPageFromUrl","endsWith","Number","trackPageProd","trackPageTypeVal","createContentLinkHost","setTargetScope","useMultiConfigsRetrieval","getConfigServiceBaseUrl","muidCookie","relativePath","int","urlQuery","toLocaleLowerCase","FirstParty","Hub","MicrosoftNews","Views","Anon","EdgeChromium","MMX","Office","AppAnon","chrome","authPrivate","getPrimaryAccountInfo","accountInfo","SignedOut","account_type","MSA","AccountInfoPromise","Promise","ZHCN","guid","matches","audienceMode","Kids","Adult","browser","deviceFormFactor","domain","locale","os","pagetype","platform","Web","stringHasData","language","market","CurrentFlights","pageExperiments","getAppEnvironment","isRecursive","src","arr","Array","isArray","AppType","refigInputs","setRequestId","newRequestId","SignedInStatus","AadAccountType","Utility","isNotNullOrUndefined","isDefined","potentialKeyValuePair","isKey","isValue","isNonNullObject","isNotNull","isNullOrWhiteSpace","toNumber","arrayHasData","constructor","objectToString","firstRun","attribute","forceStorageTimestampKey","jssGeneratedClassesMap","jssCaptureCompleted","removeRenderCache","supported","removeSubstringKeys","captureJssGeneratedClasses","renderCacheEnabled","Logger","setupBrowserEnvironment","isDebugEnabled","webpackRequire","setupNodeEnvironment","windowObj","logger","Info","Browser","setupLogLevel","NodeJs","info","console","error","getMessage","infoCallback","setLevel","setupAppenders","removeAllAppenders","addAppender","getLevel","nameRegEx","queryNameValueMatches","defaultInstance","WebStorage","storage","parsedObj","setItem","matchingKeys","storageKey","localStorage","super","sessionStorage","canUseDOM","getLocationHref","getLocationHostname","getLocationHost","getLocationOrigin","getLocationSearch","getLocationProtocol","getDocumentElementById","elementId","getDocumentElementsByTagName","getIndexedDB","indexedDB","getInnerWidth","getInnerHeight","getDevicePixelRatio","queuedCalls","isPreload","pageRevealed","trackValuesUpdated","checkAndFireQueuedCalls","visibilityState","onVisibilityChange","_connectorMap","_globalConnectors","_allConnectors","_getDataConnectorPendingPromises","Map","reduce","dataConnector","connector","pendingPromise","resolveCallback","rejectCallback","reject","state","actionPayload","newState","stateChanged","typeIsString","statePropertyKey","connectorState","experienceFullNamespace","dataConnectorName","initializeExperience","isGlobal","merge","connectorReducerResult","computeNextStateForConnector","reportStateChange","keys","fullNamespace","has","delete","store","dispatch","connectorPreviousState","nextStateForConnector","subReduce","reducer","connectorStateChanged","previousState","reducedState","designSystemMap","WeakMap","designSystemIndexMap","createGenerateClassName","designSystem","dsName","dsIndex","rulesMap","rule","sheet","initialState","enhancer","middlewares","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","trace","traceLimit","_rootReducer","needsHydrate","hasPreHydrateState","_store","rootReducer","connectors","onApplicationStart","connectedTopLevelElement","hostElement","updateJssManagerInstance","pageTimings","hydrate","SSR","startMark","render","jssInstance","plugins","jss","getCookie","cookie","getMuidCookie","setRequireFunctionalCookie","expiryDays","secure","expiryDate","builder","date","setTime","getTime","toUTCString","Environment","getEnvironmentFromString","int1","intpr","intpef","ariaLabelAttribute","rootElementId","htmlElementIds","head","applicationCacheConstants","manifestAttributeName","pagesRefreshData","storedHeadDataKey","storedLastUsedActivityIdKey","pagetypeSettings","js","lang","dir","telemetryId","trackPageProduct","trackPageType","minimumHostPagePathSegments","anonCookieName","appAnonCookieExistsCookieName","childCookieName","oneServiceHeaders","authorization","oneServiceQueryStringKeys","apiKey","complexInfoPaneEnabled","contentType","delta","disableTypeSerialization","infopaneCount","fdhead","feedLayoutRequestType","ids","parentContentId","parentNamespace","parentTitle","queryQ","queryType","qScope","responseSchema","select","session","signInCookieName","skip","timeOut","user","wrapOData","AriaRoles","DeviceOrientation","EnterpriseOneServiceApi","CoreLocalStorageKeys","pageVersions","_pageTimings","getPageTimings","incrementCounter","counterName","existingCount","PageNamePageTypeMappingList","TelemetryTypeContentTypeMappingList","TelemetryTypeBehaviorTypeMappingList","DHP","NTP","HomePage","VerticalHomePage","StructuredDataPage","SectionFront","SiteSearch","Article","Gallery","Video","SubjectSection","CustomColumn","TelemetryType","TopNavBar","NavBar","DropDown","SearchBox","InputBox","ActionButton","StructuredData","AppStore","AppLaunch","CmsPromotions","MicrosoftWebStore","XboxStore","OfficeStore","AppInstall","Follow","Unfollow","MoreFrom","Topic","Provider","Spotlight","ShareClose","Share","Like","Dislike","Unlike","Undislike","Mute","Unmute","MuteCancel","Manage","NewStories","AutoSuggest","BingCard","Tile","TrendingNews","AllCoverage","Report","AdChoice","Hide","Unhide","App","Feed","AppStorePromo","Settings","StructuredDataCard","Webview","Activity","Win32","OfficeDocument","LocalFile","CardAction","Pin","Unpin","Rearrange","Remove","Add","Open","View","More","Close","Cancel","Launch","Install","Show","Save","Customize","TelemetryPageName","StartPage","DefaultPage","EduPage","ChildModePage","Discover","MyInterests","CombinedInterests","ArticlePageNames","ArticleVNext","ArticleListicle","ArticleCollection","ArticleFullScreen","FlexibleArticle","FlexibleArticleMobile","ArticleGalleryFullScreen","GalleryPageNames","GalleryVNext","GalleryFullScreen","GalleryClassic","GalleryClassicFullScreen","GallerySearch","GallerySearchFullScreen","FlexibleGallery","FlexibleGalleryMobile","GalleryImmersive","GalleryImmersiveFullScreen","GallerySponsored","GallerySponsoredFullScreen","GalleryInline","VideoPageNames","ChannelPlayerPage","PartnerPlayerPage","VerticalHomePageNames","HomePageToday","StructuredDataPageNames","Gamecenter","Schedule","Scores","Stocksummary","Stocksummaryoneriver","Weatherxplatmaps","Standings","Markets","Watchlistpage","Data_modelpage","Immersivechartspage","Currencies","Indexdetailspage","Data_makepage","Weatherfullscreenmaps","Weatherthresholdmaps","Stockanalysisdetails","Data_yearoverview","Data_segmenthub","Weathermaps","Playerstats","Funddetailspage","Exercisedetails","Teams","Etfdetailspage","Binganswermaps","Workoutdetails","Competitionstats","Polls","Data_photos","Videocategorylistpage","Stockfinancialsdetails","Commoditydetailspage","Data_yearoverview_trim","Worldwidepage","Data_photos_trim","Stockcompanydetails","Retirementplanner","Livecoverage","Teamroster","Stockhistorydetails","Filterresultspage","Data_carcompare","Stockownershipdetails","Driverstandings","Timevalueofmoney","Savingscalculator","Iccmatches","Other_flightsearchresult","Stockrelateddetails","Data_specs_trim","Stockoptionsdetails","HomepageAlerts","HomepageRecordsandAverages","HomepageWeatherTraffic","Data_specs","Data_pricing","Mortgagecalculator","Data_performance_trim","Theatershowtimes","Data_pricing_trim","Data_photosInterior","Indexdetailsanalysispage","Data_photosInterior_trim","Data_photosColors","Data_carReviews_trim","Data_carReviews","Racecalendar","Teamstandings","Data_photosColors_trim","Stockdetails","Data_interiorFeatures_trim","Data_exteriorFeatures_trim","Calendar","TeamStats","Movieshowtimes","Drafts","Data_technologyFeatures_trim","Data_workoutdetails_collection","Data_photosExterior","Data_photosExterior_trim","Data_photos360Interior","Immersivechartsmarketspage","Returnoninvestment","Indexdetailsrelatedpage","Gonepage","Data_compare","Data_compare_trim","Data_options_trim","Entitiespage","Workoutdetailsprint","Data_photos360Exterior","HomepageDatacarfinder","Data_photos360Interior_trim","Data_skeleton","Mortgagerates","Brackets","Data_photos360Exterior_trim","Data_photocompare","HomepageWeather10day","Data_performance","HomepageWeatherextendedforecast","Savings","Data_exteriorFeatures","Data_interiorFeatures","Data_options","Travelgonepage","Recipe","Getportfoliodatapage","Brokercenterpage","Data_technologyFeatures","Tvlistings","Ownerstandings","Entitydetailspage","Creditcards","Cmssitemap","Externalnativeadpage","Autoloans","Externalcontent","Htmlsitemap","CustomColumnPageNames","TrendingTopics","GlobalSettingsPage","MyTopics","WeatherPlaces","MyFavorites","TopicResult","Collections","Rouxbe","ShoppingList","MyHealthReportsPage","Error404page","AppsPromotion","Error500page","DietTrackerPreSigninPage","ExerciseTrackerPreSigninPage","WebSlicePage","Error200Page","AboutUsPage","UnSupport","Disclaimer","TermsOfService","SevereWeather","SubjectSectionPageNames","TeamhomePage","PlayerPage","MarketMoversPage","CommoditiesPage","ChefPage","NutritionIndexPage","FinanceTechnologyPage","MedicalindexPage","SiteSearchPageNames","SearchResultsPage","VideoSearchResultsPage","PartnerVideolistPage","HomepageBingserpIframepage","SitesearchSitesearch","SearchResults","SerpPage","FindaMoviePage","SectionFrontPageNames","Competitionhub","Local","Stockscreener","Toolslandingpage","Showtimes","FinanceRealEstatepage","CookingSchool","Allcompetitions","Newspage","CocktailHub","Travelflightsearchhubpage","Hotelshubpage","WineHub","ChefHub","Travelflightstatushubpage","HomepageCompetitionhub","SecfrontHotel","SecfrontTNews","TelemetryProduct","Spartan","Prime","PrimeMobile","IEext","SpartanMobile","TabbedShell","ChromeExt","Downlevel","Xbox","ContentPlacedBySource","Editor","Bing","AutoCuration","User","AppNexus","OtherSponconProvider","TelemetryPageConfiguration","NoContent","OneBox","TopSites","Suggested","ContentFeed","WinFre","StripeLayout","TelemetryPageMode","Trial","Subscription","Apps","News","Timeline","StartMenu","Shell","Cortana","Aad","Msa","MsaKids","telemetryType","prop","Hover","telemetryPageNameObject","dataConnectorToExperienceKeyMap","createStatePropertyKey","dataConnectorInjector","registerInjection","experienceSet","Set","add","appState","experienceStatePropertyKey","initialDataConnectorState","dataConnectorNamespace","newDataConnectorState","experienceKeys","experienceKey","experiencePreviousState","renderCacheObject","batchCSS","batchCss","styles","dataset","innerHTML","scrapeDom","includeNewsFeed","root","rivers","getElementsByClassName","river","outerHTML","getStateFromRenderCache","renderCache","cacheExpirationTimestamp","parsedCacheExpirationTimestamp","renderCacheStorage","batch_css","getRenderCache","reduxStoreStringifyReviver","dataType","AudienceModeType","EnterpiseFlightId","OfficeDefaultPivotFlightId","HeadData","clientData","enableCMSPPEConfigs","initializeHeadData","marketDir","currentFlights","userIsSignedIn","isAppcache","isEnterprise","isOfficeDefaultPivot","isServiceWorkerCache","lastKnownAppVersion","ssoComplete","headData","initializeFromData","locationSearch","htmlElement","headElement","initializeFromDom","initializeFromStorage","serviceWorker","controller","updateStorageActivityId","setQueryItemProvidedValues","headDataJs","headJs","anonckname","setIsEnterprise","setIsOfficeDefaultPivot","storedActivities","storedActivityIds","setFlights","clientInfo","dataClientSettings","pageTypeFromSettings","storedVersions","getObject","currentDomVersion","setObject","responseFromStorage","parsedResponseFromStorage","currentPageStoredHeadData","storedClientSettings","storedFlights","currentPageVersion","existingLastUsedActivityIds","currentPageLastUsedActivityId","previouslyUsed","activityIdToStore","ts","flightString","IsEnterprise","Enterprise","cmsItem","find","setCurrentFlightsTestOverride","flights","IsOfficeDefaultPivot","getHeadData","Market","HostPage","pathnameSegments","topDomainName","originalUrl","categoryKey","verticalKey","topDomain","indexOffset","subcategoryKey","guidGen","timestampSeed","seededRandom","random","floor","start","AuthCookieExistsCookieName","StartMarkSuffix","PerfMarker","endMarkSuffix","initialize","instance","singleMark","measureStartEnd","mark","getPromise","endMark","experienceName","perfMarkers","perfEntries","getEntriesByType","markerName","startTime","perfMarkerDetail","PerfMarkerDetail","processPerfEntry","isValid","measure","perfMarker","duration","perfEntry","firstStartTime"],"mappings":"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","file":"startup.aca0045bd163208e2a75.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t279: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/bundles/v1/hybrid/20200605.66/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([887,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","// © Microsoft Corporation. All rights reserved.\r\n\r\nimport { canUseDOM, getInnerHeight, getInnerWidth } from \"@msnews/isomorphic-util\";\r\n\r\n// Wraps modern visibility api, as well as defines visibility for elements based on viewbox.\r\n\r\n// a simple deferred promise object that delays execution of callbacks until the owner resolves. (see $.Deferred for jQuery's implementation, this is a subset)\r\nfunction Deferred() {\r\n // the callbacks to execute when resolved\r\n var callbacks = [];\r\n\r\n // the state of the promise. If we have already resolved we execute the delegates immediately.\r\n var isResolved = false;\r\n\r\n // the arguments used to resolve the promise.\r\n var resolvedArgs = null;\r\n\r\n // executes all the callbacks that need to be notified, giving them a ref to the arguments supplied.\r\n function flushCallbacks() {\r\n // we only flush if we are resolved\r\n if (isResolved) {\r\n var errors = [];\r\n\r\n // loop through the callbacks and execute.\r\n for (var index = 0; index < callbacks.length; index++) {\r\n try {\r\n callbacks[index](resolvedArgs);\r\n } catch (e) {\r\n // delay propagation of errors until all callbacks have been notified\r\n errors.push(e);\r\n }\r\n }\r\n\r\n // clear the callbacks array\r\n callbacks = [];\r\n\r\n // throw the error collection if we received any.\r\n if (errors.length) {\r\n throw errors;\r\n }\r\n }\r\n }\r\n\r\n // resolves the promise\r\n function resolve() {\r\n isResolved = true;\r\n resolvedArgs = arguments;\r\n flushCallbacks();\r\n }\r\n\r\n // the promise function\r\n function promise() {\r\n return {\r\n\r\n // the happy path for callbacks\r\n then:\r\n function (callback) {\r\n callbacks.push(callback);\r\n flushCallbacks();\r\n },\r\n\r\n // subscribers listen here for when the promise was denied or resolved.\r\n always:\r\n function () {\r\n return this.then(arguments);\r\n }\r\n };\r\n }\r\n\r\n // lets return our deferred object that.\r\n return {\r\n // the promise object\r\n promise: promise,\r\n // the resolve method.\r\n resolve: resolve\r\n };\r\n}\r\n\r\n// create our visibility deferred\r\n// @ts-ignore\r\nvar visibilityDeferred = new Deferred();\r\n\r\n// initialize the visibility property name\r\nvar visibilityProperty = getHiddenPropertyName();\r\n\r\n// Flag to check if unload event has been triggered\r\n// Page Visibility API removed 'unloaded' visbility state and now reports 'hidden' when browser is being unloaded.This breaks the wasBrowserHiddenAtLeastOnce logic.\r\n// Flag is used to detect & ignore state change if unload event caused the 'hidden' visibilityState.\r\n// Chrome 56 (as of 2/21/2017) has implemented the spec change and would probably land in Edge in the future releases.\r\n// Link to spec - https://w3c.github.io/page-visibility/\r\n\r\nvar isUnloadEventInProgress = false;\r\n\r\nif (canUseDOM() && window.addEventListener) {\r\n window.addEventListener('beforeunload', function () {\r\n isUnloadEventInProgress = true;\r\n });\r\n}\r\n\r\n//flag to indicate if Browser was hidden even once in a page impression\r\nvar wasBrowserHidden = false;\r\n\r\nif (canUseDOM() && visibilityProperty) {\r\n // this preserves our vendor prefix\r\n var evtname = visibilityProperty.replace(/[H|h]idden/, '') + 'visibilitychange';\r\n document.addEventListener(evtname, visibilityChanged);\r\n}\r\n\r\n// call it immediately to prime the deferred if we are already visibile.\r\nvisibilityChanged();\r\n\r\n// returns the property name for document.hidden, which can contain the browser specific prefix, or null if not defined.\r\n// hidden is part of modern browsers visibility api.\r\nfunction getHiddenPropertyName() {\r\n if (!canUseDOM()) {\r\n return null;\r\n }\r\n\r\n var prefixes = ['webkit', 'moz', 'ms', 'o'];\r\n\r\n // if 'hidden' is natively supported just return it\r\n if (typeof document.hidden !== 'undefined') {\r\n return 'hidden';\r\n }\r\n\r\n // otherwise loop over all the known prefixes until we find one\r\n for (var index = 0; index < prefixes.length; index++) {\r\n var prospectivePropertyName = prefixes[index] + 'Hidden';\r\n if ((prospectivePropertyName) in document) {\r\n return prospectivePropertyName;\r\n }\r\n }\r\n}\r\n\r\n// determines if the page is hidden.\r\nfunction isHidden() {\r\n if (!canUseDOM() || !visibilityProperty) {\r\n return false;\r\n }\r\n\r\n return document[visibilityProperty];\r\n}\r\n\r\n// handler for visibility changes. Determines if we should resolve the promise.\r\nfunction visibilityChanged() {\r\n if (!isHidden()) {\r\n visibilityDeferred.resolve();\r\n } else {\r\n // create a new one so we can fire when we are back.\r\n // @ts-ignore\r\n visibilityDeferred = new Deferred();\r\n //flag indicates that browser was minimised or hidden during the page impression\r\n\r\n if (!isUnloadEventInProgress) {\r\n wasBrowserHidden = true;\r\n }\r\n }\r\n}\r\n\r\n// returns if the browser was hidden at least once\r\nfunction wasBrowserHiddenAtLeastOnce() {\r\n return (wasBrowserHidden ? 1 : 0);\r\n}\r\n\r\n// determines if an element is currently visible to the user\r\nfunction isElementTrulyVisible(element, windowRight, windowLeft, windowHeight) {\r\n if (isHidden() || !element) {\r\n return false;\r\n }\r\n\r\n windowHeight = windowHeight || getInnerHeight();\r\n windowRight = windowRight || getInnerWidth();\r\n\r\n if (!windowLeft && windowLeft !== 0) {\r\n windowLeft = 0;\r\n var contentArea = document.getElementById('content');\r\n\r\n if (contentArea) {\r\n var contentRect = contentArea.getBoundingClientRect();\r\n windowRight = contentRect.right;\r\n windowLeft = contentRect.left;\r\n }\r\n }\r\n\r\n var boxVisible = false;\r\n\r\n var rec = element.getBoundingClientRect();\r\n\r\n var elementHeightVisible = (rec.top >= 0 || rec.bottom >= 0) && (rec.top < windowHeight || rec.bottom < windowHeight);\r\n var elementWidthVisible = (rec.left >= windowLeft || rec.right > windowLeft) && (rec.left < windowRight || rec.right <= windowRight);\r\n\r\n boxVisible = rec.height !== 0 || rec.width !== 0;\r\n\r\n return boxVisible && (elementHeightVisible && elementWidthVisible);\r\n}\r\n\r\n///Notifies the callee when we return to visibile state. Returns immediately if we are currently visible\r\n///A JQuery Promise that resolves when visible\r\nfunction notifyWhenPageVisible() {\r\n // return our current promise.\r\n return visibilityDeferred.promise();\r\n}\r\n\r\n// return the visibility object being returned\r\nexport default {\r\n // returns true if the document is hidden\r\n isHidden: isHidden,\r\n // returns a jquery promise that resolves the next time (or immediately) the page becomes visible\r\n notifyWhenPageVisible: notifyWhenPageVisible,\r\n // returns true if the page is visible && element within viewport\r\n isElementTrulyVisible: isElementTrulyVisible,\r\n //returns true if page was hidden even once\r\n wasBrowserHiddenAtLeastOnce: wasBrowserHiddenAtLeastOnce\r\n};\r\n","// © Microsoft Corporation. All rights reserved.\r\n\r\n// Tracking information aggregate object.\r\n// used by all the tracking systems to get common info sent via tracking\r\n\r\nimport dom from \"./dom\";\r\nimport extend from \"./extend\";\r\nimport { headData, getCookie, appEnvironment } from \"@msnews/core\";\r\nimport mediator from \"./mediator\";\r\nimport pageInstance from \"./pageInstance\";\r\nimport telemetryConstants from \"./telemetryconstants\";\r\nimport { telemetryDataTypes } from \"./telemetryDataTypes\";\r\nimport { telemetryReadyCallback } from \"./telemetryReadyCallback\";\r\nimport visibilityService from \"./visibility\";\r\nimport { AccountType, AadAccountType } from \"@msnews/experiences-constants\";\r\nimport { canUseDOM, getLocationHref } from \"@msnews/isomorphic-util\";\r\n\r\nvar clientClientId;\r\nvar browserWidth;\r\nvar browserHeight;\r\n// eventIndex[0] is for the first rid and eventIndex[1] is for the current rid\r\nvar eventIndex = [0, 0];\r\nvar isFirstEventIndex = true;\r\nvar eventTransientCustomTags = {}; //eventTransientCustomTags is applied to each specific events.\r\n\r\nvar modules = [];\r\nvar baseUrl = \"\";\r\nvar clientIdTypeValue;\r\n\r\nvar userDefinedCustomTags = {};\r\n\r\nfunction Module(element, visible) {\r\n this.element = element;\r\n this.visible = visible;\r\n\r\n if (this.visible) {\r\n this.compress = function () {\r\n var moduleTelemetryData = this.element.getAttribute(\"data-m\");\r\n try {\r\n return JSON.parse(moduleTelemetryData);\r\n } catch (e) {\r\n return moduleTelemetryData;\r\n }\r\n };\r\n }\r\n}\r\n\r\nfunction getBrowserSize() {\r\n /// \r\n /// Helper function used to get the browser height and width\r\n /// \r\n\r\n browserWidth = (canUseDOM()) ? (window.outerWidth || document.documentElement.clientWidth) : 0;\r\n browserHeight = (canUseDOM()) ? (window.outerHeight || document.documentElement.clientHeight) : 0;\r\n\r\n}\r\n\r\nfunction getWindowHeight() {\r\n /// \r\n /// Get current browser viewpane height\r\n /// \r\n\r\n if (!canUseDOM()) {\r\n return 0;\r\n }\r\n\r\n return window.innerHeight ||\r\n document.documentElement.clientHeight ||\r\n document.body.clientHeight || 0;\r\n}\r\n\r\nfunction getWindowYscroll() {\r\n /// \r\n /// Get current absolute window scroll position\r\n /// \r\n\r\n if (!canUseDOM()) {\r\n return 0;\r\n }\r\n\r\n return window.pageYOffset ||\r\n document.body.scrollTop ||\r\n document.documentElement.scrollTop || 0;\r\n}\r\n\r\nfunction getDocHeight() {\r\n /// \r\n /// Get current absolute document height\r\n /// \r\n\r\n if (!canUseDOM()) {\r\n return 0;\r\n }\r\n\r\n return Math.max(\r\n document.body.scrollHeight || 0,\r\n document.documentElement.scrollHeight || 0,\r\n document.body.offsetHeight || 0,\r\n document.documentElement.offsetHeight || 0,\r\n document.body.clientHeight || 0,\r\n document.documentElement.clientHeight || 0\r\n );\r\n}\r\n\r\nfunction getDefaultCustomTags() {\r\n /// \r\n /// Get the default custom tags.\r\n /// \r\n var defaultCustomTags = {};\r\n\r\n if (!canUseDOM()) {\r\n return defaultCustomTags;\r\n }\r\n\r\n // @ts-ignore\r\n if (window && window.adsEnabled != null) {\r\n // @ts-ignore\r\n defaultCustomTags.adoni = +window.adsEnabled;\r\n }\r\n\r\n return defaultCustomTags;\r\n}\r\n\r\nfunction joinTelemetryValues(separator, leftTmplValue, rightTemplValue) {\r\n /// Composes a new template value from an exisiting one and a new one.\r\n /// The separator.\r\n /// The left tmpl value string, may be null or empty.\r\n /// The right tmpl value string, may be null or empty.\r\n /// \r\n /// A new string composed of the right and left values with a semi-colon separator if both values are non-null and not empty.\r\n /// If the right templ value is null or empty (or otherwise falsey), the left templ value is returned.\r\n /// If only the left templ value is falsey, only the right templ value is returned.\r\n /// \r\n\r\n return rightTemplValue\r\n ? leftTmplValue\r\n ? [leftTmplValue, rightTemplValue].join(separator)\r\n : rightTemplValue\r\n : leftTmplValue;\r\n}\r\n\r\nfunction joinTelemetryValuesForTmpl(separator, currentTmplValue, newTmplValue) {\r\n /// Composes a new template value from an exisiting one and a new one.\r\n /// The separator.\r\n /// The currentTmplValue, may be null or empty.\r\n /// The newTmplValue, may be null or empty.\r\n /// \r\n /// A new string composed of the newTmplValue and currentTmplValue with a semi-colon separator if both values are non-null and not empty.\r\n /// If the newTmplValue is null or empty (or otherwise falsey), the currentTmplValue is returned.\r\n /// If only the currentTmplValue is falsey, only the newTmplValue is returned.\r\n /// Duplicate key will override the value even if the value is empty string.\r\n /// Value without any key will be ignored.\r\n /// \r\n\r\n if (!newTmplValue) {\r\n return currentTmplValue ? currentTmplValue : \"\";\r\n }\r\n if (!currentTmplValue) {\r\n return newTmplValue ? newTmplValue : \"\";\r\n }\r\n var combinedTelemetryVal = {};\r\n var array = [];\r\n var isDuplicateKeyExist = false;\r\n var newTmplValueSplited = newTmplValue.split(separator);\r\n for (var i = 0; i < newTmplValueSplited.length; i++) {\r\n var newKeyVal = newTmplValueSplited[i].split(\":\");\r\n if (newKeyVal[0]) {\r\n if (!isDuplicateKeyExist) {\r\n // 'currentTmplValue' will be split out only if 'newTmplValue' contains any key which is exist in 'currentTmplValue'\r\n if (newKeyVal[0] && (currentTmplValue.indexOf(newKeyVal[0]) != -1)) {\r\n var currentTmplValueSplited = currentTmplValue.split(separator);\r\n for (var j = 0; j < currentTmplValueSplited.length; j++) {\r\n if (currentTmplValueSplited[j]) {\r\n var currentKeyVal = currentTmplValueSplited[j].split(\":\");\r\n combinedTelemetryVal[currentKeyVal[0]] = currentKeyVal[1];\r\n }\r\n }\r\n isDuplicateKeyExist = true;\r\n }\r\n }\r\n combinedTelemetryVal[newKeyVal[0]] = newKeyVal[1];\r\n }\r\n }\r\n\r\n var val = \"\";\r\n for (var key in combinedTelemetryVal) {\r\n if (key) {\r\n if (val !== \"\") {\r\n val += separator;\r\n }\r\n\r\n val += key;\r\n if (combinedTelemetryVal[key]) {\r\n val += \":\" + combinedTelemetryVal[key];\r\n }\r\n }\r\n }\r\n\r\n if (!isDuplicateKeyExist && currentTmplValue) {\r\n val = val ? val + separator + currentTmplValue : currentTmplValue;\r\n }\r\n\r\n return val;\r\n}\r\n\r\nexport var trackInfo = {\r\n notrack: \"notrack\",\r\n cmSeparator: \">\",\r\n // TODO: (nubenja) To be removed. Make sure all dependecies get removed\r\n defaultModule: \"body\",\r\n defaultFormHeadline: \"[form submit]\",\r\n piitxt: \"data-piitxt\",\r\n piiurl: \"piiurl\",\r\n wrapperId: \"wrapper\",\r\n MUIDCookie: \"MUID\", // This is used for client id. If MUID exists, then we will use MUID as client id otherwise use request id.\r\n gestureKey: \"touch_gesture\",\r\n gestureType:\r\n {\r\n tap: \"tap\",\r\n rightclick: \"rightclick\"\r\n },\r\n eventTypes:\r\n {\r\n click: \"click\",\r\n nonNavClckEvt: \"click_nonnav\",\r\n submit: \"submit\",\r\n contextmenu: \"contextmenu\",\r\n mouseenter: \"mouseenter\",\r\n imprUpdate: \"impr_update\",\r\n adPlay: \"AdPlay\",\r\n contentPlay: \"ContentPlay\",\r\n videoClickNonNav: \"Click_Non-nav\"\r\n },\r\n imprUpdateMechanisms:\r\n {\r\n load: \"load\",\r\n scroll: \"scroll\",\r\n auto: \"auto\",\r\n tap: \"tap\",\r\n resize: \"resize\",\r\n swipe: \"swipe\",\r\n partial: \"partial\",\r\n view: \"view\"\r\n },\r\n event: {},\r\n sitePage: {},\r\n userStatic: {},\r\n overrideClientParams: {},\r\n persistOverriddenParams: false,\r\n customTags: getDefaultCustomTags() || {}, //customTags is applied to all events.\r\n trackingDisabled: false, // used by NTP/DHP to disable tracking in \"enterprise mode\",\r\n shouldFireTelemetry: function () {\r\n /// \r\n /// Return whether telemetry beacons should get fired or not.\r\n /// \r\n\r\n return !this.trackingDisabled;\r\n },\r\n appErrorEnabled: true, // should not send app error when user is navigating away from page.\r\n shouldFireAppError: function () {\r\n /// \r\n /// Return whether app error beacons should get fired or not.\r\n /// \r\n\r\n return this.appErrorEnabled;\r\n },\r\n getCurrentTime: function () {\r\n /// \r\n /// gets the current timestamp\r\n /// \r\n /// \r\n /// \r\n return +new Date();\r\n },\r\n timeToInteract: function (eventTime?) {\r\n /// \r\n /// gets the time to interact for the event by substracting it from navigationStart.\r\n /// https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming/navigationStart\r\n /// \r\n /// \r\n /// \r\n if (!canUseDOM()) {\r\n return 0;\r\n }\r\n\r\n var eventTiming;\r\n if (eventTime) {\r\n eventTiming = eventTime;\r\n } else {\r\n eventTiming = trackInfo.getCurrentTime();\r\n }\r\n if (eventTiming && window.performance && window.performance.timing && window.performance.timing.navigationStart) {\r\n return (eventTiming - window.performance.timing.navigationStart);\r\n }\r\n },\r\n // This will be deprecated in upcoming iterations, so please use telemetryDataTypes.TelemetryType. Please follow these new definitions: https://microsoft.sharepoint.com/:x:/t/IDXTelemetryandDatafabric/EbMw_1_6OCtNtyXkbb2YcjoBxY2iFtWOW-kfQZLJmnErEw\r\n telemetryModuleTypes:\r\n {\r\n Undefined: 0,\r\n Header: 1,\r\n Footer: 2,\r\n topNavBar: 3,\r\n navBar: 4,\r\n dropDown: 5,\r\n Section: 6,\r\n Carousel: 7,\r\n Module: 8,\r\n searchBox: 9,\r\n inputBox: 10,\r\n actionButton: 11,\r\n Interaction: 12,\r\n Headline: 13,\r\n Navigation: 14,\r\n Entity: 15,\r\n structuredData: 16,\r\n appStore: 17,\r\n appLaunch: 18,\r\n cmsPromotions: 19,\r\n microsoftWebStore: 20,\r\n xboxStore: 21,\r\n officeStore: 22,\r\n appInstall: 23,\r\n PartnerLinks: 24,\r\n SponsoredContent: 25\r\n },\r\n contentPlacedBySource:\r\n {\r\n Editorial: 0,\r\n PersonalizationAlgo: 1,\r\n BingAlgo: 2,\r\n Taboola: 3,\r\n Outbrain: 4\r\n },\r\n telemetryDataAttribute: \"data-m\",\r\n telemetryHLAttribute: \"data-hl\",\r\n client:\r\n {\r\n // client id\r\n clientId: function () {\r\n if (!clientClientId && clientClientId !== \"\") {\r\n // @ts-ignore\r\n clientClientId = getCookie(trackInfo.MUIDCookie) || trackInfo.sitePage.requestId || \"\";\r\n }\r\n\r\n return clientClientId;\r\n },\r\n clientIdType: function () {\r\n // @ts-ignore\r\n if (clientClientId === trackInfo.sitePage.requestId) {\r\n clientIdTypeValue = \"activityId\";\r\n } else if (clientClientId !== \"\") {\r\n clientIdTypeValue = \"muid\";\r\n }\r\n\r\n return clientIdTypeValue;\r\n },\r\n gesture: function () {\r\n var element = dom.getTarget(trackInfo.event);\r\n if (element && element[trackInfo.gestureKey]) {\r\n return element[trackInfo.gestureKey]\r\n }\r\n var trackInfoEvent: any = trackInfo.event;\r\n if (trackInfoEvent) {\r\n if ((trackInfoEvent.originalEvent && trackInfoEvent.originalEvent == 'contextmenu') || trackInfoEvent.ctrlKey || trackInfoEvent.shiftKey) {\r\n return trackInfo.gestureType.rightclick\r\n }\r\n }\r\n return ''\r\n },\r\n\r\n getMuid: function () {\r\n return getCookie(trackInfo.MUIDCookie);\r\n },\r\n\r\n getAnonCookieName: function () {\r\n /// \r\n /// Gets the anonCookieName from the headData (hybrid) or the appEnvironment. ANON for Pages with manual sign in, else APP_ANON.\r\n /// \r\n /// \r\n /// \r\n return headData.AnonCookieName || appEnvironment.AuthCookieName;\r\n },\r\n\r\n getSsoComplete: function () {\r\n /// \r\n /// Gets the SsoComplete state from the headData. true if sso completes otherwise false.\r\n /// Used only for prime. DHP/NTP does not have anon.\r\n /// \r\n /// \r\n /// \r\n\r\n if (headData.SsoComplete && (headData.SsoComplete + '').toLowerCase() === 'true') {\r\n return 1;\r\n }\r\n\r\n return 0;\r\n },\r\n\r\n /**\r\n * Gets the Aad state from the headData or appEnvironment\r\n * @returns {number} The AAD authenticated state.\r\n */\r\n getAadAuthentication: function (): AadAccountType {\r\n // Check the head data for the hybrid page\r\n if (headData.AadState === true) {\r\n // AAD AuthenticatedState\r\n return AadAccountType.AadAccount;\r\n } else if (headData.AadState === false) {\r\n // AAD UnauthenticatedState\r\n return AadAccountType.NonAadAccount;\r\n }\r\n\r\n // Check the headData first for the Hybrid page, else use appEnvironment\r\n const accountType: AccountType = appEnvironment.AccountType;\r\n const isAadAccount: boolean = (accountType === AccountType.AAD)\r\n return isAadAccount ? AadAccountType.AadAccount : AadAccountType.NonAadAccount;\r\n },\r\n\r\n /**\r\n * Gets the device orientation\r\n */\r\n orientation: function () {\r\n if (!canUseDOM()) {\r\n return \"\";\r\n }\r\n return screen.width > screen.height ? \"landscape\" : \"portrait\";\r\n },\r\n\r\n OTFTelemetry: function (mechanism?: string): void {\r\n {\r\n if (!canUseDOM()) {\r\n return;\r\n }\r\n\r\n if (typeof mechanism === \"undefined\") {\r\n // mechanism is only undefined on page load.\r\n // Peregrine already sends an impression update on page load through\r\n // EntryPoint.connector#onVisuallyReady, so this one can be skipped.\r\n return;\r\n }\r\n\r\n if (mechanism == null) {\r\n mechanism = \"\";\r\n }\r\n\r\n modules = [];\r\n var telemetryData = document.body.querySelectorAll(\"[data-m]\");\r\n\r\n // calculate windowRight, windowLeft, and windowHeight upfront to avoid multiple calls to getBoundingClientRect() and\r\n // reduce performance impact\r\n var windowHeight;\r\n var windowRight;\r\n\r\n windowHeight = window.innerHeight;\r\n windowRight = window.innerWidth;\r\n\r\n var windowLeft = 0;\r\n var contentArea = document.getElementById(\"content\");\r\n\r\n if (contentArea) {\r\n var contentRect = contentArea.getBoundingClientRect();\r\n windowRight = contentRect.right;\r\n windowLeft = contentRect.left;\r\n }\r\n\r\n // Everything inside infopane is considered visible as long as infopane itself is visible due to auto rotation\r\n // First get infopane itself (\"mip\" is for infopane in mid-level, \"sip\" is for spartan infopane).\r\n var infopane = document.body.querySelector(\".ip\") || document.body.querySelector(\".mip\") || document.body.querySelector(\".sip\");\r\n var infopaneVisible = infopane && trackInfo.telemetryTracking.isVisible(infopane, windowRight, windowLeft, windowHeight);\r\n\r\n // cache result of IsVisible() to reduce performance impact caused by getBoundingClientRect()\r\n var visibles = [];\r\n for (var i = 0; i < telemetryData.length; i++) {\r\n // if otfUseViewportForVisibility is true, we will use the whole viewport to determine the visibility of the element\r\n if (telemetryData[i].getAttribute(\"data-otfUseViewportForVisibility\") === \"true\") {\r\n // @ts-ignore window.width\r\n visibles.push(trackInfo.telemetryTracking.isVisible(telemetryData[i], window.width, 0, windowHeight, infopaneVisible));\r\n } else {\r\n visibles.push(trackInfo.telemetryTracking.isVisible(telemetryData[i], windowRight, windowLeft, windowHeight, infopaneVisible));\r\n }\r\n }\r\n\r\n for (var j = 0; j < telemetryData.length; j++) {\r\n modules.push(new Module(telemetryData[j], visibles[j]));\r\n }\r\n var context = trackInfo.telemetryTracking.formatModules();\r\n // @ts-ignore\r\n if (context && ((context.e && context.e.length > 0) || (context.vc && context.vc.length > 0))) {\r\n trackInfo.telemetryTracking.sendImprUpdateEvent(mechanism, context);\r\n }\r\n }\r\n },\r\n\r\n // browser height\r\n height: function () {\r\n if (!browserHeight) {\r\n getBrowserSize();\r\n }\r\n return browserHeight;\r\n },\r\n\r\n pageTitle: function () {\r\n /**\r\n * returns the page title\r\n */\r\n if (!canUseDOM()) {\r\n return \"\";\r\n }\r\n\r\n return document.title;\r\n },\r\n\r\n // entire url of the current page\r\n // use a function because we may virtually change the page by manipulating the history stack\r\n // (for example, in a gallery when changing slides).\r\n pageUrl: function () {\r\n var pageUrl = getLocationHref();\r\n // @ts-ignore\r\n var ocid = trackInfo.sitePage.msnocid;\r\n if (ocid) {\r\n // This is the DHP or NTP page - need to add the OCID to pageUrl.\r\n var hasQueryString = pageUrl.indexOf(\"?\") >= 0;\r\n pageUrl = hasQueryString ? pageUrl + \"&\" : pageUrl + \"?\";\r\n pageUrl = pageUrl + \"ocid=\" + ocid;\r\n }\r\n\r\n return pageUrl;\r\n },\r\n\r\n // URL of the document that loaded the current document\r\n // first check for an override property that we may set during virtual page changes, and if\r\n // that's not set, use the real referrer.\r\n // @ts-ignore\r\n referrer: function () {\r\n if (!canUseDOM()) {\r\n return \"\";\r\n }\r\n\r\n // @ts-ignore\r\n return document.referrerOverride || document.referrer;\r\n },\r\n // screen resolution\r\n screenResolution: function () {\r\n if (!canUseDOM()) {\r\n return \"\";\r\n }\r\n\r\n var screenResolution = [screen.width, screen.height].join(\"x\");\r\n\r\n return screenResolution;\r\n },\r\n\r\n userAgent: function () {\r\n /**\r\n * gets the user agent\r\n */\r\n if (!canUseDOM()) {\r\n return \"\";\r\n }\r\n\r\n return navigator.userAgent;\r\n },\r\n\r\n // browser width\r\n width: function () {\r\n if (!browserWidth) {\r\n getBrowserSize();\r\n }\r\n return browserWidth;\r\n },\r\n //sends the Browser Hidden Field on window\r\n wasBrowserHiddenAtLeastOnce: function () {\r\n return visibilityService.wasBrowserHiddenAtLeastOnce();\r\n }\r\n },\r\n userDynamic:\r\n {\r\n timeStamp: function () {\r\n /// \r\n /// generates the timestamp for the url\r\n /// \r\n /// \r\n /// \r\n return trackInfo.getCurrentTime();\r\n },\r\n slideType: function () {\r\n /// \r\n /// Finds the slide type if any (and if a slide)\r\n /// \r\n /// \"halfpane\" or null\r\n if (!canUseDOM()) {\r\n return null;\r\n }\r\n\r\n // @ts-ignore\r\n var elem = trackInfo.event.target;\r\n var halfpaneClass = \"halfpane\";\r\n while (elem && dom.name(elem) != \"SECTION\") {\r\n if (dom.name(elem) == \"LI\" && dom.containsClass(elem, halfpaneClass)) {\r\n return halfpaneClass;\r\n }\r\n elem = dom.parent(elem);\r\n }\r\n return null;\r\n },\r\n firstEventIndex: function () {\r\n /// \r\n /// The first rid event index.\r\n /// This value gets incremented for each event of the first rid that is triggered\r\n /// \r\n /// \r\n /// Sequential number of the current event\r\n /// \r\n\r\n return ++eventIndex[0];\r\n },\r\n currentEventIndex: function () {\r\n /// \r\n /// The current event index.\r\n /// This value gets incremented for each event that is triggered\r\n /// \r\n /// \r\n /// Sequential number of the current event\r\n /// \r\n if (isFirstEventIndex) {\r\n return ++eventIndex[0];\r\n } else {\r\n return ++eventIndex[1];\r\n }\r\n },\r\n requestId: function () {\r\n /// \r\n /// return the requestId\r\n /// \r\n return pageInstance.getRequestId() || (trackInfo.sitePage).requestId;\r\n },\r\n resetEventIndex: function () {\r\n /// \r\n /// reset the event index\r\n /// \r\n eventIndex[1] = 0;\r\n isFirstEventIndex = false;\r\n }\r\n },\r\n custom:\r\n {\r\n addCustomTags: function () {\r\n /// \r\n /// Adds the custom tags inside the otf beacon url.\r\n /// \r\n /// \r\n /// \r\n\r\n var combinedTags = trackInfo.customTags;\r\n combinedTags = extend({}, trackInfo.customTags, eventTransientCustomTags);\r\n //reset so the next events gets its own transient custom tags\r\n eventTransientCustomTags = {};\r\n return JSON.stringify(combinedTags);\r\n },\r\n addCustomTagsForClickEvent: function () {\r\n /// \r\n /// Adds the custom tags for click event inside the otf beacon url.\r\n /// \r\n /// \r\n /// \r\n\r\n var customTags = \"\";\r\n if (typeof userDefinedCustomTags === \"object\") {\r\n for (var key in userDefinedCustomTags) {\r\n customTags = JSON.stringify(userDefinedCustomTags);\r\n break;\r\n }\r\n }\r\n //reset so the next events gets its own custom tags\r\n userDefinedCustomTags = {};\r\n return customTags;\r\n }\r\n },\r\n telemetryTracking:\r\n {\r\n setupParameters: function (evt) {\r\n var trackInfoSitePage = trackInfo.sitePage;\r\n const anonckName: string = appEnvironment.AuthCookieName as string;\r\n\r\n var result = {\r\n evt: evt,\r\n // @ts-ignore\r\n rid: pageInstance.getRequestId() || trackInfoSitePage.requestId,\r\n // @ts-ignore\r\n di: trackInfoSitePage.domainId,\r\n clid: trackInfo.client.clientId(),\r\n issso: trackInfo.client.getSsoComplete(),\r\n aadState: trackInfo.client.getAadAuthentication()\r\n };\r\n\r\n // @ts-ignore\r\n if (trackInfoSitePage.afd) {\r\n // @ts-ignore\r\n result.afd = trackInfoSitePage.afd;\r\n }\r\n\r\n if (anonckName) {\r\n // @ts-ignore\r\n result.anoncknm = anonckName;\r\n }\r\n\r\n // Set the new page parameters for all post events\r\n // @ts-ignore\r\n result[\"pg.p\"] = trackInfo.sitePage.page_product;\r\n // @ts-ignore\r\n result[\"pg.t\"] = trackInfo.sitePage.page_type;\r\n // @ts-ignore\r\n result[\"pg.n\"] = trackInfo.sitePage.page_name;\r\n // @ts-ignore\r\n result[\"pg.c\"] = trackInfo.sitePage.page_configuration;\r\n\r\n return result;\r\n },\r\n sendImprUpdateEvent: function (mechanism, modules, topLevelContainerType?) {\r\n // Prevent empty impr_update\r\n if (!canUseDOM() || modules == undefined || ((modules.e == undefined || modules.e.length <= 0) && (modules.vc == undefined || modules.vc.length <= 0))) {\r\n return;\r\n }\r\n\r\n var parameters = this.setupParameters(trackInfo.eventTypes.imprUpdate);\r\n if (parameters) {\r\n // mechanism to trigger the viewability event. ex: load, swipe, click, tap, scroll, and resize\r\n parameters[\"mech\"] = mechanism;\r\n\r\n parameters.winht = getWindowHeight();\r\n parameters.docht = getDocHeight();\r\n parameters.scrollOff = getWindowYscroll();\r\n\r\n parameters.wbh = visibilityService.wasBrowserHiddenAtLeastOnce();\r\n parameters[\"e1\"] = modules;\r\n // @ts-ignore\r\n parameters.tmpl = trackInfo.sitePage.templ;\r\n // @ts-ignore\r\n parameters.mkt = trackInfo.sitePage.localeCode;\r\n if (mechanism === trackInfo.imprUpdateMechanisms.scroll) {\r\n parameters.TTI = trackInfo.timeToInteract();\r\n }\r\n\r\n // @ts-ignore\r\n if (window && window.adsEnabled != null) {\r\n // @ts-ignore\r\n parameters.adoni = +window.adsEnabled;\r\n }\r\n\r\n // Feed parameters\r\n // @ts-ignore\r\n if (trackInfo.sitePage.feedId) {\r\n // @ts-ignore\r\n parameters.fid = trackInfo.sitePage.feedId;\r\n // @ts-ignore\r\n parameters.fn = trackInfo.sitePage.feedName;\r\n // @ts-ignore\r\n parameters.ft = trackInfo.sitePage.feedType;\r\n }\r\n\r\n // @ts-ignore\r\n if (trackInfo.sitePage.flightid) {\r\n // @ts-ignore\r\n parameters.flightid = trackInfo.sitePage.flightid;\r\n }\r\n\r\n // If toplevel container is passed to impression update then create a new parameter which will eventually be replaced by tlc.\r\n if (topLevelContainerType) {\r\n parameters.tlcType = topLevelContainerType;\r\n }\r\n\r\n this.sendUpdate(parameters);\r\n }\r\n },\r\n isVisible: function (element, windowRight?, windowLeft?, windowHeight?, infopaneVisible?) {\r\n if (!element) {\r\n return false;\r\n }\r\n\r\n return visibilityService.isElementTrulyVisible(element, windowRight, windowLeft, windowHeight);\r\n },\r\n formatModules: function () {\r\n var formattedModules = [];\r\n\r\n for (var index in modules) {\r\n var module = modules[index];\r\n if (module && module.compress) {\r\n var mData = module.compress();\r\n\r\n // TODO: (nubenja) Remove this once data-m.y is deprecated\r\n // Convertion from telemetryType (data-m.y) to telemetryContentType and telemetryContentAction (data-m.ct/ca)\r\n if (mData && mData.y && !mData.ct) {\r\n var ct = telemetryDataTypes.getTelemetryContentType(mData.y);\r\n\r\n if (ct) {\r\n mData.ct = ct;\r\n }\r\n }\r\n\r\n formattedModules.push(mData);\r\n }\r\n\r\n }\r\n\r\n var context = {};\r\n if (formattedModules && formattedModules.length > 0) {\r\n // @ts-ignore\r\n context.e = formattedModules;\r\n }\r\n\r\n return context;\r\n },\r\n sendUpdate: function (parameters) {\r\n // For the preloaded pages, the code inside requestPageRevealAsync is called when page is revealed,\r\n // otherwise it is called right away.\r\n telemetryReadyCallback((): void => {\r\n if (!trackInfo.shouldFireTelemetry()) {\r\n return;\r\n }\r\n\r\n // An ad call may send this without setting up the baseUrl correctly.\r\n // @ts-ignore\r\n baseUrl = baseUrl || (trackInfo.sitePage || {}).otfURL;\r\n if (!baseUrl) {\r\n // The value of sitePage.otfURL was empty!\r\n return;\r\n }\r\n\r\n if (!parameters) {\r\n return;\r\n }\r\n\r\n // increment the event index and set the idx parameter\r\n parameters.idx = trackInfo.userDynamic.currentEventIndex();\r\n\r\n // An ad call may send this without setting up the baseUrl correctly.\r\n var beaconData = {\r\n url: baseUrl,\r\n requestType: telemetryConstants.POST,\r\n // @ts-ignore\r\n eventType: parameters.evt || trackInfo.eventTypes.impressionUpdate,\r\n params: parameters,\r\n trackingType: telemetryConstants.OTF\r\n };\r\n\r\n mediator.pub(telemetryConstants.FireTelemetry, beaconData);\r\n });\r\n }\r\n },\r\n updateTemplValue: function (templToAdd) {\r\n /// Updates the templ value with the specified value\r\n /// The templ value to add\r\n\r\n trackInfo.updateSitePage(templToAdd);\r\n },\r\n updateSitePage: function (templ, flightId?, requestId?) {\r\n /// Updates the trackInfo.sitePage values with the specified values\r\n /// The new templ value to add\r\n /// The new flightId to add\r\n /// The new trackInfo object\r\n\r\n var currentSitePage = trackInfo.sitePage;\r\n if (!currentSitePage) {\r\n currentSitePage = trackInfo.sitePage = {};\r\n }\r\n\r\n // @ts-ignore\r\n var currentFlightIds = currentSitePage.flightid;\r\n if (flightId && (!currentFlightIds || (currentFlightIds.indexOf(flightId) < 0))) {\r\n // @ts-ignore\r\n currentSitePage.flightid = joinTelemetryValues(\",\", currentFlightIds, flightId);\r\n }\r\n // @ts-ignore\r\n currentSitePage.templ = joinTelemetryValuesForTmpl(\";\", currentSitePage.templ, templ);\r\n\r\n if (requestId) {\r\n // @ts-ignore\r\n currentSitePage.requestId = requestId;\r\n }\r\n },\r\n updatePageName: function (pageName, overridePageType) {\r\n /// Updates the pageName and pageType in the trackInfo.SitePage for the given pageName\r\n /// The pageName to update\r\n /// Boolean flag to determine to override pagetype or not. Default is true\r\n var doOverridePageType = overridePageType;\r\n if (overridePageType === undefined) {\r\n doOverridePageType = true;\r\n }\r\n\r\n var telemetryPageName = telemetryDataTypes.getTelemetryPageInfo(pageName);\r\n if (telemetryPageName && trackInfo.sitePage) {\r\n // @ts-ignore\r\n trackInfo.sitePage.page_name = telemetryPageName.PageName;\r\n if (doOverridePageType) {\r\n // @ts-ignore\r\n trackInfo.sitePage.page_type = telemetryPageName.PageType;\r\n }\r\n }\r\n },\r\n updateFeedMetadata: function (feedId, feedName, feedType) {\r\n /// Updates the feedid, feedname and feedType in the trackInfo.SitePage for the given feed\r\n /// The feedId to update\r\n /// The feedName to update\r\n /// The feedType to update\r\n if (feedId) {\r\n // @ts-ignore\r\n trackInfo.sitePage.feedId = feedId;\r\n if (feedName) {\r\n // @ts-ignore\r\n trackInfo.sitePage.feedName = feedName;\r\n }\r\n\r\n if (feedType) {\r\n // @ts-ignore\r\n trackInfo.sitePage.feedType = feedType;\r\n }\r\n }\r\n },\r\n updatePagePivot: function (pagePivot) {\r\n /// Updates the pagePivot in the trackInfo.SitePage\r\n /// The pagePivot to update\r\n if (pagePivot === telemetryDataTypes.TelemetryPagePivot.Undefined) {\r\n // @ts-ignore\r\n trackInfo.sitePage.pagePivot = null;\r\n } else if (telemetryDataTypes.validateTelemetryDataType(telemetryDataTypes.TelemetryPagePivot, pagePivot)) {\r\n // @ts-ignore\r\n trackInfo.sitePage.pagePivot = pagePivot;\r\n }\r\n },\r\n updateReferrer: function (referrer, referrerType) {\r\n /// Updates referrer and referrerType\r\n /// referrer\r\n /// TelemetryContentType of the referrer\r\n if (canUseDOM() && referrer) {\r\n // @ts-ignore\r\n document.referrerOverride = referrer;\r\n\r\n if (referrerType && telemetryDataTypes.validateTelemetryDataType(telemetryDataTypes.TelemetryContentType, referrerType) &&\r\n referrerType != telemetryDataTypes.TelemetryContentType.Undefined) {\r\n // @ts-ignore\r\n trackInfo.sitePage.referrerType = referrerType;\r\n }\r\n }\r\n },\r\n setCustomTagsForClickEvent: function (key, value) {\r\n /// \r\n /// Set user defined custom tags.\r\n /// \r\n /// The key\r\n /// The value\r\n if (key && value && value != undefined) {\r\n userDefinedCustomTags[key] = value;\r\n }\r\n },\r\n updatePageUserTypeAndUserId: function (userType, userId) {\r\n /// \r\n /// Set user id and user id type.\r\n /// \r\n /// The user id type\r\n /// The user id\r\n\r\n // @ts-ignore\r\n trackInfo.sitePage.pageUserId = null;\r\n // @ts-ignore\r\n trackInfo.sitePage.pageUserType = null;\r\n\r\n if (telemetryDataTypes.validateTelemetryDataType(telemetryDataTypes.TelemetryUserType, userType)) {\r\n // @ts-ignore\r\n trackInfo.sitePage.pageUserType = userType;\r\n\r\n if (userId) {\r\n // @ts-ignore\r\n trackInfo.sitePage.pageUserId = userId;\r\n }\r\n }\r\n },\r\n trackCustomProperty: function (key, value) {\r\n /// Adds or updates the transient per event custom tags properties\r\n /// key to add\r\n /// value to add\r\n if (key && value != undefined) {\r\n key = key.toLowerCase();\r\n eventTransientCustomTags[key] = value;\r\n }\r\n },\r\n updateExtendedFlightId: function (namespace, flightIds) {\r\n /// Adds or updates extended flightId\r\n /// Partner namespace enum\r\n /// flightIds to add\r\n\r\n var currentSitePage = trackInfo.sitePage;\r\n\r\n if (currentSitePage && flightIds && namespace &&\r\n telemetryDataTypes.validateTelemetryDataType(telemetryDataTypes.TelemetryPartnerNamespace, namespace)) {\r\n // @ts-ignore\r\n currentSitePage.extflightid = joinTelemetryValuesForTmpl(\"|\", currentSitePage.extflightid, namespace + \":\" + flightIds);\r\n }\r\n }\r\n};\r\n","// © Microsoft Corporation. All rights reserved.\r\n\r\n/// Adds functions events.bind and events.unbind that bind and unbind events\r\n\r\nexport default {\r\n bind: bindEvent,\r\n unbind: unbindEvent\r\n};\r\n\r\nfunction bindEvent(element, type, handler) {\r\n if (element.addEventListener) {\r\n element.addEventListener(type, handler, false);\r\n }\r\n}\r\n\r\nfunction unbindEvent(element, type, handler) {\r\n if (element.removeEventListener) {\r\n element.removeEventListener(type, handler, false);\r\n }\r\n}\r\n","// © Microsoft Corporation. All rights reserved.\r\n\r\n// /**\r\n// * Provides common XSS escaping implementations.\r\n// * @returns {Escape}\r\n// */\r\n// regex that looks for all the various dangerous HTML characters that we want to escape.\r\n// every character in this match MUST have a corresponding map entry in sequenceValues,\r\n// or it will be removed from the string we are escaping.\r\nvar sequenceTokens = /[\"&'\\/<>]/g;\r\n\r\n// mapping object from the character we want to replace to the escape sequence for it.\r\n// make sure that every character in the above regex is represented with an escape\r\n// sequence in this object.\r\nvar sequenceValues = {\r\n \"\\\"\": \""\",\r\n \"&\": \"&\",\r\n \"'\": \"'\",\r\n \"/\": \"/\",\r\n \"<\": \"<\",\r\n \">\": \">\"\r\n};\r\n\r\nexport default {\r\n url: encodeURI,\r\n urlPart: encodeURIComponent,\r\n html: escapeHtml\r\n};\r\n\r\n/**\r\n * Encodes a text string as a valid Uniform Resource Identifier (URI)\r\n * @param {string} text - A value representing an encoded URI.\r\n * @return {string}\r\n */\r\nfunction encodeURI(text) {\r\n // be sure to use a NON-STRICT comparison here so we get both null AND undefined.\r\n // will ALWAYS return a string; empty string if passed null or undefined.\r\n return (text != null && encodeURI(text)) || \"\";\r\n}\r\n\r\n/**\r\n * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).\r\n * @param {string} text - A value representing an encoded URI component.\r\n * @returns {string}\r\n */\r\nfunction encodeURIComponent(text) {\r\n // be sure to use a NON-STRICT comparison here so we get both null AND undefined.\r\n // will ALWAYS return a string; empty string if passed null or undefined.\r\n // @ts-ignore\r\n return (text != null && window.encodeURIComponent(text)) || \"\";\r\n}\r\n\r\n/**\r\n * Encodes a text string as a valid html, by mapping object from the character we want to replace to the escape sequence for it.\r\n * @param {string} text - The text\r\n * @returns {string}\r\n */\r\nfunction escapeHtml(text) {\r\n // make sure text is a string (string concate with an empty string forces the type),\r\n // and then run a regex that finds all the characters we want to escape, and passes\r\n // each character to a function expression that looks up the appropriate replacement\r\n // sequence from an object map (key = character to replace, value = escaped sequence).\r\n // be sure to use a NON-STRICT comparison here so we get both null AND undefined.\r\n // will ALWAYS return a string; empty string if passed null or undefined.\r\n return (text != null && (\"\" + text).replace(sequenceTokens, function (ch) {\r\n return sequenceValues[ch] || \"\";\r\n })) || \"\";\r\n}\r\n","// © Microsoft Corporation. All rights reserved.\r\n\r\n// /**\r\n// * The navigatio module\r\n// * @param {Escape} escape - The escape.\r\n// * @param {Document} document - The document.\r\n// * @returns {Navigation}\r\n// */\r\nimport escape from \"./escape\";\r\n\r\n/** @type {Navigation} - The navigation object. */\r\nvar navigation = {\r\n getUrl: function(relativeUrl) {\r\n if (navigation.filter) {\r\n // @ts-ignore\r\n return navigation.filter(relativeUrl);\r\n }\r\n\r\n return relativeUrl;\r\n },\r\n navigate: function (url, replace) {\r\n if (navigation.filter) {\r\n // @ts-ignore\r\n url = navigation.filter(url);\r\n }\r\n if (replace) {\r\n location.replace(url);\r\n } else {\r\n location.href = url;\r\n }\r\n },\r\n getHostName: getHostName,\r\n parseUrl: parseUrl,\r\n isLocal: function (url) {\r\n var hostname = getHostName(url);\r\n return !hostname || (location.hostname == hostname);\r\n },\r\n getParams: getParams,\r\n getParamsFromUrl: function (url, supportMultiple?, decodeComponents?) {\r\n var queryString = url.split(\"?\")[1];\r\n return getParams(queryString, supportMultiple, decodeComponents);\r\n },\r\n // merge query string parameters with a set of new parameters. This does not support duplicate keys\r\n mergeQueryStringParams: function (url, newParams) {\r\n if (newParams) {\r\n var urlParts = url.split(\"?\");\r\n var params;\r\n if (urlParts[1]) {\r\n // get the existing parameters, then merge in the\r\n // new ones, overwriting any values that previously existed.\r\n params = getParams(urlParts[1], false, true);\r\n for (var param in newParams) {\r\n params[param] = newParams[param];\r\n }\r\n } else {\r\n // no existing parameters, so just use the new ones directly\r\n params = newParams;\r\n }\r\n\r\n // now rebuild the url from the parameters\r\n url = urlParts[0];\r\n var separator = \"?\";\r\n for(var param in params) {\r\n if (params[param]) {\r\n url += separator + escape.urlPart(param) + \"=\" + escape.urlPart(params[param]);\r\n } else {\r\n url += separator + escape.urlPart(param);\r\n }\r\n separator = \"&\";\r\n }\r\n }\r\n\r\n return url;\r\n },\r\n filter: null\r\n};\r\n\r\nexport default navigation;\r\n\r\nfunction getParams(queryString, supportMultiple?, decodeComponents?) {\r\n var decodeURIComponentAndPlusSign = function (val) {\r\n val = val.replace(/\\+/g, \" \");\r\n val = decodeURIComponent(val);\r\n return val;\r\n };\r\n\r\n var params = {};\r\n if (queryString) {\r\n // remove hash part.\r\n queryString = queryString.split(\"#\")[0];\r\n var queryArray = queryString.split(\"&\");\r\n for (var ndx = 0; ndx < queryArray.length; ndx++) {\r\n var parts = queryArray[ndx].split(\"=\");\r\n var key = parts[0];\r\n var value = parts[1];\r\n\r\n if (decodeComponents) {\r\n key = decodeURIComponentAndPlusSign(key);\r\n if (value) {\r\n value = decodeURIComponentAndPlusSign(value);\r\n }\r\n }\r\n\r\n if (supportMultiple) {\r\n if (!params[key]) {\r\n params[key] = [];\r\n }\r\n\r\n params[key].push(value);\r\n } else {\r\n params[key] = value;\r\n }\r\n }\r\n }\r\n\r\n return params;\r\n}\r\n\r\n/**\r\n * Parse the given URL.\r\n * For example, \"http://example.com:3000/pathname/?search=test#hash\" returns:\r\n * {\r\n * protocol: \"http:\",\r\n * host: \"example.com:3000\",\r\n * hostName: \"example.com\",\r\n * port: \"3000\",\r\n * path: \"/pathname/\",\r\n * hash: \"#hash\",\r\n * query: \"?search=test\",\r\n * origin: \"http://example.com:3000\"\r\n * }\r\n * @param {string} url\r\n * @returns {{ protocol: string, host: string, hostName: string, port: string, path: string, hash: string, query: string, origin: string }}\r\n */\r\nfunction parseUrl(url) {\r\n var anchor = document.createElement(\"a\");\r\n anchor.href = url;\r\n\r\n return {\r\n protocol: anchor.protocol,\r\n host: anchor.host,\r\n hostName: anchor.hostname,\r\n port: anchor.port,\r\n path: anchor.pathname,\r\n hash: anchor.hash,\r\n query: anchor.search,\r\n origin: anchor.origin\r\n };\r\n}\r\n\r\nfunction getHostName(url) {\r\n return parseUrl(url).hostName;\r\n}\r\n","// © Microsoft Corporation. All rights reserved.\r\n\r\n// Provides Tracking helper methods unique to the NTP and DHP pages.\r\n//\r\n// Need to add OCID to all links that go to the MSN page.\r\n// Also need to add the OCID, CCID and TDUID values to all links that launch the store.\r\n//\r\n// Provide method to modify trackInfo data prior to TrackPage call usage.\r\n\r\nimport { getLocationHost } from \"@msnews/isomorphic-util\";\r\nimport pageInstance from \"./pageInstance\";\r\nimport { trackInfo } from \"./trackInfo\";\r\n\r\nvar displayOptionsHelper = {};\r\nvar browserAccess = {};\r\n\r\nconst locationHost = getLocationHost();\r\nvar domainParts = locationHost ? locationHost.split(\".\").reverse() : [];\r\nvar hostDomain = domainParts.length > 1 ? domainParts[1] + \".\" + domainParts[0] : locationHost; // handle an internal address\r\nvar windowsStoreHost = \"ms-windows-store\";\r\nvar domainMatchPattern = /[a-z][a-z0-9+\\-.]*:\\/\\/([a-z0-9\\-._~%!$&'()*+,;=]+@)?([a-z0-9\\-._~%]+|\\[[a-z0-9\\-._~%!$&'()*+,;=:]+\\])/i;\r\nvar ocidMatchPattern = /[&?]ocid=([^&]+)/i;\r\nvar ccidMatchPattern = /[&?]ccid=([^&]+)/i;\r\nvar classIdentifierForHlTrackingInApps = \".hltxt\";\r\n\r\n// The following values will not change during the life of the page.\r\n// @ts-ignore\r\nvar msnOcid = trackInfo.sitePage.msnocid || \"\";\r\n// @ts-ignore\r\nvar storeOcid = trackInfo.sitePage.storeocid || \"\";\r\n\r\nfunction addOcidToHref(tHref, target, event) {\r\n /// Adds OCID value to MSN URLs and to Store URLs\r\n /// The href found in track.js\r\n /// The DOM element being tracked.\r\n /// The event.\r\n\r\n // MSN OCID is only applied on NTP and DHP pages.\r\n if (!tHref || !target) {\r\n return;\r\n }\r\n\r\n // in case sitePage was not filled when this resolved, get and save the msnocid and storeocid values.\r\n if (!msnOcid) {\r\n // @ts-ignore\r\n msnOcid = trackInfo.sitePage.msnocid;\r\n }\r\n\r\n if (!storeOcid) {\r\n // @ts-ignore\r\n storeOcid = trackInfo.sitePage.storeocid;\r\n }\r\n\r\n // For the store (Prime and ServiceUI), we need to test the scheme - URL portion before \"://\".\r\n var endOfScheme = tHref.indexOf(\"://\");\r\n var locationOfStore = tHref.indexOf(windowsStoreHost);\r\n var isStoreUrl = endOfScheme > 0 && locationOfStore >= 0 && locationOfStore < endOfScheme;\r\n\r\n // Need to account for ocid and ccid being of mixed case. e.g. parameters.ocid returns null if the\r\n // param is \"Ocid\".\r\n var ocidMatch = tHref.match(ocidMatchPattern);\r\n var ccidMatch = tHref.match(ccidMatchPattern);\r\n\r\n // Fix 1764836. Ad links (e.g. EMS Ads) already contain their own ocid (not ours) on the URL. We need to make sure to keep their ocid value\r\n // and add the ccid value. Some Ads use uppercase OCID parameter.\r\n // NOTE: JS doesn't have negative lookback so selecting values directly doesn't work. Using [1]\r\n // to read the second match which will be the value.\r\n var ocidOnUrl = ocidMatch && ocidMatch[1];\r\n var ccidOnUrl = ccidMatch && ccidMatch[1];\r\n var emsOnUrl;\r\n\r\n if (ocidOnUrl && ccidOnUrl) {\r\n // If this is an EMS Ad it will already have the ocid and ccid values. We need to add our other values.\r\n var initStoreUrl = tHref;\r\n var emsMatch = tHref.match(/[&?]ocid=(ems\\.)/i);\r\n emsOnUrl = emsMatch && emsMatch[1];\r\n\r\n // See if we are an EMS link and do not have emsadid on the URL. If already have one do not add another.\r\n if (emsOnUrl && !initStoreUrl.match(/[=_]emsadid\\./i)) {\r\n initStoreUrl = addCcidToStoreUrl(initStoreUrl.replace(ccidMatchPattern, ''), ccidMatch[1]);\r\n }\r\n\r\n // This has already been modified.\r\n return;\r\n }\r\n\r\n var hashIndex = tHref.indexOf(\"#\");\r\n var hashValue = \"\";\r\n\r\n // Do not modify Prime page URLs - maintain this as only DHP/NTP code.\r\n // If we do not have an ocid on the url.\r\n if (!ocidOnUrl) {\r\n // TopSites uses an href of \"#\" to indicate it should not be a navigation, but it gets changed to the NTP Url with # at the end.\r\n // Some Prime websites also use the # character and we should not affect them, so make this check within the ServiceUI IFDEF.\r\n if (hashIndex === tHref.length - 1) {\r\n return;\r\n }\r\n\r\n // We need the msnocid value if this is the NTP/DHP page.\r\n if (msnOcid) {\r\n var domainMatch = domainMatchPattern.exec(tHref);\r\n var hrefHostName = domainMatch && domainMatch[2];\r\n var linkUrl = tHref;\r\n if (hrefHostName) {\r\n var isMsnDomain = hrefHostName.indexOf(hostDomain) >= 0;\r\n if (isMsnDomain) {\r\n if (hashIndex >= 0) {\r\n hashValue = tHref.substring(hashIndex, tHref.length);\r\n linkUrl = tHref.substring(0, hashIndex);\r\n }\r\n\r\n linkUrl += linkUrl.indexOf('?') > 0 ? \"&\" : \"?\";\r\n linkUrl = linkUrl + \"ocid=\" + msnOcid;\r\n target.href = linkUrl + (hashValue || \"\");\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // If we don't have the store OCID value, just return. We can't add the ocid if we don't have the correct value.\r\n if (!ocidOnUrl && !storeOcid) {\r\n return;\r\n }\r\n\r\n if (isStoreUrl) {\r\n // Bug 1763626 - clicking Top Sites Open App link multiple times added OCID/CCID multiple times.\r\n // If there was a hash at the end of the URL, we used to add the parameters after the hash, and it was\r\n // not recognized as parameters by navigation.getParamsFromUrl(tHref).\r\n // If there is a hash value, save it, and re-add it at the end.\r\n if (hashIndex >= 0) {\r\n hashValue = tHref.substring(hashIndex, tHref.length);\r\n tHref = tHref.substring(0, hashIndex);\r\n }\r\n\r\n // We know that the store URL will have a query string parameter (the ID or PFN).\r\n // If the url already has an ocid on it, don't add another.\r\n var storeUrl = tHref;\r\n if (!ocidOnUrl) {\r\n storeUrl += \"&ocid=\" + storeOcid;\r\n }\r\n\r\n storeUrl = addCcidToStoreUrl(storeUrl, emsOnUrl);\r\n target.href = storeUrl + hashValue;\r\n }\r\n}\r\n\r\nfunction addCcidToStoreUrl(tHref, emsAdId) {\r\n ///Adds Ccid to the Store url.\r\n /// The href found in track.js\r\n /// The optional value for the emsid ccid value\r\n /// Returns Store Url with ccid.\r\n\r\n var ccidMatch = tHref.match(ccidMatchPattern);\r\n var ccidOnUrl = ccidMatch && ccidMatch[1];\r\n var hashIndex = tHref.indexOf(\"#\");\r\n var hashValue = \"\";\r\n\r\n // If the url already has an ccid on it, don't add another, but make sure it has MUID and RID. EMS Ads already have a ocid and ccid values.\r\n if (!ccidOnUrl) {\r\n // TODO: refactor this code , so we don't have to calculate index at different places\r\n if (hashIndex >= 0) {\r\n hashValue = tHref.substring(hashIndex, tHref.length);\r\n tHref = tHref.substring(0, hashIndex);\r\n }\r\n\r\n // We know that the store URL will have a query string parameter (the ID or PFN).\r\n // If the url already has an ocid on it, don't add another.\r\n var storeUrl = tHref;\r\n storeUrl += \"&ccid=\";\r\n\r\n var ccidData = [];\r\n\r\n // If sent an emsAdId value add it first.\r\n if (emsAdId) {\r\n ccidData.push(\"emsadid.\" + emsAdId);\r\n }\r\n\r\n // @ts-ignore\r\n var webig = pageInstance.getRequestId() || trackInfo.sitePage.requestId;\r\n if (webig) {\r\n ccidData.push(\"webig.\" + webig);\r\n }\r\n\r\n var muid = trackInfo.client.clientId();\r\n if (muid) {\r\n ccidData.push(\"muid.\" + muid);\r\n }\r\n\r\n return storeUrl + ccidData.join(\"_\") + hashValue;\r\n }\r\n\r\n return tHref;\r\n}\r\n\r\nfunction modifyValuesForTrackPage() {\r\n ///Modifies specific trackInfo values for TrackPage, to identify user settings.\r\n /// Returns whether we need to prevent the ComScore beacon from firing.\r\n var noContent = \"_NoContent\";\r\n var topSites = \"-topsites\";\r\n var oneBox = \"-onebox\";\r\n\r\n // If we need to prevent sending a beacon, return true.\r\n var preventComscore = false;\r\n\r\n if (trackInfo.sitePage) {\r\n var hasContent = true;\r\n // when there is rive content\r\n\r\n if (!hasContent) {\r\n // We cannot send a ComScore beacon if we have no content.\r\n preventComscore = true;\r\n }\r\n }\r\n\r\n // add personalization specific properties if they haven't been created before.\r\n if (trackInfo.client\r\n // @ts-ignore\r\n && !trackInfo.client.personalization) {\r\n // add any Spartan DHP/NTP specific personalization related properties to this object\r\n var props;\r\n\r\n // write out the value only if we have any properties set in the property bag\r\n if (props) {\r\n // @ts-ignore\r\n trackInfo.client.personalization = JSON.stringify(props);\r\n }\r\n }\r\n\r\n return { preventComscore: preventComscore };\r\n}\r\n\r\nfunction attachTaglineClickHandler(element) {\r\n /// Modify \"hl\" before the trackEvent.\r\n /// The element (or jquery collection) to process.\r\n /// We do not want to require jquery.\r\n\r\n // If this code becomes needed for Prime, change the IFDEF. Also using a switch if this is a perf issue.\r\n}\r\n\r\nfunction getActionResult(action, isSuccessful) {\r\n /// \r\n /// Gets the action result name based on the action and the fact whether it was successfully executed or not\r\n /// \r\n /// \r\n /// The name of the action (e.g. sethome, addfavorite,...)\r\n /// \r\n /// \r\n /// Flag to indicate whether the action was successfully executed or not\r\n /// \r\n return isSuccessful ? action + \"_succeeded\" : action + \"_failed\";\r\n}\r\n\r\nexport default {\r\n addOcidToHref: addOcidToHref,\r\n modifyValuesForTrackPage: modifyValuesForTrackPage,\r\n attachTaglineClickHandler: attachTaglineClickHandler,\r\n addCcidToStoreUrl: addCcidToStoreUrl,\r\n getActionResult: getActionResult\r\n};\r\n","// © Microsoft Corporation. All rights reserved.\r\n\r\n// Implements multiple parallel tracking engine which gets its tracking\r\n// url from the specific implementation using defined functions.\r\n//\r\n// if called multiple times during page interaction (representing significant content\r\n// update), the trackPage method will also publish a \"pageView\" mediator event that third-party\r\n// tracking code can hook to register their refresh page-view beacons.\r\n\r\n/// \r\n/// This function implements multiple parallel tracking engine which gets its tracking\r\n/// url from the specific implementation using defined functions.\r\n/// \r\n/// The tracking info JS library\r\n/// The JS library that provides functionality similar to jQuery's extend function\r\n/// The dom manipulation JS library\r\n/// The JS library for getting cookies\r\n/// The JS library for setting cookies\r\n/// The events object\r\n/// The window object\r\n/// The document object.\r\n/// The mediator JS library\r\n/// Provides access to current navigation URL and helpers\r\n/// Collection of data passed from the server\r\n/// The page instance object\r\n/// Cross browser support for json parse\r\n/// The tracking helper object\r\n/// The storage object\r\n/// The performance marker object\r\n/// The telemetry constant object\r\n/// The JS library that provides functionality for callback when page is revealed. Used for preload scenarios.\r\n/// The datatypes for telemetry library\r\n/// The webStorage object\r\n/// The track object\r\n\r\nimport { Severity, logger } from \"@msnews/diagnostics\";\r\nimport { canUseDOM, getLocationHost, getLocationHref, getLocationProtocol } from \"@msnews/isomorphic-util\";\r\n\r\nimport dom from \"./dom\";\r\nimport events from \"./events\";\r\nimport extend from \"./extend\";\r\nimport mediator from \"./mediator\";\r\nimport navigation from \"./navigation\";\r\nimport pageInstance from \"./pageInstance\";\r\nimport { sessionStorage } from \"@msnews/core\";\r\nimport telemetryConstants from \"./telemetryconstants\";\r\nimport { telemetryDataTypes } from \"./telemetryDataTypes\";\r\nimport { telemetryReadyCallback } from \"./telemetryReadyCallback\";\r\nimport { trackInfo } from \"./trackInfo\";\r\nimport trackingHelper from \"./trackingHelper\";\r\n\r\n// shortcuts to dom functions\r\nvar attr = dom.attr;\r\nvar domName = dom.name;\r\nvar getParent = dom.parent;\r\nvar getChildren = dom.children;\r\nvar recipients = [];\r\nvar refreshPageLoad;\r\nvar doc = canUseDOM() ? document : null;\r\nvar errorLogInterval = 5 * 60 * 1000;\r\n\r\nvar lastClickedTarget = null;\r\n\r\n// After 500 ms, lastClickedTarget will be set as null.\r\nvar clickTargetResetTimeoutInMs = 500;\r\n\r\n// Token to find the custom event token passed on the url. the format would be like this - http://www.msn.com/#tevt=click_nonnav;tobjid=....;...\r\nvar tEvtTag = 'tevt=';\r\n\r\n// If there are more than one tags(name value pair), then the name value pair should be separated with ;\r\nvar regExpEventName = /#tevt=([A-Za-z0-9]+_[A-Za-z0-9]+)(;*)/g;\r\n\r\n// an array of ids that represent what we've already sent to the service as updates\r\n// TODO (rohjain): Remove this cache as we don't need two caches one in trackInfo and another here to maintain for impression updates cache.\r\nvar impressionCache = [];\r\n\r\n// error report interval in milliseconds (5 min = 5 * 60 * 1000)\r\nvar errorReportInterval = telemetryConstants.logSamplingRate || 5 * 60 * 1000;\r\n\r\nmediator.sub(\"logerror\", logErrorEvent);\r\n\r\nfunction trackAll(implementationMethod) {\r\n /// After createReport returns a report, this method fires tracking call for each registered tracking system\r\n\r\n var implementation;\r\n\r\n var parameters = canUseDOM() ? navigation.getParamsFromUrl(getLocationHref()) : {};\r\n\r\n // loop through each implementation\r\n for (var ndx = 0; ndx < recipients.length; ndx++) {\r\n implementation = recipients[ndx];\r\n var defOpts = implementation.defaultOpts;\r\n if (defOpts.disableOnAutoRefresh) {\r\n var names = defOpts.disableOnAutoRefresh.split(';');\r\n var isInList = false;\r\n for (var i = 0; i < names.length; i++) {\r\n if (names[i] == defOpts.id) {\r\n isInList = true;\r\n break;\r\n }\r\n }\r\n\r\n // @ts-ignore\r\n if (isInList && parameters.AR) {\r\n // In case this was generated early, reset to false so the next pageTrack() call will generate the beacon.\r\n defOpts.isGeneratedEarly = false;\r\n continue;\r\n }\r\n }\r\n\r\n if (defOpts.isGeneratedEarly) {\r\n // Don't generate this time, but reset to false so the next pageTrack() call will generate the beacon.\r\n defOpts.isGeneratedEarly = false;\r\n } else if (implementation) {\r\n // TODO: (nubenja) Remove samplingRate everywhere (implementation.samplingRate)\r\n var result = implementation[implementationMethod]();\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction logErrorEvent(errorObject) {\r\n // /// Track error event\r\n // ///\r\n // /// errorObject- defined in errorCategory\r\n // ///\r\n // if (!errorObject)\r\n // {\r\n // return;\r\n // }\r\n // var cacheKey = errorObject.errId + errorObject.errSource;\r\n\r\n // var lastErrorTime = storage.getItem(cacheKey, true);\r\n // var currentTime = new Date().getTime();\r\n // if (lastErrorTime && (currentTime - lastErrorTime) <= errorLogInterval)\r\n // {\r\n // return;\r\n // }\r\n\r\n // trackInfo.event = {\r\n // type: \"app_error\"\r\n // };\r\n // trackInfo.report = errorObject;\r\n // logDiag(JSON.stringify(errorObject), true);\r\n\r\n // trackAll(\"getEventTrackingUrl\");\r\n // storage.setItem(cacheKey, currentTime, true);\r\n}\r\n\r\nfunction depthFirstChildAttribute(element, attributeName, skipElement?) {\r\n /// \r\n /// find the first attribute from the element in the depthFirst manner\r\n /// skips the element if it is specified in elementName\r\n /// \r\n var children = getChildren(element) || [];\r\n var ndx = 0;\r\n var altValue;\r\n\r\n attributeName = attributeName || \"alt\";\r\n\r\n for (; ndx < children.length; ndx++) {\r\n altValue = attr(children[ndx], attributeName)\r\n || depthFirstChildAttribute(children[ndx], attributeName, skipElement);\r\n\r\n if (altValue && !(skipElement == children[ndx].localName)) {\r\n return altValue;\r\n }\r\n }\r\n}\r\n\r\nfunction findCMValue(element) {\r\n /// \r\n /// create a list of id values separated with '>'\r\n /// walking from generic to specific\r\n /// ending at (not including) wrapper on the generic side\r\n /// \r\n if (element) {\r\n var parent = getParent(element);\r\n var curId = attr(parent, \"id\");\r\n var previousCM;\r\n if (trackInfo.wrapperId == curId) {\r\n return;\r\n }\r\n previousCM = findCMValue(parent);\r\n if (previousCM && curId) {\r\n return [previousCM, curId].join(trackInfo.cmSeparator);\r\n }\r\n return curId || previousCM;\r\n }\r\n}\r\n\r\nfunction getContentElementIndex(element) {\r\n /// \r\n /// count number of trackable elements upto and including the\r\n /// element passed into the function\r\n /// stop at the first parent with an id\r\n /// do not use anything with a new id\r\n /// indexing all elements with the same CM value\r\n /// indexing starts at 1\r\n /// 0 means there is no parent with an id\r\n /// \r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n var parent = getParent(element);\r\n var children;\r\n var count = 0;\r\n var ndx = 0;\r\n\r\n // go up first, incase there is no parent id so we don't have to waste a lot of work\r\n if (!attr(parent, \"id\")) {\r\n count = getContentElementIndex(parent);\r\n if (count) {\r\n // by default getContentElementIndex will count the element passed in\r\n // subtract 1 to offset this\r\n count--;\r\n } else {\r\n // only stays 0 if there is no parent or no parent with an id\r\n // bubble up the expected 0 value\r\n return 0;\r\n }\r\n }\r\n\r\n children = getChildren(parent) || [];\r\n for (; ndx < children.length; ndx++) {\r\n if (children[ndx] == element) {\r\n count++;\r\n break;\r\n }\r\n count += countAllTrackableLinks(children[ndx]);\r\n }\r\n\r\n return count;\r\n}\r\n\r\nfunction countAllTrackableLinks(element) {\r\n /// \r\n /// returns count of all trackable elements[contains href and notrack]\r\n /// \r\n var count = 0;\r\n var ndx = 0;\r\n var children;\r\n if (element && !attr(element, \"id\")) {\r\n children = getChildren(element) || [];\r\n if (attr(element, \"href\") && !attr(element, trackInfo.notrack)) {\r\n count++;\r\n }\r\n for (; ndx < children.length; ndx++) {\r\n count += countAllTrackableLinks(children[ndx]);\r\n }\r\n }\r\n return count;\r\n}\r\n\r\nfunction getChildByTargetElement(element, tagName, depth) {\r\n /// \r\n /// Finds the first child element within the provided element with the desired tagName.\r\n /// Goes through all the children/grandchildren to the provided depth (1 = children, 2 = first grandchildren)\r\n /// \r\n /// Element with tagName if found, null if not\r\n if (depth && element && tagName) {\r\n if (element.tagName == tagName) {\r\n // They passed in an element with the correct tagName value.\r\n return element;\r\n }\r\n\r\n var children = getChildren(element) || [];\r\n for (var ndx = 0, dataLength = children.length; ndx < dataLength; ndx++) {\r\n if (children[ndx].tagName == tagName) {\r\n return children[ndx];\r\n } else {\r\n var subChild = getChildByTargetElement(children[ndx], tagName, depth - 1);\r\n if (subChild) {\r\n return subChild;\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction sendSinglePageViewBeacon(beaconId) {\r\n /// \r\n /// This method generates a single beacon without firing any other beacons.\r\n /// Do NOT call track.trackPage() if this is used, or you will generate two of these beacons.\r\n /// \r\n /// \r\n /// The single beacon to generate.\r\n /// \r\n\r\n if (beaconId) {\r\n // loop through each implementation\r\n var implementation;\r\n var implementationMethod = \"getPageViewTrackingUrl\";\r\n var ndx = 0;\r\n\r\n for (; ndx < recipients.length; ndx++) {\r\n implementation = recipients[ndx];\r\n if (implementation.defaultOpts.id === beaconId) {\r\n var result = implementation[implementationMethod]();\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction sendPageViewCandidate() {\r\n /// \r\n /// This fires a request for a page view candidate file required by ComScore.\r\n /// Call this directly, if you are generating new page views which include ComScore and\r\n /// need to identify it as a page view candidate.\r\n /// \r\n\r\n var pvUrl = getLocationProtocol() + \"//\" + getLocationHost(); + \"/pv.xml\";\r\n if (!trackInfo.shouldFireTelemetry()) {\r\n return;\r\n }\r\n\r\n var beaconData = {\r\n url: pvUrl,\r\n requestType: telemetryConstants.GET,\r\n trackingType: telemetryConstants.Comscore\r\n };\r\n\r\n mediator.pub(telemetryConstants.FireTelemetry, beaconData);\r\n}\r\n\r\nfunction trackAdEvent(adParams) {\r\n ///\r\n /// This method tracks the adimpr_update event.\r\n /// Call getEventTrackingUrl to fire the tracking call.\r\n ///\r\n ///\r\n /// adParams- defined as follows\r\n /// adParams = {\r\n /// dst: dapStartTime,\r\n /// den: dapEndTime,\r\n /// id: placementId,\r\n /// pg: pageGroup\r\n /// w: width,\r\n /// h: height,\r\n /// status: status,\r\n /// anAd: appNexusId\r\n /// seqid: sequenceId\r\n /// sdk: sdk\r\n /// fen: finalEndTime\r\n /// };\r\n ///\r\n\r\n trackInfo.event = { type: \"adimpr_update\" };\r\n var adWidth = parseInt(adParams.w);\r\n var adHeight = parseInt(adParams.h);\r\n\r\n // @ts-ignore\r\n trackInfo.report =\r\n {\r\n ///\r\n /// This creates a tracking report.\r\n /// It does NOT send the report, nor does it perform any navigation.\r\n ///\r\n ///\r\n /// Report object that is structured as follows:\r\n /// report = {\r\n /// dst: dapStartTime,\r\n /// den: dapEndTime,\r\n /// id: placementId,\r\n /// pg: pageGroup\r\n /// w: width,\r\n /// h: height,\r\n /// status: status,\r\n /// anAd: appNexusId\r\n /// seqid: sequenceId\r\n /// sdk: sdk\r\n /// fen: finalEndTime\r\n /// };\r\n /// \r\n\r\n dst: adParams.dst,\r\n den: adParams.den,\r\n id: adParams.id,\r\n pg: adParams.pg,\r\n w: isNaN(adWidth) ? 0 : adWidth,\r\n h: isNaN(adHeight) ? 0 : adHeight,\r\n status: adParams.status,\r\n anAd: adParams.anAd,\r\n seqid: adParams.seqid,\r\n sdk: adParams.sdk,\r\n fen: adParams.fen\r\n };\r\n\r\n trackAll(\"getEventTrackingUrl\");\r\n}\r\n\r\nfunction trackAppErrorEventInternal(errorParams) {\r\n ///\r\n /// This method tracks the app_error event.\r\n /// Call getEventTrackingUrl to fire\r\n /// the tracking call.\r\n ///\r\n ///\r\n /// errorParams- defined in errorCategory\r\n ///\r\n\r\n if (!errorParams) {\r\n return;\r\n }\r\n\r\n // Check if it should fire app error.\r\n if (!trackInfo.shouldFireAppError()) {\r\n return;\r\n }\r\n\r\n if (!errorParams.severity) {\r\n errorParams.severity = Severity.Alert;\r\n }\r\n\r\n setAppErrorTrackInfo(errorParams);\r\n trackAll(\"getEventTrackingUrl\");\r\n}\r\n\r\nfunction setAppErrorTrackInfo(errorParams) {\r\n ///Sets the track information object\r\n\r\n var errEventObj = { type: \"app_error\" };\r\n trackInfo.event = errEventObj;\r\n\r\n // @ts-ignore\r\n var report = trackInfo.report =\r\n {\r\n ///\r\n /// This creates a tracking report.\r\n /// It does NOT send the report, nor does it perform any navigation.\r\n ///\r\n ///\r\n ///\r\n /// Error Id - defined in errorCategory\r\n ///\r\n ///\r\n /// Error Message - defined in errorCategory\r\n ///\r\n ///\r\n /// Error Source - defined in errorCategory\r\n ///\r\n //\r\n /// severity - defined in AppErrorTracker.ts\r\n ///\r\n ///\r\n /// Pb (property bag) - defined in AppErrorTracker.ts\r\n ///\r\n ///\r\n /// Report object that is structured as follows:\r\n /// report = {\r\n /// errId: ErrorId,\r\n /// errMsg: ErrorMsg,\r\n /// errMsg: ErrorSource,\r\n /// severity: severity,\r\n /// pb: pb\r\n /// };\r\n /// \r\n errId: errorParams.id,\r\n errMsg: errorParams.message,\r\n errSource: errorParams.source,\r\n severity: errorParams.severity,\r\n pb: errorParams.pb\r\n };\r\n\r\n logDiag(JSON.stringify(report), true);\r\n}\r\n\r\nfunction trackFormSubmitEvent(event, element, destination, headline, module, index, campaign) {\r\n /// \r\n /// This method tracks form events.\r\n /// This methods try to gets the search term.\r\n /// Call trackEvent\r\n /// \r\n /// \r\n /// Event object\r\n /// \r\n /// \r\n /// element that was clicked or target of the event. Passed to createReport.\r\n /// \r\n /// \r\n /// destination url to use instead of computing. Passed to createReport.\r\n /// \r\n /// \r\n /// headline to use instead of computing. Passed to createReport.\r\n ///\t\r\n ///\t\r\n /// content module string to be used instead of computing. Passed to createReport.\r\n /// \r\n /// \r\n /// content index string to be used instead of computing. Passed to createReport.\r\n /// \r\n /// \r\n /// campaign id to be used instead of computing. Passed to createReport.\r\n /// \r\n\r\n ///Helper functions.\r\n function isSearchForm() {\r\n var searchFormId = \"srchfrm\";\r\n if (!element && event) {\r\n element = event.target;\r\n }\r\n\r\n // if element not does not exist or is non trackable\r\n if (!element || attr(element, trackInfo.notrack)) {\r\n return false;\r\n }\r\n return element.id === searchFormId;\r\n }\r\n\r\n function getSearchTerm() {\r\n var searchBox = document.getElementById(\"q\");\r\n if (searchBox) {\r\n // @ts-ignore\r\n return searchBox.value;\r\n }\r\n }\r\n //End of helper functions\r\n\r\n if (isSearchForm()) {\r\n headline = getSearchTerm();\r\n }\r\n\r\n trackEvent(event, element, destination, headline, module, index, campaign);\r\n}\r\n\r\nfunction trackEvent(event, element?, destination?, headline?, module?, index?, campaign?, contentAction?) {\r\n /// \r\n /// This method tracks events.\r\n /// This methods loops through each implementation,\r\n /// Call getEventTrackingUrl and call that url to fire\r\n /// the tracking call.\r\n /// \r\n /// \r\n /// Event object\r\n /// \r\n /// \r\n /// element that was clicked or target of the event. Passed to createReport.\r\n /// \r\n /// \r\n /// destination url to use instead of computing. Passed to createReport.\r\n /// \r\n /// \r\n /// headline to use instead of computing. Passed to createReport.\r\n /// \r\n /// \r\n /// content module string to be used instead of computing. Passed to createReport.\r\n /// \r\n /// \r\n /// content index string to be used instead of computing. Passed to createReport.\r\n /// \r\n /// \r\n /// campaign id to be used instead of computing. Passed to createReport.\r\n /// \r\n /// contentAction enum of the event. Please see list of enum values under telemetryDatatypes.js\r\n /// \r\n\r\n // if element is not passed in, try to get it from event\r\n if (!element && event) {\r\n element = event.target;\r\n }\r\n\r\n // if element not does not exist or is non trackable\r\n if (!element || attr(element, trackInfo.notrack)) {\r\n return;\r\n }\r\n\r\n // for bug 1114449\r\n // element is a jQuery object, not an element\r\n // break out element from jQuery wrapper\r\n if (element.jquery) {\r\n element = element[0];\r\n }\r\n\r\n // Make sure that the trackInfo event does not have a jQuery object for target, or AOP will fail to find a parent.\r\n event = event || {};\r\n // Mark the event that it is already custom handled.\r\n event.customHandled = true;\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Read-only\r\n // event.target = element;\r\n trackInfo.event = event;\r\n var elemHref = element.href || attr(element, \"href\");\r\n\r\n // Temp. Fix: element.getAttribute(attr, 2) returns # only for non-navigational url. Need to get destination with full domain path.\r\n if (elemHref == \"#\") {\r\n elemHref = element[\"href\"];\r\n }\r\n\r\n // find destination value if needed\r\n destination = destination || attr(element, trackInfo.piiurl) ||\r\n elemHref || attr(element, \"action\") || \"\";\r\n\r\n // TODO: clean up how we find a headline. Depending on the markup of the page leads to bugs when we update it.\r\n // find headline value if needed, one may have been passed in through a data-hl attribute.\r\n var dataHlValue = attr(element, \"data-hl\") || \"\";\r\n if (!headline && !dataHlValue) {\r\n // See if there is an h4 or h3 element, no more than 2 deep.\r\n var headlineElement = getChildByTargetElement(element, \"H4\", 2) || getChildByTargetElement(element, \"H3\", 2);\r\n if (headlineElement) {\r\n headline = dom.text(headlineElement);\r\n }\r\n }\r\n\r\n if (typeof headline !== \"string\") {\r\n headline = dataHlValue || attr(element, trackInfo.piitxt) ||\r\n (\"FORM\" == domName(element)\r\n ? trackInfo.defaultFormHeadline\r\n : attr(element, \"title\") || depthFirstChildAttribute(element, \"title\", \"img\") || dom.text(element) || attr(element, \"alt\") || depthFirstChildAttribute(element, \"alt\") || \"\");\r\n }\r\n\r\n // Added condition to call trim function only if it is defined, it fails for browsers <=IE8\r\n if (headline.trim != undefined) {\r\n headline = headline.trim();\r\n }\r\n\r\n // find module value if needed\r\n module = module || findCMValue(element) || trackInfo.defaultModule;\r\n\r\n // find index value if needed\r\n index = index || (attr(element, \"id\") ? 1 : getContentElementIndex(element));\r\n\r\n // find campaign value if needed\r\n // Added backward compatibility for Old GT1 implementation. If \"GT1-xxxx\" not defined in class, look it into href attribute.\r\n // Example when GT1 defined in a class: class=\"GT1-12345\"\r\n // Example when GT1 is a part of href attribute: href=\"www.msn.com?GT1=12345\"\r\n var clsGT1 = element.className || attr(element, \"class\");\r\n campaign = campaign || (/GT1-(\\d+)\\b/i.exec(clsGT1) ? RegExp.$1 : \"\") ||\r\n (/[?&]GT1=(\\d+)\\b/i.exec(elemHref) ? RegExp.$1 : \"\");\r\n\r\n var moduleInfo = \"\";\r\n var nameLineage = '';\r\n var ordinalLineage = '';\r\n var lineageDelimiter = trackInfo.cmSeparator;\r\n var eventTime;\r\n\r\n if (event && (event.type == trackInfo.eventTypes.click || event.type == trackInfo.eventTypes.nonNavClckEvt || event.type == trackInfo.eventTypes.submit || event.type == trackInfo.eventTypes.contextmenu || event.type == trackInfo.eventTypes.mouseenter)) {\r\n var moduleInfoHeader = \"data-m\";\r\n moduleInfo = attr(element, moduleInfoHeader);\r\n if (!moduleInfo) {\r\n var parent = getParent(element);\r\n moduleInfo = parent ? attr(parent, moduleInfoHeader) : \"\";\r\n }\r\n\r\n try {\r\n // TODO: (nubenja) Remove this once data-m.y is deprecated\r\n // Convertion from telemetryType (e1.y) to telemetryContentType (e1.ct) and telemetryContentAction (ca)\r\n var moduleInfoJson = JSON.parse(moduleInfo);\r\n if (moduleInfoJson && moduleInfoJson.y && !moduleInfoJson.ct) {\r\n var ct = telemetryDataTypes.getTelemetryContentType(moduleInfoJson.y);\r\n\r\n if (ct) {\r\n moduleInfoJson.ct = ct;\r\n }\r\n }\r\n\r\n var actionType;\r\n var behaviorType;\r\n\r\n // Map behavior\r\n if (moduleInfoJson && moduleInfoJson.y) {\r\n behaviorType = telemetryDataTypes.getTelemetryBehavior(moduleInfoJson.y);\r\n }\r\n\r\n // Map action type\r\n if (event.originalEvent === trackInfo.eventTypes.contextmenu) {\r\n actionType = telemetryDataTypes.TelemetryActionType.RightClick;\r\n behaviorType = telemetryDataTypes.TelemetryBehaviorType.ContextMenu;\r\n } else if (event.type === trackInfo.eventTypes.click) {\r\n actionType = telemetryDataTypes.TelemetryActionType.Click;\r\n behaviorType = telemetryDataTypes.TelemetryBehaviorType.Navigate;\r\n } else if (event.type === trackInfo.eventTypes.nonNavClckEvt) {\r\n actionType = telemetryDataTypes.TelemetryActionType.Click;\r\n } else if (event.type === trackInfo.eventTypes.submit) {\r\n actionType = telemetryDataTypes.TelemetryActionType.Submit;\r\n }\r\n } catch (e) {\r\n moduleInfoJson = null;\r\n }\r\n\r\n var elementTelemetryLineage = getLineage(element);\r\n if (elementTelemetryLineage) {\r\n nameLineage = elementTelemetryLineage.nameLineage.reverse().join(lineageDelimiter);\r\n ordinalLineage = elementTelemetryLineage.ordinalLineage.reverse().join(lineageDelimiter);\r\n }\r\n\r\n // assign the time if event already has time field. (added from trackClickEvents)\r\n eventTime = event.time;\r\n }\r\n\r\n // check if destination url is bing or not. if it is, remove all telemetry sensitive data\r\n var duHostname = navigation.getHostName(destination);\r\n if (duHostname && duHostname.toLowerCase().indexOf(\"bing.com\") > -1) {\r\n // filter out privacy sensitive params\r\n destination = track.filterUrlParams(destination, [\"q\", \"pq\"]);\r\n\r\n // remove headline\r\n headline = \"\";\r\n }\r\n\r\n // @ts-ignore\r\n trackInfo.report =\r\n {\r\n /// \r\n /// This method creates a tracking report.\r\n /// It does NOT send the report, nor does it perform any navigation.\r\n ///\r\n /// \r\n /// \r\n /// element that was clicked or target of the event.\r\n /// \r\n /// \r\n /// destination url to use instead of computing.\r\n /// \r\n /// \r\n /// headline to use instead of computing.\r\n /// \r\n /// \r\n /// content module string to be used instead of computing.\r\n /// \r\n /// \r\n /// content index string to be used instead of computing.\r\n /// \r\n /// \r\n /// campaign id to be used instead of computing.\r\n /// \r\n /// \r\n /// data-m section to be used instead of computing.\r\n /// \r\n /// \r\n /// Report object that is structured as follows:\r\n /// report = {\r\n /// destinationUrl: destination,\r\n /// campaignId: '',\r\n /// contentElement: index,\r\n /// contentModule: module,\r\n /// headline: headline,\r\n /// sourceIndex,\r\n /// nodeName,\r\n /// module: moduleInfo,\r\n /// nLineage: nameLineage,\r\n /// oLineage: ordinalLineage,\r\n /// timeToInteract: trackInfo.timeToInteract()\r\n /// };\r\n /// \r\n destinationUrl: destination,\r\n headline: headline,\r\n contentModule: module,\r\n contentElement: index,\r\n campaignId: campaign,\r\n module: moduleInfoJson,\r\n sourceIndex: element.sourceIndex || \"\",\r\n nodeName: element.nodeName || \"\",\r\n nLineage: nameLineage,\r\n oLineage: ordinalLineage,\r\n timeToInteract: trackInfo.timeToInteract(eventTime),\r\n actionType: actionType,\r\n behaviorType: behaviorType\r\n };\r\n\r\n trackAll(\"getEventTrackingUrl\");\r\n}\r\n\r\nfunction trackPageInternal(overrideParams, persistOverriddenParams) {\r\n /// \r\n /// Fires page view call for each registered tracking system at the top of tag\r\n /// \r\n /// override client side params\r\n /// if true overridden params are persisted for other events otherwise false. Default is false\r\n\r\n var perfMarkerTrackingPageViewStart = \"TimeToTrackingPageViewStart\";\r\n var perfMarkerTrackingPageViewEnd = \"TimeToTrackingPageViewEnd\";\r\n\r\n // initialize params and assign default as false.\r\n persistOverriddenParams = !!persistOverriddenParams;\r\n\r\n // clear event in case trackPage is called more than once on a page\r\n delete trackInfo.event;\r\n\r\n // Clear the request id to generate the new request id\r\n // @ts-ignore\r\n delete trackInfo.userStatic.requestId;\r\n\r\n // Clear the override Client Params for every track page request and reassign the parameter.\r\n delete trackInfo.overrideClientParams;\r\n\r\n var paramPageName = \"pg.n\";\r\n var pageName = overrideParams && overrideParams[paramPageName];\r\n if (pageName) {\r\n var paramPageType = \"pg.t\";\r\n var telemetryPageName = telemetryDataTypes.getTelemetryPageInfo(pageName);\r\n if (telemetryPageName) {\r\n overrideParams[paramPageName] = telemetryPageName.PageName;\r\n\r\n var pageType = overrideParams[paramPageType];\r\n var telemetryPageType = telemetryDataTypes.validateTelemetryDataType(telemetryDataTypes.TelemetryPageType, pageType);\r\n if (telemetryPageType) {\r\n overrideParams[paramPageType] = telemetryPageType;\r\n } else if (telemetryPageName.PageType === telemetryDataTypes.TelemetryPageType.Unspecified) {\r\n // @ts-ignore\r\n overrideParams[paramPageType] = trackInfo.sitePage.page_type;\r\n } else {\r\n overrideParams[paramPageType] = telemetryPageName.PageType;\r\n }\r\n }\r\n }\r\n\r\n // This is needed since in prime we include this so that\r\n // telemetry team knows that the page should be ignored due to\r\n // automatic refresh\r\n var signInRefreshedPageKey = \"sign-in-refreshed-page\";\r\n if (sessionStorage.getItem(signInRefreshedPageKey)) {\r\n sessionStorage.removeItem(signInRefreshedPageKey);\r\n (overrideParams = overrideParams || {}).ar = 1;\r\n }\r\n\r\n trackInfo.overrideClientParams = overrideParams;\r\n trackInfo.persistOverriddenParams = persistOverriddenParams;\r\n\r\n var result = trackingHelper.modifyValuesForTrackPage();\r\n if (result && result.preventComscore) {\r\n track.preventBeacon(telemetryConstants.Comscore);\r\n }\r\n\r\n trackAll(\"getPageViewTrackingUrl\");\r\n\r\n // the refreshPageLoad value is undefined (false) at first page load request, and\r\n // we then set it to one (true).\r\n // subsequent calls to trackPage will then publish the mediator pageView event\r\n // that code can listen for to know when the page is generating a \"page view\"\r\n // due to significant content change.\r\n if (refreshPageLoad) {\r\n mediator.pub(\"pageView\");\r\n } else {\r\n refreshPageLoad = 1;\r\n mediator.pub(\"pageViewOnLoad\");\r\n }\r\n\r\n // Clear the override Client Params once the trackPage is fired so that other events don't use the overridden params from memory.\r\n delete trackInfo.overrideClientParams;\r\n}\r\n\r\nexport var track =\r\n{\r\n onContextMenu: onContextMenu,\r\n onClick: onClick,\r\n\r\n trackEvent: trackEvent,\r\n trackFormSubmitEvent: trackFormSubmitEvent,\r\n trackAdEvent: trackAdEvent,\r\n trackVideoEvent: trackVideoEvent,\r\n trackFeedbackEvent: trackFeedbackEvent,\r\n\r\n createEvent: createEvt,\r\n sendPageViewCandidate: sendPageViewCandidate,\r\n sendSinglePageViewBeacon: sendSinglePageViewBeacon,\r\n\r\n clearImpressionCache: clearImpressionCache,\r\n\r\n getFeedbackTrackingParams: getFeedbackTrackingParams,\r\n filterUrlParams: filterUrlParams,\r\n\r\n trackAppErrorEvent: function (errorParams) {\r\n /// \r\n /// This method tracks the app_error event.\r\n /// Call getEventTrackingUrl to fire the tracking call\r\n /// \r\n /// \r\n /// errorParams- defined in errorCategory\r\n /// \r\n\r\n telemetryReadyCallback((): void => {\r\n trackAppErrorEventInternal(errorParams);\r\n });\r\n },\r\n\r\n trackPartialImpression: function (elem, visibilityCheck, mechanism, topLevelContainerType) {\r\n /// The track partial impression will fire an impression update for the element graph.\r\n /// The element graph that contains the data-m attributes\r\n /// Conduct the visibility checking. By default is false\r\n /// Mechanism to capture for impression update. By Default is load. Mechanism load is used whenever the module is loaded and rendered to the user.\r\n /// TopLevelContainer type for impression update\r\n\r\n telemetryReadyCallback((): void => {\r\n trackPartialImpressionInternal(elem, visibilityCheck, mechanism, topLevelContainerType);\r\n });\r\n },\r\n\r\n trackPage: function (overrideParams?, persistOverriddenParams?) {\r\n /// \r\n /// Fires page view call for each registered tracking system at the top of tag\r\n /// \r\n /// override client side params\r\n /// if true overridden params are persisted for other events otherwise false. Default is false\r\n\r\n telemetryReadyCallback((): void => {\r\n trackPageInternal(overrideParams, persistOverriddenParams);\r\n });\r\n },\r\n\r\n trackThirdPartyUpdate: function () {\r\n /// \r\n /// Fires the third party tracking call for Ajax page refresh scenarios like slide refresh.\r\n /// \r\n\r\n mediator.pub(\"thirdPartyTrackingUpdate\");\r\n },\r\n\r\n register: function (...args: any[]) {\r\n /// \r\n /// Registers an implementation with the main Tracking function\r\n /// \r\n /// \r\n /// Implementation of tracking,\r\n /// must implement the following functions\r\n /// GetEventTrackingUrl(trackInfo) - generates url for tracking\r\n /// \r\n /// \r\n /// Implementation of tracking\r\n /// \r\n /// \r\n /// Returns the current object to enable cascading calls\r\n /// \r\n var ndx = 0;\r\n var trackingImplementation;\r\n\r\n // use double-parens to tell the validator that yes, we INTEND this to be an assignment (=)\r\n // and not a mistyped equals (==) conditional test.\r\n while ((trackingImplementation = arguments[ndx++])) {\r\n if (isNaN(trackingImplementation.samplingRate)) {\r\n trackingImplementation.samplingRate = 99;\r\n }\r\n recipients.push(trackingImplementation);\r\n }\r\n },\r\n\r\n getCurrentPageRequestId: function () {\r\n /// \r\n /// Utility function to return the current page request Id. Empty value will be returned if this method is called before\r\n /// telemetry initialization.\r\n /// \r\n /// the current page request Id\r\n /// \r\n\r\n // @ts-ignore\r\n return pageInstance.getRequestId() || trackInfo.sitePage.requestId || \"\";\r\n },\r\n\r\n mapTelemetryParams: function (common, commonMap, params, paramsMap) {\r\n /// \r\n /// Utility function to gather all the telemetry Params.\r\n /// \r\n /// \r\n /// Object contains common parameters.\r\n /// \r\n /// \r\n /// Object contains common param to property mapping\r\n /// E.g. map.sitePage:{ a1: \"page_name\"}\r\n /// this will create a querystring a1=\"value of trackInfo.sitePage.page_name\"\r\n /// \r\n /// \r\n /// Object contains custom parameters.\r\n /// \r\n /// \r\n /// Object contains param to property mapping\r\n /// E.g. map.sitePage:{ a1: \"page_name\"}\r\n /// this will create a querystring a1=\"value of trackInfo.sitePage.page_name\"\r\n /// \r\n /// \r\n /// url that will be called to do the tracking\r\n /// \r\n\r\n var groupKey; \r\n var groupValue; \r\n var key; \r\n var value;\r\n params = extend({}, common, params);\r\n // Get params from commonMap\r\n paramsMap = extend(true, {}, commonMap, paramsMap);\r\n for (groupKey in paramsMap) {\r\n var trackInfoGroupKey = trackInfo[groupKey];\r\n if (trackInfoGroupKey) {\r\n groupValue = paramsMap[groupKey];\r\n for (key in groupValue) {\r\n // check the override client params first\r\n var clientParams = trackInfo.overrideClientParams;\r\n if (key && clientParams && clientParams[key] !== undefined) {\r\n value = clientParams[key];\r\n // if persisting overridden params then override trackInfo group key with value from overridden client params.\r\n if (trackInfo.persistOverriddenParams) {\r\n trackInfoGroupKey[groupValue[key]] = value;\r\n }\r\n } else {\r\n value = trackInfoGroupKey[groupValue[key]];\r\n\r\n if (typeof value == \"function\") {\r\n value = value();\r\n }\r\n }\r\n\r\n // allow for empty strings but use null or undefined to ignore the parameter entirely\r\n if (value != null) {\r\n params[key] = value;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return params;\r\n },\r\n\r\n extend: function (obj) {\r\n extend(true, trackInfo, obj);\r\n },\r\n\r\n form: function (elem) {\r\n /// \r\n /// Helper function to bind Form elements that are part of element for tracking\r\n /// \r\n\r\n if (!elem || !elem.length) {\r\n elem = [elem];\r\n }\r\n var formElem;\r\n var ndx = 0;\r\n\r\n // use double-parens to tell the validator that yes, we INTEND this to be an assignment (=)\r\n // and not a mistyped equals (==) conditional test.\r\n while ((formElem = elem[ndx++])) {\r\n // if element is a form element and has not attr \"data-customformtrack\", bind the submit to it.\r\n // if the attr \"data-customformtrack\" is included, it is entirely reponsible for firing its own\r\n // tracking beacons\r\n if (\"FORM\" == domName(formElem) && !attr(formElem, \"data-customformtrack\")) {\r\n events.bind(formElem, \"submit\", trackFormSubmitEvent);\r\n }\r\n }\r\n },\r\n\r\n preventBeacon: function (beaconId) {\r\n /// Set the value isGeneratedEarly to prevent the sending of a beacon.\r\n /// The name of the beacon as listed in the markets.config file.\r\n if (beaconId) {\r\n beaconId = beaconId.toLowerCase();\r\n\r\n // loop through each implementation\r\n for (var ndx = 0; ndx < recipients.length; ndx++) {\r\n var defOpts = recipients[ndx].defaultOpts;\r\n if (beaconId === defOpts.id.toLowerCase()) {\r\n defOpts.isGeneratedEarly = true;\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n\r\n trackPageRefresh: function (overrideParams?, persistOverriddenParams?) {\r\n /// \r\n /// Fires page view call for each registered tracking system at the top of tag and resets activity Id.\r\n /// \r\n /// override client side params\r\n /// if true overridden params are persisted for other events otherwise false. Default is false\r\n\r\n // calling pageInstance.updatePageInstance() instead of using mediator\r\n // to eliminate delay rid update when executed via mediator.pub\r\n pageInstance.updatePageInstance();\r\n clearImpressionCache();\r\n trackPageInternal(overrideParams, persistOverriddenParams);\r\n\r\n setTimeout(\r\n () => {\r\n trackPartialImpressionInternal(document.getElementById(\"root\"), true, \"load\", null);\r\n },\r\n 1000);\r\n }\r\n};\r\n\r\n// find's all the children dom elements that have the 'data-m' attribute defined.\r\n// also returns the current element if it meets the criteria.\r\nfunction findTelemetryElements(domElement) {\r\n var elements = [];\r\n\r\n // for modern browsers I can use querySelectorAll to find the child elements.\r\n if (domElement && domElement.querySelectorAll) {\r\n var telemetryChildren = domElement.querySelectorAll('[data-m]');\r\n\r\n // include the root if applicable\r\n if (attr(domElement, 'data-m')) {\r\n elements.push(domElement);\r\n }\r\n\r\n // do the children\r\n for (var index = 0; index < telemetryChildren.length; index++) {\r\n elements.push(telemetryChildren[index]);\r\n }\r\n }\r\n\r\n // return the elements\r\n return elements;\r\n}\r\n\r\n// a helper function that will parse json contained within attributes\r\nfunction parseDomAttributeJson(element, attributeName) {\r\n var dataAttr = attr(element, attributeName);\r\n if (dataAttr) {\r\n try {\r\n return JSON.parse(dataAttr);\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\n// a helper function to check if an array contains an element.\r\nfunction contains(item, array) {\r\n if (array.indexOf) {\r\n return array.indexOf(item) !== -1;\r\n } else {\r\n // for IE8\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i] === item) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction trackPartialImpressionInternal(elem, visibilityCheck, mechanism, topLevelContainerType) {\r\n /// The track partial impression will fire an OTF impression update for the element graph.\r\n /// The element graph that contains the data-m attributes\r\n /// Conduct the visibility checking. By default is false\r\n /// Mechanism to capture for impression update. By Default is load\r\n /// TopLevelContainer type for impression update. By Default is load\r\n\r\n var perfMarkerTrackingPartialImprUpdateStart = \"TimeToTrackingPartialImprUpdateStart\";\r\n var perfMarkerTrackingPartialImprUpdateEnd = \"TimeToTrackingPartialImprUpdateEnd\";\r\n\r\n if (elem) {\r\n if (elem.jquery) {\r\n elem = elem[0];\r\n }\r\n\r\n // retrieve the telemetry elements.\r\n var elements = findTelemetryElements(elem);\r\n var formattedModules = [];\r\n\r\n for (var index = 0; index < elements.length; index++) {\r\n var element = elements[index];\r\n if (visibilityCheck && !trackInfo.telemetryTracking.isVisible(element)) {\r\n continue;\r\n }\r\n\r\n var impressionContent = parseDomAttributeJson(element, 'data-m');\r\n var id = impressionContent ? impressionContent.i : undefined;\r\n\r\n // ensure we haven't already sent the payload\r\n if (id !== undefined && !contains(id, impressionCache)) {\r\n // add it to our cache\r\n impressionCache.push(id);\r\n formattedModules.push(impressionContent);\r\n\r\n // TODO: (nubenja) Remove this once data-m.y is deprecated\r\n // Convertion from telemetryType (data-m.y) to telemetryContentType and telemetryContentAction (data-m.ct/ca)\r\n if (impressionContent.y && !impressionContent.ct) {\r\n var ct = telemetryDataTypes.getTelemetryContentType(impressionContent.y);\r\n\r\n if (ct) {\r\n impressionContent.ct = ct;\r\n }\r\n }\r\n }\r\n }\r\n\r\n var context = {};\r\n if (formattedModules && formattedModules.length > 0) {\r\n // @ts-ignore\r\n context.e = formattedModules;\r\n }\r\n\r\n // fire the telemetry event if we were able to get any impression data.\r\n // @ts-ignore\r\n if (context && context.e && context.e.length > 0) {\r\n var mech = (mechanism) ? mechanism : trackInfo.imprUpdateMechanisms.partial;\r\n trackInfo.telemetryTracking.sendImprUpdateEvent(mech, context, topLevelContainerType);\r\n }\r\n }\r\n}\r\n\r\nfunction clearImpressionCache() {\r\n impressionCache = [];\r\n}\r\n\r\nfunction getEventFromUrl(targetUrl) {\r\n /// \r\n /// Check the Current Url and get the event name from the targetUrl.\r\n /// The URL format for the specifying the event name is - url#tevt=EVENTNAME;OTHER_NAME_VALUE_PAIRS\r\n /// \r\n /// \r\n /// The target Url for the event.\r\n /// \r\n /// event name, if it is specified, else null. \r\n\r\n /*\r\n For input value : \"http://www.bing.com/videos/search?q=&mkt=en-GB#tevt=click_nonnav;\"\r\n The result will be like this-\r\n [#tevt=click_nonnav;,click_nonnav,;]\r\n [0] : \"#tevt=click_nonnav;\",\r\n [1] : \"click_nonnav\",\r\n [2] : \";\",\r\n\r\n The 1st element contains the event name.\r\n */\r\n\r\n // If event name is not found, return null, the original event name will be kept.\r\n var result = new RegExp(regExpEventName).exec(targetUrl);\r\n return (result && result.length && result[1]) || null;\r\n};\r\n\r\nfunction getClickEventFromUrl(targetUrl) {\r\n /// \r\n /// Check the Current Url -\r\n /// Case 1- if the Url format is - baseurl/#, then treat it as nonNav event.\r\n /// Match Domain name.\r\n /// If the Url of current page and target page is same and only # is at the end, then it is not navigating away from the page.\r\n ///\r\n /// Case 2 - the Url format is url#tevt=EVENTNAME;OTHER_NAME_VALUE_PAIRS,\r\n /// extract the event name from the Url. the event name is terminated with ;\r\n /// \r\n /// \r\n /// The target Url for the event.\r\n /// \r\n /// \r\n /// event name; if it is a non nav url and no event name is specified then return the default non nav click event name,\r\n /// otherwise, return the event name specified in the url.\r\n /// \r\n\r\n var evtName = null;\r\n if (targetUrl) {\r\n // if the target url contains tevt=, then this url contains the event name. We will extract the event name from url.\r\n if (targetUrl.indexOf(tEvtTag) == -1) {\r\n // If the Url format is - http://www.msn.com/#, then categorize it as nonnav click.\r\n // Convert the baseurl and currentUrl in lowercase for comparison.\r\n var baseUrl = targetUrl.substring(0, targetUrl.indexOf('#')).toLowerCase();\r\n var curUrl = getLocationHref().toLowerCase();\r\n if (curUrl == baseUrl || curUrl.substring(0, curUrl.indexOf('#')) == baseUrl) {\r\n evtName = trackInfo.eventTypes.nonNavClckEvt;\r\n }\r\n } else {\r\n // extract the event name from url.\r\n evtName = getEventFromUrl(targetUrl);\r\n }\r\n }\r\n // Return null, so that the original event is kept.\r\n return evtName;\r\n};\r\n\r\nfunction createEvt(event, eventName, targetElem) {\r\n /// \r\n /// Creates an event based upon the properties of the base event.\r\n /// \r\n /// \r\n /// This is a an input event parameter. Some basic properties are copied from this param to the the event created.\r\n /// \r\n /// \r\n /// Name of the event to be created.\r\n /// \r\n /// \r\n /// Target element that need to be attached to the event being created in this method.\r\n /// \r\n /// An object is created with base properties from the event passed as param. This object is then returned. \r\n\r\n var evt = null;\r\n\r\n if (doc && doc.createEvent) { // Supported by non-IE based browsers.\r\n evt = doc.createEvent(\"Events\");\r\n evt.initEvent(eventName, false, true, targetElem || window,\r\n 0, 0, 0, 0, 0, false, false, false, false, 0, null);\r\n // @ts-ignore\r\n } else if (doc && doc.createEventObject) { // Supported by IE based browsers.\r\n // @ts-ignore\r\n evt = doc.createEventObject(event);\r\n evt.type = eventName;\r\n }\r\n\r\n if (evt) {\r\n evt.customTarget = targetElem;\r\n\r\n // Store the original event type in a field\r\n evt.originalEvent = event && event.type;\r\n }\r\n\r\n return evt;\r\n};\r\n\r\nfunction preventEventDefault(event) {\r\n /// \r\n /// Cancels the event and prevents from being passed further.\r\n /// \r\n /// \r\n /// Input event parameter that need to be canceled.\r\n /// \r\n if (event.preventDefault) { // For Non IE\r\n event.preventDefault();\r\n } else { // For IE\r\n event.returnValue = false;\r\n }\r\n};\r\n\r\nfunction onContextMenu(event) {\r\n /// \r\n /// onContextMenu Handler\r\n /// we'll only track context menu events if the target is a link (A or AREA)\r\n /// This event is used to keep track of when the context menu opens....\r\n /// Right click does not generate onClick events, so we are tracking context menu on all the form factors.\r\n /// \r\n trackClickEvents(event);\r\n};\r\n\r\nfunction onClick(event) {\r\n /// \r\n /// OnClick Handler\r\n /// we'll only track clicks if the target is a link (A or AREA)\r\n /// AND the mouse button isn't the RIGHT button.\r\n /// MOST browsers think the mouse button value is 2. For those that don't, this\r\n /// might have to be revisited.\r\n /// \r\n if (2 == event.button) {\r\n return;\r\n }\r\n\r\n trackClickEvents(event);\r\n};\r\n\r\n/// \r\n/// Computes the lineage of a particular element, passing back the object containing array of 'n's and array of 'o's on the dom tree.\r\n/// \r\n/// An object containing the array of 'n's and array of 'o's on the dom tree starting with the current element, or an empty array if none are found.\r\nfunction getLineage(element) {\r\n var result: any = {};\r\n var nameLineageArray = [];\r\n var ordinalLineageArray = [];\r\n\r\n while (element) {\r\n var telemetryObject = parseDomAttributeJson(element, 'data-m');\r\n if (telemetryObject) {\r\n if (telemetryObject.n) {\r\n nameLineageArray.push(telemetryObject.n);\r\n }\r\n\r\n if (telemetryObject.o) {\r\n ordinalLineageArray.push(telemetryObject.o);\r\n }\r\n }\r\n element = getParent(element);\r\n }\r\n\r\n result.nameLineage = nameLineageArray;\r\n result.ordinalLineage = ordinalLineageArray;\r\n return result;\r\n}\r\n\r\nfunction isClickedTwice(currentTarget) {\r\n /// \r\n /// isClickedTwice method\r\n /// Identify if more than one click event happened on the same element in short span of time.\r\n /// \r\n /// Return true if the user click on the same element twice in short span of time, otherwise false.\r\n\r\n // if lastClickedTarget is same as currentTarget means user clicked on same elements twice to be considered as double click.\r\n try {\r\n if (currentTarget && lastClickedTarget && lastClickedTarget === currentTarget) {\r\n return true;\r\n }\r\n lastClickedTarget = currentTarget;\r\n setTimeout(function () {\r\n // Reset 'lastClickedTarget' after a ceratin time period to avoid any kind of unexpected situation.\r\n lastClickedTarget = null;\r\n }, clickTargetResetTimeoutInMs);\r\n } catch (ex) {\r\n lastClickedTarget = null;\r\n return false;\r\n }\r\n return false;\r\n}\r\n\r\nfunction trackClickEvents(event) {\r\n /// \r\n /// trackClickEvents method\r\n /// Tracks all the click events on links.\r\n /// \r\n\r\n // handle error scenarios.\r\n if (!event) {\r\n return;\r\n }\r\n\r\n // If the event or in the originalEvent the developer has set customHandled=true, which means its been already explicitly fired.\r\n // In those cases, don't fire the implicit event.\r\n if (event.customHandled || (event.originalEvent && event.originalEvent.customHandled)) {\r\n return;\r\n }\r\n\r\n // Temp. Hack for Image Map: In IE9, srcElement associated with window.event is not returning correct element.\r\n // Instead of returning a element, it is returning element. element has no href attribute, neither it's parents do have.\r\n // For this reason, Tracking calls are not fired in IE9.\r\n // This hack will check if the event belongs to ImageMap. If so, it will pick activeElement from document and assign it as target/customTarget.\r\n try {\r\n // Passing the time parameter inside event object with timestamp as a value.\r\n event.time = trackInfo.getCurrentTime();\r\n if (event.customTarget && event.customTarget.useMap) {\r\n event.customTarget = event.customTarget.document.activeElement;\r\n event.target = event.customTarget;\r\n }\r\n } catch (ex) { }\r\n\r\n // we assume that an element with an href (and or an ) is the click-tracking element.\r\n // we also want to target