@atlaskit/react-ufo 4.16.1 → 4.16.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/ufo-interaction-ignore
2
2
 
3
+ ## 4.16.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [`4f8a657618dc5`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/4f8a657618dc5) -
8
+ add data-is-hovered attribute to list of non-visual excluded attributes for TTVC v4
9
+
10
+ ## 4.16.2
11
+
12
+ ### Patch Changes
13
+
14
+ - [`0a9debbd75b87`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0a9debbd75b87) -
15
+ use getVisibilityStateFromPerformance for page visibility
16
+
3
17
  ## 4.16.1
4
18
 
5
19
  ### Patch Changes
@@ -20,6 +20,7 @@ var _getPayloadSize = _interopRequireDefault(require("../create-payload/utils/ge
20
20
  var _getReactUfoPayloadVersion = require("../create-payload/utils/get-react-ufo-payload-version");
21
21
  var _getTtai = _interopRequireDefault(require("../create-payload/utils/get-ttai"));
22
22
  var _getVcMetrics = _interopRequireDefault(require("../create-payload/utils/get-vc-metrics"));
23
+ var _getVisibilityStateFromPerformance = require("../create-payload/utils/get-visibility-state-from-performance");
23
24
  var _optimizeApdex = require("../create-payload/utils/optimize-apdex");
24
25
  var _optimizeCustomTimings = require("../create-payload/utils/optimize-custom-timings");
25
26
  var _optimizeHoldInfo = require("../create-payload/utils/optimize-hold-info");
@@ -36,7 +37,7 @@ function createInteractionExtraLogPayload(_x, _x2, _x3, _x4) {
36
37
  }
37
38
  function _createInteractionExtraLogPayload() {
38
39
  _createInteractionExtraLogPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(interactionId, interaction, lastInteractionFinish, lastInteractionFinishVCResult) {
39
- var _getTTAI, _lastInteractionFinis, _getTTAI2, _window$location;
40
+ var _getVisibilityStateFr, _getTTAI, _lastInteractionFinis, _getTTAI2, _window$location;
40
41
  var config, end, start, ufoName, rate, type, abortReason, routeName, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, knownSegments, minorInteractions, sanitisedUfoName, configRate, pageVisibilityAtTTAI, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTAI, extraTTAI, newUFOName, finalVCMetrics, vcRevisionPayload, effectiveVCRevisionPayload, normalTTAI, lastInteractionFinishStart, lastInteractionFinishEnd, lastInteractionFinishVC90, lastInteractionFinishVCClean, lastInteractionFinishVCRev, lastInteractionFinishRevision, isThirdParty, filteredData, getDetailedInteractionMetrics, segments3p, segmentTree, payload;
41
42
  return _regenerator.default.wrap(function _callee$(_context) {
42
43
  while (1) switch (_context.prev = _context.next) {
@@ -57,7 +58,7 @@ function _createInteractionExtraLogPayload() {
57
58
  }
58
59
  return _context.abrupt("return", null);
59
60
  case 8:
60
- pageVisibilityAtTTAI = (0, _getPageVisibilityUpToTtai.default)(interaction);
61
+ pageVisibilityAtTTAI = (0, _platformFeatureFlags.fg)('platform_ufo_use_native_page_visibility_api') ? (_getVisibilityStateFr = (0, _getVisibilityStateFromPerformance.getVisibilityStateFromPerformance)(interaction.end)) !== null && _getVisibilityStateFr !== void 0 ? _getVisibilityStateFr : 'mixed' : (0, _getPageVisibilityUpToTtai.default)(interaction);
61
62
  isPageLoad = type === 'page_load' || type === 'transition';
62
63
  if (!(!isPageLoad || minorInteractions !== undefined && minorInteractions.length > 0)) {
63
64
  _context.next = 12;
@@ -5,7 +5,7 @@ return{'event:assets':assets};}return{};}catch(_unused2){// Skip CHR in case of
5
5
  return{};}}function getTracingContextData(interaction){var trace=interaction.trace,start=interaction.start;var tracingContextData={};if(trace){tracingContextData={'ufo:tracingContext':{'X-B3-TraceId':trace.traceId,'X-B3-SpanId':trace.spanId,// eslint-disable-next-line compat/compat
6
6
  browserTimeOrigin:+(performance.timeOrigin+start).toFixed(2)}};}return tracingContextData;}function optimizeCustomData(interaction){var customData=interaction.customData,cohortingCustomData=interaction.cohortingCustomData,legacyMetrics=interaction.legacyMetrics;var customDataMap=customData.reduce(function(result,_ref){var _result$get$data,_result$get;var labelStack=_ref.labelStack,data=_ref.data;var label=(0,_utils.stringifyLabelStackFully)(labelStack);var value=(_result$get$data=(_result$get=result.get(label))===null||_result$get===void 0?void 0:_result$get.data)!==null&&_result$get$data!==void 0?_result$get$data:{};result.set(label,{labelStack:(0,_utils.optimizeLabelStack)(labelStack,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),data:Object.assign(value,data)});return result;},new Map());// Merge cohorting custom data into the same map
7
7
  if(cohortingCustomData&&cohortingCustomData.size>0){var _interaction$labelSta,_customDataMap$get$da,_customDataMap$get,_interaction$labelSta2;var label=(0,_utils.stringifyLabelStackFully)((_interaction$labelSta=interaction.labelStack)!==null&&_interaction$labelSta!==void 0?_interaction$labelSta:[]);var value=(_customDataMap$get$da=(_customDataMap$get=customDataMap.get(label))===null||_customDataMap$get===void 0?void 0:_customDataMap$get.data)!==null&&_customDataMap$get$da!==void 0?_customDataMap$get$da:{};customDataMap.set(label,{labelStack:(0,_utils.optimizeLabelStack)((_interaction$labelSta2=interaction.labelStack)!==null&&_interaction$labelSta2!==void 0?_interaction$labelSta2:[],(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),data:Object.assign(value,Object.fromEntries(cohortingCustomData))});}if(legacyMetrics){var legacyMetricsFiltered=legacyMetrics.filter(function(item){return item.type==='PAGE_LOAD';}).reduce(function(result,currentValue){for(var _i=0,_Object$entries=Object.entries(currentValue.custom||{});_i<_Object$entries.length;_i++){var _result$get$data2,_result$get2;var _Object$entries$_i=(0,_slicedToArray2.default)(_Object$entries[_i],2),key=_Object$entries$_i[0],_value=_Object$entries$_i[1];var _label=(0,_utils.stringifyLabelStackFully)([]);var labelValue=(_result$get$data2=(_result$get2=result.get(_label))===null||_result$get2===void 0?void 0:_result$get2.data)!==null&&_result$get$data2!==void 0?_result$get$data2:{};result.set(_label,{labelStack:(0,_utils.optimizeLabelStack)([],(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),data:Object.assign(labelValue,(0,_defineProperty2.default)({},key,_value))});}return result;},new Map());return[].concat((0,_toConsumableArray2.default)(customDataMap.values()),(0,_toConsumableArray2.default)(legacyMetricsFiltered.values()));}return(0,_toConsumableArray2.default)(customDataMap.values());}function optimizeRedirects(redirects,interactionStart){var lastRedirectTime=interactionStart;var updatedRedirects=redirects.sort(function(a,b){return a.time-b.time;}).reduce(function(result,redirect){var fromInteractionName=redirect.fromInteractionName,time=redirect.time;if(lastRedirectTime>=interactionStart){result.push({labelStack:[{n:fromInteractionName}],startTime:Math.round(lastRedirectTime),endTime:Math.round(time)});}lastRedirectTime=time;return result;},[]);return updatedRedirects;}function objectToArray(){var obj=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return Object.keys(obj).reduce(function(result,key){result.push({label:key,data:obj[key]});return result;},[]);}function getBM3SubmetricsTimings(submetrics){if(!submetrics){return null;}var submetricsTimings=submetrics.filter(function(item){return typeof item.stop==='number'&&!!item.key&&typeof item.start==='number';}).map(function(item){var childSubmetrics;var newKey="include/".concat(item.key);if(item.submetrics){childSubmetrics=getBM3SubmetricsTimings(item.submetrics);}return _objectSpread((0,_defineProperty2.default)({},newKey,{endTime:item.stop-item.start,startTime:item.start}),childSubmetrics?childSubmetrics:{});});return submetricsTimings;}function getBm3TrackerTimings(interaction){var interactionLegacyMetrics=interaction.legacyMetrics;if(!interactionLegacyMetrics){return{};}var legacyMetrics=interactionLegacyMetrics.map(function(item){var _item$config,_item$config2,_item$marks;return{key:item.key,startTime:item.start,stopTime:item.stop,type:(_item$config=item.config)===null||_item$config===void 0?void 0:_item$config.type,reactUFOName:(_item$config2=item.config)===null||_item$config2===void 0?void 0:_item$config2.reactUFOName,fmp:((_item$marks=item.marks)===null||_item$marks===void 0?void 0:_item$marks['fmp'])||item.stop,source:'bm3',timings:(0,_customTimings.getBm3Timings)(item.marks,item.config.timings),submetrics:getBM3SubmetricsTimings(item.submetrics),pageVisibleState:item.pageVisibleState};}).filter(function(item){return!!item.type;});return{legacyMetrics:legacyMetrics};}function getStylesheetMetrics(){try{var doc=(0,_browserApis.getDocument)();if(!doc){return{};}var stylesheets=Array.from(doc.styleSheets);var stylesheetCount=stylesheets.length;var cssrules=Array.from(doc.styleSheets).reduce(function(acc,item){// Other domain stylesheets throw a SecurityError
8
- try{return acc+item.cssRules.length;}catch(_unused3){return acc;}},0);var styleElements=doc.querySelectorAll('style').length;var styleProps=doc.querySelectorAll('[style]');var styleDeclarations=Array.from(doc.querySelectorAll('[style]')).reduce(function(acc,item){try{if('style'in item){return acc+item.style.length;}else{return acc;}}catch(_unused4){return acc;}},0);return{'ufo:stylesheets':stylesheetCount,'ufo:styleElements':styleElements,'ufo:styleProps':styleProps.length,'ufo:styleDeclarations':styleDeclarations,'ufo:cssrules':cssrules};}catch(_unused5){return{};}}var regularTTAI;var expTTAI;function getErrorCounts(interaction){return{'ufo:errors:globalCount':(0,_globalErrorHandler.getGlobalErrorCount)(),'ufo:errors:count':interaction.errors.length};}function createInteractionMetricsPayload(_x,_x2,_x3,_x4,_x5){return _createInteractionMetricsPayload.apply(this,arguments);}function _createInteractionMetricsPayload(){_createInteractionMetricsPayload=(0,_asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(interaction,interactionId,experimental,criticalPayloadCount,vcMetrics){var _window$location,_config$additionalPay;var interactionPayloadStart,config,end,start,ufoName,knownSegments,rate,type,abortReason,routeName,featureFlags,previousInteractionName,isPreviousInteractionAborted,abortedByInteractionName,responsiveness,unknownElementName,unknownElementHierarchy,hydration,pageVisibilityAtTTI,pageVisibilityAtTTAI,segments,segmentTree,isDetailedPayload,isPageLoad,calculatePageVisibilityFromTheStartOfPageLoad,moreAccuratePageVisibilityAtTTI,moreAccuratePageVisibilityAtTTAI,labelStack,getInitialPageLoadSSRMetrics,pageLoadInteractionMetrics,getDetailedInteractionMetrics,getPageLoadDetailedInteractionMetrics,newUFOName,resourceTimings,_yield$Promise$all,_yield$Promise$all2,finalVCMetrics,experimentalMetrics,paintMetrics,batteryInfo,getReactHydrationStats,payload,size,vcRev,rawData,rawDataSize,interactionMetricsFieldsToTrim,properties,interactionMetrics,_iterator,_step,field,trimmedFields;return _regenerator.default.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:interactionPayloadStart=performance.now();config=(0,_config.getConfig)();if(config){_context.next=4;break;}throw Error('UFO Configuration not provided');case 4:end=interaction.end,start=interaction.start,ufoName=interaction.ufoName,knownSegments=interaction.knownSegments,rate=interaction.rate,type=interaction.type,abortReason=interaction.abortReason,routeName=interaction.routeName,featureFlags=interaction.featureFlags,previousInteractionName=interaction.previousInteractionName,isPreviousInteractionAborted=interaction.isPreviousInteractionAborted,abortedByInteractionName=interaction.abortedByInteractionName,responsiveness=interaction.responsiveness,unknownElementName=interaction.unknownElementName,unknownElementHierarchy=interaction.unknownElementHierarchy,hydration=interaction.hydration;pageVisibilityAtTTI=getPageVisibilityUpToTTI(interaction);pageVisibilityAtTTAI=(0,_getPageVisibilityUpToTtai.default)(interaction);segments=!(0,_platformFeatureFlags.fg)('platform_ufo_remove_deprecated_config_fields')&&config.killswitchNestedSegments?[]:knownSegments;segmentTree=(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)==='2.0.0'?(0,_utils.buildSegmentTree)(segments.map(function(segment){return segment.labelStack;})):{};isDetailedPayload=pageVisibilityAtTTAI==='visible';isPageLoad=type==='page_load';calculatePageVisibilityFromTheStartOfPageLoad=config.enableBetterPageVisibilityApi&&isPageLoad;moreAccuratePageVisibilityAtTTI=calculatePageVisibilityFromTheStartOfPageLoad?getMoreAccuratePageVisibilityUpToTTI(interaction):null;moreAccuratePageVisibilityAtTTAI=calculatePageVisibilityFromTheStartOfPageLoad?(0,_getMoreAccuratePageVisibilityUpToTtai.getMoreAccuratePageVisibilityUpToTTAI)(interaction):null;labelStack=interaction.labelStack?{labelStack:(0,_utils.optimizeLabelStack)(interaction.labelStack,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type))}:{};// Page Load
8
+ try{return acc+item.cssRules.length;}catch(_unused3){return acc;}},0);var styleElements=doc.querySelectorAll('style').length;var styleProps=doc.querySelectorAll('[style]');var styleDeclarations=Array.from(doc.querySelectorAll('[style]')).reduce(function(acc,item){try{if('style'in item){return acc+item.style.length;}else{return acc;}}catch(_unused4){return acc;}},0);return{'ufo:stylesheets':stylesheetCount,'ufo:styleElements':styleElements,'ufo:styleProps':styleProps.length,'ufo:styleDeclarations':styleDeclarations,'ufo:cssrules':cssrules};}catch(_unused5){return{};}}var regularTTAI;var expTTAI;function getErrorCounts(interaction){return{'ufo:errors:globalCount':(0,_globalErrorHandler.getGlobalErrorCount)(),'ufo:errors:count':interaction.errors.length};}function createInteractionMetricsPayload(_x,_x2,_x3,_x4,_x5){return _createInteractionMetricsPayload.apply(this,arguments);}function _createInteractionMetricsPayload(){_createInteractionMetricsPayload=(0,_asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(interaction,interactionId,experimental,criticalPayloadCount,vcMetrics){var _getVisibilityStateFr,_getVisibilityStateFr2,_window$location,_config$additionalPay;var interactionPayloadStart,config,end,start,ufoName,knownSegments,rate,type,abortReason,routeName,featureFlags,previousInteractionName,isPreviousInteractionAborted,abortedByInteractionName,responsiveness,unknownElementName,unknownElementHierarchy,hydration,pageVisibilityAtTTI,pageVisibilityAtTTAI,segments,segmentTree,isDetailedPayload,isPageLoad,calculatePageVisibilityFromTheStartOfPageLoad,moreAccuratePageVisibilityAtTTI,moreAccuratePageVisibilityAtTTAI,labelStack,getInitialPageLoadSSRMetrics,pageLoadInteractionMetrics,getDetailedInteractionMetrics,getPageLoadDetailedInteractionMetrics,newUFOName,resourceTimings,_yield$Promise$all,_yield$Promise$all2,finalVCMetrics,experimentalMetrics,paintMetrics,batteryInfo,getReactHydrationStats,payload,size,vcRev,rawData,rawDataSize,interactionMetricsFieldsToTrim,properties,interactionMetrics,_iterator,_step,field,trimmedFields;return _regenerator.default.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:interactionPayloadStart=performance.now();config=(0,_config.getConfig)();if(config){_context.next=4;break;}throw Error('UFO Configuration not provided');case 4:end=interaction.end,start=interaction.start,ufoName=interaction.ufoName,knownSegments=interaction.knownSegments,rate=interaction.rate,type=interaction.type,abortReason=interaction.abortReason,routeName=interaction.routeName,featureFlags=interaction.featureFlags,previousInteractionName=interaction.previousInteractionName,isPreviousInteractionAborted=interaction.isPreviousInteractionAborted,abortedByInteractionName=interaction.abortedByInteractionName,responsiveness=interaction.responsiveness,unknownElementName=interaction.unknownElementName,unknownElementHierarchy=interaction.unknownElementHierarchy,hydration=interaction.hydration;pageVisibilityAtTTI=(0,_platformFeatureFlags.fg)('platform_ufo_use_native_page_visibility_api')?(_getVisibilityStateFr=(0,_getVisibilityStateFromPerformance.getVisibilityStateFromPerformance)(getBm3EndTimeOrFallbackValue(interaction)))!==null&&_getVisibilityStateFr!==void 0?_getVisibilityStateFr:'mixed':getPageVisibilityUpToTTI(interaction);pageVisibilityAtTTAI=(0,_platformFeatureFlags.fg)('platform_ufo_use_native_page_visibility_api')?(_getVisibilityStateFr2=(0,_getVisibilityStateFromPerformance.getVisibilityStateFromPerformance)(interaction.end))!==null&&_getVisibilityStateFr2!==void 0?_getVisibilityStateFr2:'mixed':(0,_getPageVisibilityUpToTtai.default)(interaction);segments=!(0,_platformFeatureFlags.fg)('platform_ufo_remove_deprecated_config_fields')&&config.killswitchNestedSegments?[]:knownSegments;segmentTree=(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)==='2.0.0'?(0,_utils.buildSegmentTree)(segments.map(function(segment){return segment.labelStack;})):{};isDetailedPayload=pageVisibilityAtTTAI==='visible';isPageLoad=type==='page_load';calculatePageVisibilityFromTheStartOfPageLoad=config.enableBetterPageVisibilityApi&&isPageLoad;moreAccuratePageVisibilityAtTTI=calculatePageVisibilityFromTheStartOfPageLoad?getMoreAccuratePageVisibilityUpToTTI(interaction):null;moreAccuratePageVisibilityAtTTAI=calculatePageVisibilityFromTheStartOfPageLoad?(0,_getMoreAccuratePageVisibilityUpToTtai.getMoreAccuratePageVisibilityUpToTTAI)(interaction):null;labelStack=interaction.labelStack?{labelStack:(0,_utils.optimizeLabelStack)(interaction.labelStack,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type))}:{};// Page Load
9
9
  getInitialPageLoadSSRMetrics=function getInitialPageLoadSSRMetrics(){var _config$ssr;if(!isPageLoad){return{};}var config=(0,_config.getConfig)();var SSRDoneTimeValue=(0,_getSsrDoneTimeValue.default)(config);var SSRDoneTime=SSRDoneTimeValue!==undefined?{SSRDoneTime:Math.round(SSRDoneTimeValue)}:{};var isBM3ConfigSSRDoneAsFmp=interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp;var isUFOConfigSSRDoneAsFmp=interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp||!!(config!==null&&config!==void 0&&(_config$ssr=config.ssr)!==null&&_config$ssr!==void 0&&_config$ssr.getSSRDoneTime);if(!experimental&&(isBM3ConfigSSRDoneAsFmp||isUFOConfigSSRDoneAsFmp)&&SSRDoneTimeValue!==undefined){try{performance.mark("FMP",{startTime:SSRDoneTimeValue,detail:{devtools:{dataType:'marker'}}});}catch(_unused6){}}return _objectSpread(_objectSpread({},SSRDoneTime),{},{isBM3ConfigSSRDoneAsFmp:isBM3ConfigSSRDoneAsFmp,isUFOConfigSSRDoneAsFmp:isUFOConfigSSRDoneAsFmp});};pageLoadInteractionMetrics=getInitialPageLoadSSRMetrics();// Detailed payload. Page visibility = visible
10
10
  getDetailedInteractionMetrics=function getDetailedInteractionMetrics(resourceTimings){if(experimental||window.__UFO_COMPACT_PAYLOAD__||!isDetailedPayload){return{};}var spans=[].concat((0,_toConsumableArray2.default)(interaction.spans),(0,_toConsumableArray2.default)(_interactionMetrics.interactionSpans));_interactionMetrics.interactionSpans.length=0;var shouldInclude3pHolds=(0,_config.shouldUseRawDataThirdPartyBehavior)(ufoName,type);var basePayload={errors:interaction.errors.map(function(_ref2){var labelStack=_ref2.labelStack,others=(0,_objectWithoutProperties2.default)(_ref2,_excluded);return _objectSpread(_objectSpread({},others),{},{labelStack:labelStack&&(0,_utils.optimizeLabelStack)(labelStack,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type))});}),holdActive:(0,_toConsumableArray2.default)(interaction.holdActive.values()),redirects:optimizeRedirects(interaction.redirects,start),holdInfo:(0,_optimizeHoldInfo.optimizeHoldInfo)(experimental?interaction.holdExpInfo:interaction.holdInfo,start,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),spans:(0,_optimizeSpans.optimizeSpans)(spans,start,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),requestInfo:(0,_optimizeRequestInfo.optimizeRequestInfo)(interaction.requestInfo,start,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),customTimings:(0,_optimizeCustomTimings.optimizeCustomTimings)(interaction.customTimings,start),bundleEvalTimings:objectToArray(getBundleEvalTimings(start)),resourceTimings:objectToArray(resourceTimings)};// Include third-party holds when feature flag is active
11
11
  if(shouldInclude3pHolds){var _interaction$hold3pIn;return _objectSpread(_objectSpread({},basePayload),{},{hold3pActive:interaction.hold3pActive?(0,_toConsumableArray2.default)(interaction.hold3pActive.values()):[],hold3pInfo:(0,_optimizeHoldInfo.optimizeHoldInfo)((_interaction$hold3pIn=interaction.hold3pInfo)!==null&&_interaction$hold3pIn!==void 0?_interaction$hold3pIn:[],start,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type))});}return basePayload;};// Page load & detailed payload
@@ -29,6 +29,8 @@ var getExcludedEntryTypes = function getExcludedEntryTypes() {
29
29
  var excludedEntryTypes = ['layout-shift:same-rect', 'mutation:attribute:non-visual-input-name'];
30
30
  return excludedEntryTypes;
31
31
  };
32
+ var fy26_04_excluded_attributes = ['data-is-hovered' // non-visual attribute
33
+ ];
32
34
  var VCCalculator_FY26_04 = exports.default = /*#__PURE__*/function (_VCCalculator_FY25_) {
33
35
  function VCCalculator_FY26_04() {
34
36
  (0, _classCallCheck2.default)(this, VCCalculator_FY26_04);
@@ -42,9 +44,12 @@ var VCCalculator_FY26_04 = exports.default = /*#__PURE__*/function (_VCCalculato
42
44
  if (isEntryIncludedInV3 && !getExcludedEntryTypes().includes(entry.data.type)) {
43
45
  return true;
44
46
  }
45
- if (entry.data.type === 'mutation:display-contents-children-attribute' && (0, _platformFeatureFlags.fg)('platform_ufo_fix_ttvc_v4_attribute_exclusions')) {
46
- var entryData = entry.data;
47
- var attributeName = entryData.attributeName;
47
+ var entryData = entry.data;
48
+ var attributeName = entryData.attributeName;
49
+ if (entry.data.type === 'mutation:attribute' && (!attributeName || fy26_04_excluded_attributes.includes(attributeName) && (0, _platformFeatureFlags.fg)('platform_ufo_data-is-hovered-v4-exclusion'))) {
50
+ return false;
51
+ }
52
+ if (entryData.type === 'mutation:display-contents-children-attribute' && (0, _platformFeatureFlags.fg)('platform_ufo_fix_ttvc_v4_attribute_exclusions')) {
48
53
  if (!attributeName || attributeName.startsWith('data-test') || _constants.KNOWN_ATTRIBUTES_THAT_DOES_NOT_CAUSE_LAYOUT_SHIFTS.includes(attributeName) || _constants.NON_VISUAL_ARIA_ATTRIBUTES.includes(attributeName) || _constants.THIRD_PARTY_BROWSER_EXTENSION_ATTRIBUTES.includes(attributeName)) {
49
54
  return false;
50
55
  }
@@ -8,6 +8,7 @@ import getPayloadSize from '../create-payload/utils/get-payload-size';
8
8
  import { getReactUFOPayloadVersion } from '../create-payload/utils/get-react-ufo-payload-version';
9
9
  import getTTAI from '../create-payload/utils/get-ttai';
10
10
  import getVCMetrics from '../create-payload/utils/get-vc-metrics';
11
+ import { getVisibilityStateFromPerformance } from '../create-payload/utils/get-visibility-state-from-performance';
11
12
  import { optimizeApdex } from '../create-payload/utils/optimize-apdex';
12
13
  import { optimizeCustomTimings } from '../create-payload/utils/optimize-custom-timings';
13
14
  import { optimizeHoldInfo } from '../create-payload/utils/optimize-hold-info';
@@ -17,7 +18,7 @@ import { optimizeRequestInfo } from '../create-payload/utils/optimize-request-in
17
18
  import { optimizeSpans } from '../create-payload/utils/optimize-spans';
18
19
  import { interactionSpans as atlaskitInteractionSpans } from '../interaction-metrics';
19
20
  async function createInteractionExtraLogPayload(interactionId, interaction, lastInteractionFinish, lastInteractionFinishVCResult) {
20
- var _getTTAI, _lastInteractionFinis, _getTTAI2, _window$location;
21
+ var _getVisibilityStateFr, _getTTAI, _lastInteractionFinis, _getTTAI2, _window$location;
21
22
  const config = getConfig();
22
23
  if (!config) {
23
24
  throw Error('UFO Configuration not provided');
@@ -41,7 +42,7 @@ async function createInteractionExtraLogPayload(interactionId, interaction, last
41
42
  if (!coinflip(configRate)) {
42
43
  return null;
43
44
  }
44
- const pageVisibilityAtTTAI = getPageVisibilityUpToTTAI(interaction);
45
+ const pageVisibilityAtTTAI = fg('platform_ufo_use_native_page_visibility_api') ? (_getVisibilityStateFr = getVisibilityStateFromPerformance(interaction.end)) !== null && _getVisibilityStateFr !== void 0 ? _getVisibilityStateFr : 'mixed' : getPageVisibilityUpToTTAI(interaction);
45
46
  const isPageLoad = type === 'page_load' || type === 'transition';
46
47
  if (!isPageLoad || minorInteractions !== undefined && minorInteractions.length > 0) {
47
48
  // Not send if aborted by minor interaction for now
@@ -5,7 +5,7 @@ return{'event:assets':assets};}return{};}catch{// Skip CHR in case of error
5
5
  return{};}}function getTracingContextData(interaction){const{trace,start}=interaction;let tracingContextData={};if(trace){tracingContextData={'ufo:tracingContext':{'X-B3-TraceId':trace.traceId,'X-B3-SpanId':trace.spanId,// eslint-disable-next-line compat/compat
6
6
  browserTimeOrigin:+(performance.timeOrigin+start).toFixed(2)}};}return tracingContextData;}function optimizeCustomData(interaction){const{customData,cohortingCustomData,legacyMetrics}=interaction;const customDataMap=customData.reduce((result,{labelStack,data})=>{var _result$get$data,_result$get;const label=stringifyLabelStackFully(labelStack);const value=(_result$get$data=(_result$get=result.get(label))===null||_result$get===void 0?void 0:_result$get.data)!==null&&_result$get$data!==void 0?_result$get$data:{};result.set(label,{labelStack:optimizeLabelStack(labelStack,getReactUFOPayloadVersion(interaction.type)),data:Object.assign(value,data)});return result;},new Map());// Merge cohorting custom data into the same map
7
7
  if(cohortingCustomData&&cohortingCustomData.size>0){var _interaction$labelSta,_customDataMap$get$da,_customDataMap$get,_interaction$labelSta2;const label=stringifyLabelStackFully((_interaction$labelSta=interaction.labelStack)!==null&&_interaction$labelSta!==void 0?_interaction$labelSta:[]);const value=(_customDataMap$get$da=(_customDataMap$get=customDataMap.get(label))===null||_customDataMap$get===void 0?void 0:_customDataMap$get.data)!==null&&_customDataMap$get$da!==void 0?_customDataMap$get$da:{};customDataMap.set(label,{labelStack:optimizeLabelStack((_interaction$labelSta2=interaction.labelStack)!==null&&_interaction$labelSta2!==void 0?_interaction$labelSta2:[],getReactUFOPayloadVersion(interaction.type)),data:Object.assign(value,Object.fromEntries(cohortingCustomData))});}if(legacyMetrics){const legacyMetricsFiltered=legacyMetrics.filter(item=>item.type==='PAGE_LOAD').reduce((result,currentValue)=>{for(const[key,value]of Object.entries(currentValue.custom||{})){var _result$get$data2,_result$get2;const label=stringifyLabelStackFully([]);const labelValue=(_result$get$data2=(_result$get2=result.get(label))===null||_result$get2===void 0?void 0:_result$get2.data)!==null&&_result$get$data2!==void 0?_result$get$data2:{};result.set(label,{labelStack:optimizeLabelStack([],getReactUFOPayloadVersion(interaction.type)),data:Object.assign(labelValue,{[key]:value})});}return result;},new Map());return[...customDataMap.values(),...legacyMetricsFiltered.values()];}return[...customDataMap.values()];}function optimizeRedirects(redirects,interactionStart){let lastRedirectTime=interactionStart;const updatedRedirects=redirects.sort((a,b)=>a.time-b.time).reduce((result,redirect)=>{const{fromInteractionName,time}=redirect;if(lastRedirectTime>=interactionStart){result.push({labelStack:[{n:fromInteractionName}],startTime:Math.round(lastRedirectTime),endTime:Math.round(time)});}lastRedirectTime=time;return result;},[]);return updatedRedirects;}function objectToArray(obj={}){return Object.keys(obj).reduce((result,key)=>{result.push({label:key,data:obj[key]});return result;},[]);}function getBM3SubmetricsTimings(submetrics){if(!submetrics){return null;}const submetricsTimings=submetrics.filter(item=>{return typeof item.stop==='number'&&!!item.key&&typeof item.start==='number';}).map(item=>{let childSubmetrics;const newKey=`include/${item.key}`;if(item.submetrics){childSubmetrics=getBM3SubmetricsTimings(item.submetrics);}return{[newKey]:{endTime:item.stop-item.start,startTime:item.start},...(childSubmetrics?childSubmetrics:{})};});return submetricsTimings;}function getBm3TrackerTimings(interaction){const interactionLegacyMetrics=interaction.legacyMetrics;if(!interactionLegacyMetrics){return{};}const legacyMetrics=interactionLegacyMetrics.map(item=>{var _item$config,_item$config2,_item$marks;return{key:item.key,startTime:item.start,stopTime:item.stop,type:(_item$config=item.config)===null||_item$config===void 0?void 0:_item$config.type,reactUFOName:(_item$config2=item.config)===null||_item$config2===void 0?void 0:_item$config2.reactUFOName,fmp:((_item$marks=item.marks)===null||_item$marks===void 0?void 0:_item$marks['fmp'])||item.stop,source:'bm3',timings:getBm3Timings(item.marks,item.config.timings),submetrics:getBM3SubmetricsTimings(item.submetrics),pageVisibleState:item.pageVisibleState};}).filter(item=>!!item.type);return{legacyMetrics};}function getStylesheetMetrics(){try{const doc=getDocument();if(!doc){return{};}const stylesheets=Array.from(doc.styleSheets);const stylesheetCount=stylesheets.length;const cssrules=Array.from(doc.styleSheets).reduce((acc,item)=>{// Other domain stylesheets throw a SecurityError
8
- try{return acc+item.cssRules.length;}catch{return acc;}},0);const styleElements=doc.querySelectorAll('style').length;const styleProps=doc.querySelectorAll('[style]');const styleDeclarations=Array.from(doc.querySelectorAll('[style]')).reduce((acc,item)=>{try{if('style'in item){return acc+item.style.length;}else{return acc;}}catch{return acc;}},0);return{'ufo:stylesheets':stylesheetCount,'ufo:styleElements':styleElements,'ufo:styleProps':styleProps.length,'ufo:styleDeclarations':styleDeclarations,'ufo:cssrules':cssrules};}catch{return{};}}let regularTTAI;let expTTAI;function getErrorCounts(interaction){return{'ufo:errors:globalCount':getGlobalErrorCount(),'ufo:errors:count':interaction.errors.length};}async function createInteractionMetricsPayload(interaction,interactionId,experimental,criticalPayloadCount,vcMetrics){var _window$location,_config$additionalPay;const interactionPayloadStart=performance.now();const config=getConfig();if(!config){throw Error('UFO Configuration not provided');}const{end,start,ufoName,knownSegments,rate,type,abortReason,routeName,featureFlags,previousInteractionName,isPreviousInteractionAborted,abortedByInteractionName,responsiveness,unknownElementName,unknownElementHierarchy,hydration}=interaction;const pageVisibilityAtTTI=getPageVisibilityUpToTTI(interaction);const pageVisibilityAtTTAI=getPageVisibilityUpToTTAI(interaction);const segments=!fg('platform_ufo_remove_deprecated_config_fields')&&config.killswitchNestedSegments?[]:knownSegments;const segmentTree=getReactUFOPayloadVersion(interaction.type)==='2.0.0'?buildSegmentTree(segments.map(segment=>segment.labelStack)):{};const isDetailedPayload=pageVisibilityAtTTAI==='visible';const isPageLoad=type==='page_load';const calculatePageVisibilityFromTheStartOfPageLoad=config.enableBetterPageVisibilityApi&&isPageLoad;const moreAccuratePageVisibilityAtTTI=calculatePageVisibilityFromTheStartOfPageLoad?getMoreAccuratePageVisibilityUpToTTI(interaction):null;const moreAccuratePageVisibilityAtTTAI=calculatePageVisibilityFromTheStartOfPageLoad?getMoreAccuratePageVisibilityUpToTTAI(interaction):null;const labelStack=interaction.labelStack?{labelStack:optimizeLabelStack(interaction.labelStack,getReactUFOPayloadVersion(interaction.type))}:{};// Page Load
8
+ try{return acc+item.cssRules.length;}catch{return acc;}},0);const styleElements=doc.querySelectorAll('style').length;const styleProps=doc.querySelectorAll('[style]');const styleDeclarations=Array.from(doc.querySelectorAll('[style]')).reduce((acc,item)=>{try{if('style'in item){return acc+item.style.length;}else{return acc;}}catch{return acc;}},0);return{'ufo:stylesheets':stylesheetCount,'ufo:styleElements':styleElements,'ufo:styleProps':styleProps.length,'ufo:styleDeclarations':styleDeclarations,'ufo:cssrules':cssrules};}catch{return{};}}let regularTTAI;let expTTAI;function getErrorCounts(interaction){return{'ufo:errors:globalCount':getGlobalErrorCount(),'ufo:errors:count':interaction.errors.length};}async function createInteractionMetricsPayload(interaction,interactionId,experimental,criticalPayloadCount,vcMetrics){var _getVisibilityStateFr,_getVisibilityStateFr2,_window$location,_config$additionalPay;const interactionPayloadStart=performance.now();const config=getConfig();if(!config){throw Error('UFO Configuration not provided');}const{end,start,ufoName,knownSegments,rate,type,abortReason,routeName,featureFlags,previousInteractionName,isPreviousInteractionAborted,abortedByInteractionName,responsiveness,unknownElementName,unknownElementHierarchy,hydration}=interaction;const pageVisibilityAtTTI=fg('platform_ufo_use_native_page_visibility_api')?(_getVisibilityStateFr=getVisibilityStateFromPerformance(getBm3EndTimeOrFallbackValue(interaction)))!==null&&_getVisibilityStateFr!==void 0?_getVisibilityStateFr:'mixed':getPageVisibilityUpToTTI(interaction);const pageVisibilityAtTTAI=fg('platform_ufo_use_native_page_visibility_api')?(_getVisibilityStateFr2=getVisibilityStateFromPerformance(interaction.end))!==null&&_getVisibilityStateFr2!==void 0?_getVisibilityStateFr2:'mixed':getPageVisibilityUpToTTAI(interaction);const segments=!fg('platform_ufo_remove_deprecated_config_fields')&&config.killswitchNestedSegments?[]:knownSegments;const segmentTree=getReactUFOPayloadVersion(interaction.type)==='2.0.0'?buildSegmentTree(segments.map(segment=>segment.labelStack)):{};const isDetailedPayload=pageVisibilityAtTTAI==='visible';const isPageLoad=type==='page_load';const calculatePageVisibilityFromTheStartOfPageLoad=config.enableBetterPageVisibilityApi&&isPageLoad;const moreAccuratePageVisibilityAtTTI=calculatePageVisibilityFromTheStartOfPageLoad?getMoreAccuratePageVisibilityUpToTTI(interaction):null;const moreAccuratePageVisibilityAtTTAI=calculatePageVisibilityFromTheStartOfPageLoad?getMoreAccuratePageVisibilityUpToTTAI(interaction):null;const labelStack=interaction.labelStack?{labelStack:optimizeLabelStack(interaction.labelStack,getReactUFOPayloadVersion(interaction.type))}:{};// Page Load
9
9
  const getInitialPageLoadSSRMetrics=()=>{var _config$ssr;if(!isPageLoad){return{};}const config=getConfig();const SSRDoneTimeValue=getSSRDoneTimeValue(config);const SSRDoneTime=SSRDoneTimeValue!==undefined?{SSRDoneTime:Math.round(SSRDoneTimeValue)}:{};const isBM3ConfigSSRDoneAsFmp=interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp;const isUFOConfigSSRDoneAsFmp=interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp||!!(config!==null&&config!==void 0&&(_config$ssr=config.ssr)!==null&&_config$ssr!==void 0&&_config$ssr.getSSRDoneTime);if(!experimental&&(isBM3ConfigSSRDoneAsFmp||isUFOConfigSSRDoneAsFmp)&&SSRDoneTimeValue!==undefined){try{performance.mark(`FMP`,{startTime:SSRDoneTimeValue,detail:{devtools:{dataType:'marker'}}});}catch{}}return{...SSRDoneTime,isBM3ConfigSSRDoneAsFmp,isUFOConfigSSRDoneAsFmp};};const pageLoadInteractionMetrics=getInitialPageLoadSSRMetrics();// Detailed payload. Page visibility = visible
10
10
  const getDetailedInteractionMetrics=resourceTimings=>{if(experimental||window.__UFO_COMPACT_PAYLOAD__||!isDetailedPayload){return{};}const spans=[...interaction.spans,...atlaskitInteractionSpans];atlaskitInteractionSpans.length=0;const shouldInclude3pHolds=shouldUseRawDataThirdPartyBehavior(ufoName,type);const basePayload={errors:interaction.errors.map(({labelStack,...others})=>({...others,labelStack:labelStack&&optimizeLabelStack(labelStack,getReactUFOPayloadVersion(interaction.type))})),holdActive:[...interaction.holdActive.values()],redirects:optimizeRedirects(interaction.redirects,start),holdInfo:optimizeHoldInfo(experimental?interaction.holdExpInfo:interaction.holdInfo,start,getReactUFOPayloadVersion(interaction.type)),spans:optimizeSpans(spans,start,getReactUFOPayloadVersion(interaction.type)),requestInfo:optimizeRequestInfo(interaction.requestInfo,start,getReactUFOPayloadVersion(interaction.type)),customTimings:optimizeCustomTimings(interaction.customTimings,start),bundleEvalTimings:objectToArray(getBundleEvalTimings(start)),resourceTimings:objectToArray(resourceTimings)};// Include third-party holds when feature flag is active
11
11
  if(shouldInclude3pHolds){var _interaction$hold3pIn;return{...basePayload,hold3pActive:interaction.hold3pActive?[...interaction.hold3pActive.values()]:[],hold3pInfo:optimizeHoldInfo((_interaction$hold3pIn=interaction.hold3pInfo)!==null&&_interaction$hold3pIn!==void 0?_interaction$hold3pIn:[],start,getReactUFOPayloadVersion(interaction.type))};}return basePayload;};// Page load & detailed payload
@@ -13,6 +13,8 @@ const getExcludedEntryTypes = () => {
13
13
  const excludedEntryTypes = ['layout-shift:same-rect', 'mutation:attribute:non-visual-input-name'];
14
14
  return excludedEntryTypes;
15
15
  };
16
+ const fy26_04_excluded_attributes = ['data-is-hovered' // non-visual attribute
17
+ ];
16
18
  export default class VCCalculator_FY26_04 extends VCCalculator_FY25_03 {
17
19
  constructor() {
18
20
  super('fy26.04');
@@ -22,9 +24,14 @@ export default class VCCalculator_FY26_04 extends VCCalculator_FY25_03 {
22
24
  if (isEntryIncludedInV3 && !getExcludedEntryTypes().includes(entry.data.type)) {
23
25
  return true;
24
26
  }
25
- if (entry.data.type === 'mutation:display-contents-children-attribute' && fg('platform_ufo_fix_ttvc_v4_attribute_exclusions')) {
26
- const entryData = entry.data;
27
- const attributeName = entryData.attributeName;
27
+ const entryData = entry.data;
28
+ const {
29
+ attributeName
30
+ } = entryData;
31
+ if (entry.data.type === 'mutation:attribute' && (!attributeName || fy26_04_excluded_attributes.includes(attributeName) && fg('platform_ufo_data-is-hovered-v4-exclusion'))) {
32
+ return false;
33
+ }
34
+ if (entryData.type === 'mutation:display-contents-children-attribute' && fg('platform_ufo_fix_ttvc_v4_attribute_exclusions')) {
28
35
  if (!attributeName || attributeName.startsWith('data-test') || KNOWN_ATTRIBUTES_THAT_DOES_NOT_CAUSE_LAYOUT_SHIFTS.includes(attributeName) || NON_VISUAL_ARIA_ATTRIBUTES.includes(attributeName) || THIRD_PARTY_BROWSER_EXTENSION_ATTRIBUTES.includes(attributeName)) {
29
36
  return false;
30
37
  }
@@ -16,6 +16,7 @@ import getPayloadSize from '../create-payload/utils/get-payload-size';
16
16
  import { getReactUFOPayloadVersion } from '../create-payload/utils/get-react-ufo-payload-version';
17
17
  import getTTAI from '../create-payload/utils/get-ttai';
18
18
  import getVCMetrics from '../create-payload/utils/get-vc-metrics';
19
+ import { getVisibilityStateFromPerformance } from '../create-payload/utils/get-visibility-state-from-performance';
19
20
  import { optimizeApdex } from '../create-payload/utils/optimize-apdex';
20
21
  import { optimizeCustomTimings } from '../create-payload/utils/optimize-custom-timings';
21
22
  import { optimizeHoldInfo } from '../create-payload/utils/optimize-hold-info';
@@ -29,7 +30,7 @@ function createInteractionExtraLogPayload(_x, _x2, _x3, _x4) {
29
30
  }
30
31
  function _createInteractionExtraLogPayload() {
31
32
  _createInteractionExtraLogPayload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(interactionId, interaction, lastInteractionFinish, lastInteractionFinishVCResult) {
32
- var _getTTAI, _lastInteractionFinis, _getTTAI2, _window$location;
33
+ var _getVisibilityStateFr, _getTTAI, _lastInteractionFinis, _getTTAI2, _window$location;
33
34
  var config, end, start, ufoName, rate, type, abortReason, routeName, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, knownSegments, minorInteractions, sanitisedUfoName, configRate, pageVisibilityAtTTAI, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTAI, extraTTAI, newUFOName, finalVCMetrics, vcRevisionPayload, effectiveVCRevisionPayload, normalTTAI, lastInteractionFinishStart, lastInteractionFinishEnd, lastInteractionFinishVC90, lastInteractionFinishVCClean, lastInteractionFinishVCRev, lastInteractionFinishRevision, isThirdParty, filteredData, getDetailedInteractionMetrics, segments3p, segmentTree, payload;
34
35
  return _regeneratorRuntime.wrap(function _callee$(_context) {
35
36
  while (1) switch (_context.prev = _context.next) {
@@ -50,7 +51,7 @@ function _createInteractionExtraLogPayload() {
50
51
  }
51
52
  return _context.abrupt("return", null);
52
53
  case 8:
53
- pageVisibilityAtTTAI = getPageVisibilityUpToTTAI(interaction);
54
+ pageVisibilityAtTTAI = fg('platform_ufo_use_native_page_visibility_api') ? (_getVisibilityStateFr = getVisibilityStateFromPerformance(interaction.end)) !== null && _getVisibilityStateFr !== void 0 ? _getVisibilityStateFr : 'mixed' : getPageVisibilityUpToTTAI(interaction);
54
55
  isPageLoad = type === 'page_load' || type === 'transition';
55
56
  if (!(!isPageLoad || minorInteractions !== undefined && minorInteractions.length > 0)) {
56
57
  _context.next = 12;
@@ -5,7 +5,7 @@ return{'event:assets':assets};}return{};}catch(_unused2){// Skip CHR in case of
5
5
  return{};}}function getTracingContextData(interaction){var trace=interaction.trace,start=interaction.start;var tracingContextData={};if(trace){tracingContextData={'ufo:tracingContext':{'X-B3-TraceId':trace.traceId,'X-B3-SpanId':trace.spanId,// eslint-disable-next-line compat/compat
6
6
  browserTimeOrigin:+(performance.timeOrigin+start).toFixed(2)}};}return tracingContextData;}function optimizeCustomData(interaction){var customData=interaction.customData,cohortingCustomData=interaction.cohortingCustomData,legacyMetrics=interaction.legacyMetrics;var customDataMap=customData.reduce(function(result,_ref){var _result$get$data,_result$get;var labelStack=_ref.labelStack,data=_ref.data;var label=stringifyLabelStackFully(labelStack);var value=(_result$get$data=(_result$get=result.get(label))===null||_result$get===void 0?void 0:_result$get.data)!==null&&_result$get$data!==void 0?_result$get$data:{};result.set(label,{labelStack:optimizeLabelStack(labelStack,getReactUFOPayloadVersion(interaction.type)),data:Object.assign(value,data)});return result;},new Map());// Merge cohorting custom data into the same map
7
7
  if(cohortingCustomData&&cohortingCustomData.size>0){var _interaction$labelSta,_customDataMap$get$da,_customDataMap$get,_interaction$labelSta2;var label=stringifyLabelStackFully((_interaction$labelSta=interaction.labelStack)!==null&&_interaction$labelSta!==void 0?_interaction$labelSta:[]);var value=(_customDataMap$get$da=(_customDataMap$get=customDataMap.get(label))===null||_customDataMap$get===void 0?void 0:_customDataMap$get.data)!==null&&_customDataMap$get$da!==void 0?_customDataMap$get$da:{};customDataMap.set(label,{labelStack:optimizeLabelStack((_interaction$labelSta2=interaction.labelStack)!==null&&_interaction$labelSta2!==void 0?_interaction$labelSta2:[],getReactUFOPayloadVersion(interaction.type)),data:Object.assign(value,Object.fromEntries(cohortingCustomData))});}if(legacyMetrics){var legacyMetricsFiltered=legacyMetrics.filter(function(item){return item.type==='PAGE_LOAD';}).reduce(function(result,currentValue){for(var _i=0,_Object$entries=Object.entries(currentValue.custom||{});_i<_Object$entries.length;_i++){var _result$get$data2,_result$get2;var _Object$entries$_i=_slicedToArray(_Object$entries[_i],2),key=_Object$entries$_i[0],_value=_Object$entries$_i[1];var _label=stringifyLabelStackFully([]);var labelValue=(_result$get$data2=(_result$get2=result.get(_label))===null||_result$get2===void 0?void 0:_result$get2.data)!==null&&_result$get$data2!==void 0?_result$get$data2:{};result.set(_label,{labelStack:optimizeLabelStack([],getReactUFOPayloadVersion(interaction.type)),data:Object.assign(labelValue,_defineProperty({},key,_value))});}return result;},new Map());return[].concat(_toConsumableArray(customDataMap.values()),_toConsumableArray(legacyMetricsFiltered.values()));}return _toConsumableArray(customDataMap.values());}function optimizeRedirects(redirects,interactionStart){var lastRedirectTime=interactionStart;var updatedRedirects=redirects.sort(function(a,b){return a.time-b.time;}).reduce(function(result,redirect){var fromInteractionName=redirect.fromInteractionName,time=redirect.time;if(lastRedirectTime>=interactionStart){result.push({labelStack:[{n:fromInteractionName}],startTime:Math.round(lastRedirectTime),endTime:Math.round(time)});}lastRedirectTime=time;return result;},[]);return updatedRedirects;}function objectToArray(){var obj=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return Object.keys(obj).reduce(function(result,key){result.push({label:key,data:obj[key]});return result;},[]);}function getBM3SubmetricsTimings(submetrics){if(!submetrics){return null;}var submetricsTimings=submetrics.filter(function(item){return typeof item.stop==='number'&&!!item.key&&typeof item.start==='number';}).map(function(item){var childSubmetrics;var newKey="include/".concat(item.key);if(item.submetrics){childSubmetrics=getBM3SubmetricsTimings(item.submetrics);}return _objectSpread(_defineProperty({},newKey,{endTime:item.stop-item.start,startTime:item.start}),childSubmetrics?childSubmetrics:{});});return submetricsTimings;}function getBm3TrackerTimings(interaction){var interactionLegacyMetrics=interaction.legacyMetrics;if(!interactionLegacyMetrics){return{};}var legacyMetrics=interactionLegacyMetrics.map(function(item){var _item$config,_item$config2,_item$marks;return{key:item.key,startTime:item.start,stopTime:item.stop,type:(_item$config=item.config)===null||_item$config===void 0?void 0:_item$config.type,reactUFOName:(_item$config2=item.config)===null||_item$config2===void 0?void 0:_item$config2.reactUFOName,fmp:((_item$marks=item.marks)===null||_item$marks===void 0?void 0:_item$marks['fmp'])||item.stop,source:'bm3',timings:getBm3Timings(item.marks,item.config.timings),submetrics:getBM3SubmetricsTimings(item.submetrics),pageVisibleState:item.pageVisibleState};}).filter(function(item){return!!item.type;});return{legacyMetrics:legacyMetrics};}function getStylesheetMetrics(){try{var doc=getDocument();if(!doc){return{};}var stylesheets=Array.from(doc.styleSheets);var stylesheetCount=stylesheets.length;var cssrules=Array.from(doc.styleSheets).reduce(function(acc,item){// Other domain stylesheets throw a SecurityError
8
- try{return acc+item.cssRules.length;}catch(_unused3){return acc;}},0);var styleElements=doc.querySelectorAll('style').length;var styleProps=doc.querySelectorAll('[style]');var styleDeclarations=Array.from(doc.querySelectorAll('[style]')).reduce(function(acc,item){try{if('style'in item){return acc+item.style.length;}else{return acc;}}catch(_unused4){return acc;}},0);return{'ufo:stylesheets':stylesheetCount,'ufo:styleElements':styleElements,'ufo:styleProps':styleProps.length,'ufo:styleDeclarations':styleDeclarations,'ufo:cssrules':cssrules};}catch(_unused5){return{};}}var regularTTAI;var expTTAI;function getErrorCounts(interaction){return{'ufo:errors:globalCount':getGlobalErrorCount(),'ufo:errors:count':interaction.errors.length};}function createInteractionMetricsPayload(_x,_x2,_x3,_x4,_x5){return _createInteractionMetricsPayload.apply(this,arguments);}function _createInteractionMetricsPayload(){_createInteractionMetricsPayload=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(interaction,interactionId,experimental,criticalPayloadCount,vcMetrics){var _window$location,_config$additionalPay;var interactionPayloadStart,config,end,start,ufoName,knownSegments,rate,type,abortReason,routeName,featureFlags,previousInteractionName,isPreviousInteractionAborted,abortedByInteractionName,responsiveness,unknownElementName,unknownElementHierarchy,hydration,pageVisibilityAtTTI,pageVisibilityAtTTAI,segments,segmentTree,isDetailedPayload,isPageLoad,calculatePageVisibilityFromTheStartOfPageLoad,moreAccuratePageVisibilityAtTTI,moreAccuratePageVisibilityAtTTAI,labelStack,getInitialPageLoadSSRMetrics,pageLoadInteractionMetrics,getDetailedInteractionMetrics,getPageLoadDetailedInteractionMetrics,newUFOName,resourceTimings,_yield$Promise$all,_yield$Promise$all2,finalVCMetrics,experimentalMetrics,paintMetrics,batteryInfo,getReactHydrationStats,payload,size,vcRev,rawData,rawDataSize,interactionMetricsFieldsToTrim,properties,interactionMetrics,_iterator,_step,field,trimmedFields;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:interactionPayloadStart=performance.now();config=getConfig();if(config){_context.next=4;break;}throw Error('UFO Configuration not provided');case 4:end=interaction.end,start=interaction.start,ufoName=interaction.ufoName,knownSegments=interaction.knownSegments,rate=interaction.rate,type=interaction.type,abortReason=interaction.abortReason,routeName=interaction.routeName,featureFlags=interaction.featureFlags,previousInteractionName=interaction.previousInteractionName,isPreviousInteractionAborted=interaction.isPreviousInteractionAborted,abortedByInteractionName=interaction.abortedByInteractionName,responsiveness=interaction.responsiveness,unknownElementName=interaction.unknownElementName,unknownElementHierarchy=interaction.unknownElementHierarchy,hydration=interaction.hydration;pageVisibilityAtTTI=getPageVisibilityUpToTTI(interaction);pageVisibilityAtTTAI=getPageVisibilityUpToTTAI(interaction);segments=!fg('platform_ufo_remove_deprecated_config_fields')&&config.killswitchNestedSegments?[]:knownSegments;segmentTree=getReactUFOPayloadVersion(interaction.type)==='2.0.0'?buildSegmentTree(segments.map(function(segment){return segment.labelStack;})):{};isDetailedPayload=pageVisibilityAtTTAI==='visible';isPageLoad=type==='page_load';calculatePageVisibilityFromTheStartOfPageLoad=config.enableBetterPageVisibilityApi&&isPageLoad;moreAccuratePageVisibilityAtTTI=calculatePageVisibilityFromTheStartOfPageLoad?getMoreAccuratePageVisibilityUpToTTI(interaction):null;moreAccuratePageVisibilityAtTTAI=calculatePageVisibilityFromTheStartOfPageLoad?getMoreAccuratePageVisibilityUpToTTAI(interaction):null;labelStack=interaction.labelStack?{labelStack:optimizeLabelStack(interaction.labelStack,getReactUFOPayloadVersion(interaction.type))}:{};// Page Load
8
+ try{return acc+item.cssRules.length;}catch(_unused3){return acc;}},0);var styleElements=doc.querySelectorAll('style').length;var styleProps=doc.querySelectorAll('[style]');var styleDeclarations=Array.from(doc.querySelectorAll('[style]')).reduce(function(acc,item){try{if('style'in item){return acc+item.style.length;}else{return acc;}}catch(_unused4){return acc;}},0);return{'ufo:stylesheets':stylesheetCount,'ufo:styleElements':styleElements,'ufo:styleProps':styleProps.length,'ufo:styleDeclarations':styleDeclarations,'ufo:cssrules':cssrules};}catch(_unused5){return{};}}var regularTTAI;var expTTAI;function getErrorCounts(interaction){return{'ufo:errors:globalCount':getGlobalErrorCount(),'ufo:errors:count':interaction.errors.length};}function createInteractionMetricsPayload(_x,_x2,_x3,_x4,_x5){return _createInteractionMetricsPayload.apply(this,arguments);}function _createInteractionMetricsPayload(){_createInteractionMetricsPayload=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(interaction,interactionId,experimental,criticalPayloadCount,vcMetrics){var _getVisibilityStateFr,_getVisibilityStateFr2,_window$location,_config$additionalPay;var interactionPayloadStart,config,end,start,ufoName,knownSegments,rate,type,abortReason,routeName,featureFlags,previousInteractionName,isPreviousInteractionAborted,abortedByInteractionName,responsiveness,unknownElementName,unknownElementHierarchy,hydration,pageVisibilityAtTTI,pageVisibilityAtTTAI,segments,segmentTree,isDetailedPayload,isPageLoad,calculatePageVisibilityFromTheStartOfPageLoad,moreAccuratePageVisibilityAtTTI,moreAccuratePageVisibilityAtTTAI,labelStack,getInitialPageLoadSSRMetrics,pageLoadInteractionMetrics,getDetailedInteractionMetrics,getPageLoadDetailedInteractionMetrics,newUFOName,resourceTimings,_yield$Promise$all,_yield$Promise$all2,finalVCMetrics,experimentalMetrics,paintMetrics,batteryInfo,getReactHydrationStats,payload,size,vcRev,rawData,rawDataSize,interactionMetricsFieldsToTrim,properties,interactionMetrics,_iterator,_step,field,trimmedFields;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:interactionPayloadStart=performance.now();config=getConfig();if(config){_context.next=4;break;}throw Error('UFO Configuration not provided');case 4:end=interaction.end,start=interaction.start,ufoName=interaction.ufoName,knownSegments=interaction.knownSegments,rate=interaction.rate,type=interaction.type,abortReason=interaction.abortReason,routeName=interaction.routeName,featureFlags=interaction.featureFlags,previousInteractionName=interaction.previousInteractionName,isPreviousInteractionAborted=interaction.isPreviousInteractionAborted,abortedByInteractionName=interaction.abortedByInteractionName,responsiveness=interaction.responsiveness,unknownElementName=interaction.unknownElementName,unknownElementHierarchy=interaction.unknownElementHierarchy,hydration=interaction.hydration;pageVisibilityAtTTI=fg('platform_ufo_use_native_page_visibility_api')?(_getVisibilityStateFr=getVisibilityStateFromPerformance(getBm3EndTimeOrFallbackValue(interaction)))!==null&&_getVisibilityStateFr!==void 0?_getVisibilityStateFr:'mixed':getPageVisibilityUpToTTI(interaction);pageVisibilityAtTTAI=fg('platform_ufo_use_native_page_visibility_api')?(_getVisibilityStateFr2=getVisibilityStateFromPerformance(interaction.end))!==null&&_getVisibilityStateFr2!==void 0?_getVisibilityStateFr2:'mixed':getPageVisibilityUpToTTAI(interaction);segments=!fg('platform_ufo_remove_deprecated_config_fields')&&config.killswitchNestedSegments?[]:knownSegments;segmentTree=getReactUFOPayloadVersion(interaction.type)==='2.0.0'?buildSegmentTree(segments.map(function(segment){return segment.labelStack;})):{};isDetailedPayload=pageVisibilityAtTTAI==='visible';isPageLoad=type==='page_load';calculatePageVisibilityFromTheStartOfPageLoad=config.enableBetterPageVisibilityApi&&isPageLoad;moreAccuratePageVisibilityAtTTI=calculatePageVisibilityFromTheStartOfPageLoad?getMoreAccuratePageVisibilityUpToTTI(interaction):null;moreAccuratePageVisibilityAtTTAI=calculatePageVisibilityFromTheStartOfPageLoad?getMoreAccuratePageVisibilityUpToTTAI(interaction):null;labelStack=interaction.labelStack?{labelStack:optimizeLabelStack(interaction.labelStack,getReactUFOPayloadVersion(interaction.type))}:{};// Page Load
9
9
  getInitialPageLoadSSRMetrics=function getInitialPageLoadSSRMetrics(){var _config$ssr;if(!isPageLoad){return{};}var config=getConfig();var SSRDoneTimeValue=getSSRDoneTimeValue(config);var SSRDoneTime=SSRDoneTimeValue!==undefined?{SSRDoneTime:Math.round(SSRDoneTimeValue)}:{};var isBM3ConfigSSRDoneAsFmp=interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp;var isUFOConfigSSRDoneAsFmp=interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp||!!(config!==null&&config!==void 0&&(_config$ssr=config.ssr)!==null&&_config$ssr!==void 0&&_config$ssr.getSSRDoneTime);if(!experimental&&(isBM3ConfigSSRDoneAsFmp||isUFOConfigSSRDoneAsFmp)&&SSRDoneTimeValue!==undefined){try{performance.mark("FMP",{startTime:SSRDoneTimeValue,detail:{devtools:{dataType:'marker'}}});}catch(_unused6){}}return _objectSpread(_objectSpread({},SSRDoneTime),{},{isBM3ConfigSSRDoneAsFmp:isBM3ConfigSSRDoneAsFmp,isUFOConfigSSRDoneAsFmp:isUFOConfigSSRDoneAsFmp});};pageLoadInteractionMetrics=getInitialPageLoadSSRMetrics();// Detailed payload. Page visibility = visible
10
10
  getDetailedInteractionMetrics=function getDetailedInteractionMetrics(resourceTimings){if(experimental||window.__UFO_COMPACT_PAYLOAD__||!isDetailedPayload){return{};}var spans=[].concat(_toConsumableArray(interaction.spans),_toConsumableArray(atlaskitInteractionSpans));atlaskitInteractionSpans.length=0;var shouldInclude3pHolds=shouldUseRawDataThirdPartyBehavior(ufoName,type);var basePayload={errors:interaction.errors.map(function(_ref2){var labelStack=_ref2.labelStack,others=_objectWithoutProperties(_ref2,_excluded);return _objectSpread(_objectSpread({},others),{},{labelStack:labelStack&&optimizeLabelStack(labelStack,getReactUFOPayloadVersion(interaction.type))});}),holdActive:_toConsumableArray(interaction.holdActive.values()),redirects:optimizeRedirects(interaction.redirects,start),holdInfo:optimizeHoldInfo(experimental?interaction.holdExpInfo:interaction.holdInfo,start,getReactUFOPayloadVersion(interaction.type)),spans:optimizeSpans(spans,start,getReactUFOPayloadVersion(interaction.type)),requestInfo:optimizeRequestInfo(interaction.requestInfo,start,getReactUFOPayloadVersion(interaction.type)),customTimings:optimizeCustomTimings(interaction.customTimings,start),bundleEvalTimings:objectToArray(getBundleEvalTimings(start)),resourceTimings:objectToArray(resourceTimings)};// Include third-party holds when feature flag is active
11
11
  if(shouldInclude3pHolds){var _interaction$hold3pIn;return _objectSpread(_objectSpread({},basePayload),{},{hold3pActive:interaction.hold3pActive?_toConsumableArray(interaction.hold3pActive.values()):[],hold3pInfo:optimizeHoldInfo((_interaction$hold3pIn=interaction.hold3pInfo)!==null&&_interaction$hold3pIn!==void 0?_interaction$hold3pIn:[],start,getReactUFOPayloadVersion(interaction.type))});}return basePayload;};// Page load & detailed payload
@@ -22,6 +22,8 @@ var getExcludedEntryTypes = function getExcludedEntryTypes() {
22
22
  var excludedEntryTypes = ['layout-shift:same-rect', 'mutation:attribute:non-visual-input-name'];
23
23
  return excludedEntryTypes;
24
24
  };
25
+ var fy26_04_excluded_attributes = ['data-is-hovered' // non-visual attribute
26
+ ];
25
27
  var VCCalculator_FY26_04 = /*#__PURE__*/function (_VCCalculator_FY25_) {
26
28
  function VCCalculator_FY26_04() {
27
29
  _classCallCheck(this, VCCalculator_FY26_04);
@@ -35,9 +37,12 @@ var VCCalculator_FY26_04 = /*#__PURE__*/function (_VCCalculator_FY25_) {
35
37
  if (isEntryIncludedInV3 && !getExcludedEntryTypes().includes(entry.data.type)) {
36
38
  return true;
37
39
  }
38
- if (entry.data.type === 'mutation:display-contents-children-attribute' && fg('platform_ufo_fix_ttvc_v4_attribute_exclusions')) {
39
- var entryData = entry.data;
40
- var attributeName = entryData.attributeName;
40
+ var entryData = entry.data;
41
+ var attributeName = entryData.attributeName;
42
+ if (entry.data.type === 'mutation:attribute' && (!attributeName || fy26_04_excluded_attributes.includes(attributeName) && fg('platform_ufo_data-is-hovered-v4-exclusion'))) {
43
+ return false;
44
+ }
45
+ if (entryData.type === 'mutation:display-contents-children-attribute' && fg('platform_ufo_fix_ttvc_v4_attribute_exclusions')) {
41
46
  if (!attributeName || attributeName.startsWith('data-test') || KNOWN_ATTRIBUTES_THAT_DOES_NOT_CAUSE_LAYOUT_SHIFTS.includes(attributeName) || NON_VISUAL_ARIA_ATTRIBUTES.includes(attributeName) || THIRD_PARTY_BROWSER_EXTENSION_ATTRIBUTES.includes(attributeName)) {
42
47
  return false;
43
48
  }
@@ -1 +1,2 @@
1
- export declare function getVisibilityStateFromPerformance(stop: number): string | null;
1
+ import type { PageVisibility } from "../../common/react-ufo-payload-schema";
2
+ export declare function getVisibilityStateFromPerformance(stop: number): PageVisibility | null;
@@ -1 +1,2 @@
1
- export declare function getVisibilityStateFromPerformance(stop: number): string | null;
1
+ import type { PageVisibility } from "../../common/react-ufo-payload-schema";
2
+ export declare function getVisibilityStateFromPerformance(stop: number): PageVisibility | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/react-ufo",
3
- "version": "4.16.1",
3
+ "version": "4.16.3",
4
4
  "description": "Parts of React UFO that are publicly available",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -107,6 +107,9 @@
107
107
  "platform_ufo_fix_post_interaction_check_vc_debug": {
108
108
  "type": "boolean"
109
109
  },
110
+ "platform_ufo_data-is-hovered-v4-exclusion": {
111
+ "type": "boolean"
112
+ },
110
113
  "platform_ufo_critical_metrics_payload": {
111
114
  "type": "boolean"
112
115
  },
@@ -188,6 +191,9 @@
188
191
  "platform_ufo_auto_add_ssr_entry_in_ttvc_v4": {
189
192
  "type": "boolean"
190
193
  },
194
+ "platform_ufo_use_native_page_visibility_api": {
195
+ "type": "boolean"
196
+ },
191
197
  "platform_ufo_enable_vc_raw_data": {
192
198
  "type": "boolean"
193
199
  },