@atlaskit/react-ufo 4.7.6 → 4.9.0

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.
Files changed (65) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/create-extra-search-page-interaction-payload/index.js +50 -0
  3. package/dist/cjs/create-interaction-extra-metrics-payload/index.js +1 -1
  4. package/dist/cjs/create-payload/index.js +63 -0
  5. package/dist/cjs/create-payload/utils/get-vc-metrics.js +15 -12
  6. package/dist/cjs/interaction-metrics/index.js +15 -7
  7. package/dist/cjs/interaction-metrics-init/index.js +29 -2
  8. package/dist/cjs/vc/index.js +5 -4
  9. package/dist/cjs/vc/vc-observer-new/index.js +28 -4
  10. package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +8 -8
  11. package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +7 -3
  12. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/is-entry-smart-answers-in-search.js +27 -0
  13. package/dist/cjs/vc/vc-observer-new/metric-calculator/vcnext/index.js +41 -0
  14. package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +46 -26
  15. package/dist/es2019/create-extra-search-page-interaction-payload/index.js +32 -0
  16. package/dist/es2019/create-interaction-extra-metrics-payload/index.js +1 -1
  17. package/dist/es2019/create-payload/index.js +49 -0
  18. package/dist/es2019/create-payload/utils/get-vc-metrics.js +3 -2
  19. package/dist/es2019/interaction-metrics/index.js +15 -7
  20. package/dist/es2019/interaction-metrics-init/index.js +29 -2
  21. package/dist/es2019/vc/index.js +5 -3
  22. package/dist/es2019/vc/vc-observer-new/index.js +21 -2
  23. package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +6 -5
  24. package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +7 -3
  25. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/is-entry-smart-answers-in-search.js +22 -0
  26. package/dist/es2019/vc/vc-observer-new/metric-calculator/vcnext/index.js +21 -0
  27. package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +29 -14
  28. package/dist/esm/create-extra-search-page-interaction-payload/index.js +43 -0
  29. package/dist/esm/create-interaction-extra-metrics-payload/index.js +1 -1
  30. package/dist/esm/create-payload/index.js +62 -0
  31. package/dist/esm/create-payload/utils/get-vc-metrics.js +15 -12
  32. package/dist/esm/interaction-metrics/index.js +15 -7
  33. package/dist/esm/interaction-metrics-init/index.js +29 -2
  34. package/dist/esm/vc/index.js +5 -4
  35. package/dist/esm/vc/vc-observer-new/index.js +28 -4
  36. package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +8 -8
  37. package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +7 -3
  38. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/is-entry-smart-answers-in-search.js +21 -0
  39. package/dist/esm/vc/vc-observer-new/metric-calculator/vcnext/index.js +36 -0
  40. package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +46 -26
  41. package/dist/types/config/index.d.ts +8 -1
  42. package/dist/types/create-extra-search-page-interaction-payload/index.d.ts +3 -0
  43. package/dist/types/create-interaction-extra-metrics-payload/index.d.ts +1 -1
  44. package/dist/types/create-payload/index.d.ts +25434 -0
  45. package/dist/types/create-payload/utils/get-vc-metrics.d.ts +1 -1
  46. package/dist/types/vc/types.d.ts +1 -0
  47. package/dist/types/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +2 -2
  48. package/dist/types/vc/vc-observer-new/metric-calculator/fy25_03/index.d.ts +2 -2
  49. package/dist/types/vc/vc-observer-new/metric-calculator/types.d.ts +1 -0
  50. package/dist/types/vc/vc-observer-new/metric-calculator/utils/is-entry-smart-answers-in-search.d.ts +2 -0
  51. package/dist/types/vc/vc-observer-new/metric-calculator/vcnext/index.d.ts +6 -0
  52. package/dist/types/vc/vc-observer-new/types.d.ts +2 -1
  53. package/dist/types-ts4.5/config/index.d.ts +8 -1
  54. package/dist/types-ts4.5/create-extra-search-page-interaction-payload/index.d.ts +3 -0
  55. package/dist/types-ts4.5/create-interaction-extra-metrics-payload/index.d.ts +1 -1
  56. package/dist/types-ts4.5/create-payload/index.d.ts +25434 -0
  57. package/dist/types-ts4.5/create-payload/utils/get-vc-metrics.d.ts +1 -1
  58. package/dist/types-ts4.5/vc/types.d.ts +1 -0
  59. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +2 -2
  60. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/fy25_03/index.d.ts +2 -2
  61. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/types.d.ts +1 -0
  62. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/is-entry-smart-answers-in-search.d.ts +2 -0
  63. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/vcnext/index.d.ts +6 -0
  64. package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +2 -1
  65. package/package.json +7 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @atlaskit/ufo-interaction-ignore
2
2
 
3
+ ## 4.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`c9fb4a692dc7d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c9fb4a692dc7d) -
8
+ Added opt-in functionality to fire an additional metric on Rovo search page loads. This additional
9
+ metric excludes smart answers related data."
10
+
11
+ ## 4.8.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [`fed39716487e7`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/fed39716487e7) -
16
+ calculate VCNext (TTVC v4) metric behind FG
17
+
3
18
  ## 4.7.6
4
19
 
5
20
  ### Patch Changes
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.onSearchPageInteractionComplete = onSearchPageInteractionComplete;
7
+ exports.sinkExtraSearchPageInteractionHandler = sinkExtraSearchPageInteractionHandler;
8
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
9
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
10
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
11
+ var interactionBuffer = [];
12
+ var bufferInteractionData = function bufferInteractionData(interactionId, data) {
13
+ interactionBuffer.push({
14
+ interactionId: interactionId,
15
+ data: data
16
+ });
17
+ };
18
+ function clearInteractionBuffer() {
19
+ interactionBuffer.length = 0;
20
+ }
21
+ function appendInteractionData(interactionId, data) {
22
+ bufferInteractionData(interactionId, data);
23
+ }
24
+ function installInteractionSink(handler) {
25
+ var _iterator = _createForOfIteratorHelper(interactionBuffer),
26
+ _step;
27
+ try {
28
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
29
+ var _step$value = _step.value,
30
+ _interactionId = _step$value.interactionId,
31
+ data = _step$value.data;
32
+ handler(_interactionId, data);
33
+ }
34
+ } catch (err) {
35
+ _iterator.e(err);
36
+ } finally {
37
+ _iterator.f();
38
+ }
39
+ clearInteractionBuffer();
40
+ bufferInteractionData = handler;
41
+ }
42
+ function sinkExtraSearchPageInteractionHandler(sinkFn) {
43
+ installInteractionSink(sinkFn);
44
+ }
45
+ function onSearchPageInteractionComplete(interactionId, data) {
46
+ if (data.ufoName) {
47
+ appendInteractionData(interactionId, data);
48
+ clearInteractionBuffer();
49
+ }
50
+ }
@@ -79,7 +79,7 @@ function _createInteractionExtraLogPayload() {
79
79
  var revision = _ref.revision;
80
80
  return revision === _config.DEFAULT_TTVC_REVISION;
81
81
  });
82
- if (!(!(effectiveVCRevisionPayload !== null && effectiveVCRevisionPayload !== void 0 && effectiveVCRevisionPayload.clean) || (effectiveVCRevisionPayload === null || effectiveVCRevisionPayload === void 0 ? void 0 : effectiveVCRevisionPayload['metric:vc90']) === undefined)) {
82
+ if (!(!(effectiveVCRevisionPayload !== null && effectiveVCRevisionPayload !== void 0 && effectiveVCRevisionPayload.clean) || (effectiveVCRevisionPayload === null || effectiveVCRevisionPayload === void 0 ? void 0 : effectiveVCRevisionPayload['metric:vc90']) === undefined || typeof (effectiveVCRevisionPayload === null || effectiveVCRevisionPayload === void 0 ? void 0 : effectiveVCRevisionPayload['metric:vc90']) !== 'number' || extraTTAI === undefined || typeof extraTTAI !== 'number' || interaction.errors.length > 0)) {
83
83
  _context.next = 23;
84
84
  break;
85
85
  }
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.createExperimentalMetricsPayload = createExperimentalMetricsPayload;
9
+ exports.createExtraSearchPageInteractionPayload = createExtraSearchPageInteractionPayload;
9
10
  exports.createPayloads = createPayloads;
10
11
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -703,4 +704,66 @@ function _createExperimentalMetricsPayload() {
703
704
  }, _callee3);
704
705
  }));
705
706
  return _createExperimentalMetricsPayload.apply(this, arguments);
707
+ }
708
+ function createExtraSearchPageInteractionPayload(_x0, _x1) {
709
+ return _createExtraSearchPageInteractionPayload.apply(this, arguments);
710
+ }
711
+ function _createExtraSearchPageInteractionPayload() {
712
+ _createExtraSearchPageInteractionPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(interactionId, interaction) {
713
+ var SAIN_HOLD_NAMES, NAME_OVERRIDE, SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL, newInteractionId, newEnd, holdInfo, reactProfilerTimings, lastHold, isLastHoldSAIN, lastFilteredTime, filteredReactProfilerTimings, lastTiming, modifiedInteraction, payloads, vcMetrics, interactionMetricsPayload;
714
+ return _regenerator.default.wrap(function _callee4$(_context4) {
715
+ while (1) switch (_context4.prev = _context4.next) {
716
+ case 0:
717
+ SAIN_HOLD_NAMES = ['search-ai-dialog-visible-text-loading', 'search-ai-dialog-all-text-loading'];
718
+ NAME_OVERRIDE = 'search-page-ignoring-smart-answers';
719
+ SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL = 'search-page-smart-answers';
720
+ newInteractionId = "".concat(interactionId, "-ignoring-smart-answers"); // Calculate a new end time which excludes SAIN holds
721
+ holdInfo = interaction.holdInfo, reactProfilerTimings = interaction.reactProfilerTimings;
722
+ lastHold = holdInfo.at(-1);
723
+ isLastHoldSAIN = Boolean(lastHold && SAIN_HOLD_NAMES.includes(lastHold.name)); // A new end time is only calculated if the last hold is a SAIN hold
724
+ if (isLastHoldSAIN) {
725
+ lastFilteredTime = null;
726
+ filteredReactProfilerTimings = reactProfilerTimings.filter(function (timing) {
727
+ if (timing.commitTime === lastFilteredTime) {
728
+ return false;
729
+ }
730
+ var isTimingSmartAnswersInSearch = timing.labelStack.some(function (label) {
731
+ return label.name === SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL;
732
+ });
733
+ if (isTimingSmartAnswersInSearch) {
734
+ lastFilteredTime = timing.commitTime;
735
+ return false;
736
+ }
737
+ return true;
738
+ });
739
+ lastTiming = filteredReactProfilerTimings.at(-1);
740
+ if (lastTiming) {
741
+ newEnd = lastTiming.commitTime;
742
+ }
743
+ }
744
+ modifiedInteraction = _objectSpread(_objectSpread({}, interaction), {}, {
745
+ end: newEnd !== null && newEnd !== void 0 ? newEnd : interaction.end,
746
+ holdInfo: [],
747
+ knownSegments: [],
748
+ reactProfilerTimings: [],
749
+ ufoName: NAME_OVERRIDE
750
+ });
751
+ payloads = [];
752
+ _context4.next = 12;
753
+ return (0, _getVcMetrics.default)(interaction, false, true);
754
+ case 12:
755
+ vcMetrics = _context4.sent;
756
+ _context4.next = 15;
757
+ return createInteractionMetricsPayload(modifiedInteraction, newInteractionId, undefined, undefined, vcMetrics);
758
+ case 15:
759
+ interactionMetricsPayload = _context4.sent;
760
+ payloads.push(interactionMetricsPayload);
761
+ return _context4.abrupt("return", payloads.filter(Boolean));
762
+ case 18:
763
+ case "end":
764
+ return _context4.stop();
765
+ }
766
+ }, _callee4);
767
+ }));
768
+ return _createExtraSearchPageInteractionPayload.apply(this, arguments);
706
769
  }
@@ -22,6 +22,7 @@ function _getVCMetrics() {
22
22
  _getVCMetrics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(interaction) {
23
23
  var _config$vc, _config$vc$ssrWhiteli, _interaction$apdex, _config$vc2, _config$vc3, _result$ufoVcRev;
24
24
  var include3p,
25
+ excludeSmartAnswersInSearch,
25
26
  config,
26
27
  interactionStatus,
27
28
  pageVisibilityUpToTTAI,
@@ -39,29 +40,30 @@ function _getVCMetrics() {
39
40
  while (1) switch (_context.prev = _context.next) {
40
41
  case 0:
41
42
  include3p = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;
43
+ excludeSmartAnswersInSearch = _args.length > 2 && _args[2] !== undefined ? _args[2] : false;
42
44
  config = (0, _config.getConfig)();
43
45
  if (config !== null && config !== void 0 && (_config$vc = config.vc) !== null && _config$vc !== void 0 && _config$vc.enabled) {
44
- _context.next = 4;
46
+ _context.next = 5;
45
47
  break;
46
48
  }
47
49
  return _context.abrupt("return", {});
48
- case 4:
50
+ case 5:
49
51
  if (!(interaction.type !== 'page_load' && interaction.type !== 'transition' && interaction.type !== 'press')) {
50
- _context.next = 6;
52
+ _context.next = 7;
51
53
  break;
52
54
  }
53
55
  return _context.abrupt("return", {});
54
- case 6:
56
+ case 7:
55
57
  interactionStatus = (0, _getInteractionStatus.default)(interaction);
56
58
  pageVisibilityUpToTTAI = (0, _getPageVisibilityUpToTtai.default)(interaction);
57
59
  shouldReportVCMetrics = interactionStatus.originalInteractionStatus === 'SUCCEEDED' && pageVisibilityUpToTTAI === 'visible'; // Use per-interaction VC observer if available, otherwise fall back to global
58
60
  observer = interaction.vcObserver;
59
61
  if (observer) {
60
- _context.next = 12;
62
+ _context.next = 13;
61
63
  break;
62
64
  }
63
65
  return _context.abrupt("return", {});
64
- case 12:
66
+ case 13:
65
67
  isSSREnabled = interaction.type === 'page_load' && ((config === null || config === void 0 ? void 0 : config.ssr) || (config === null || config === void 0 || (_config$vc$ssrWhiteli = config.vc.ssrWhitelist) === null || _config$vc$ssrWhiteli === void 0 ? void 0 : _config$vc$ssrWhiteli.includes(interaction.ufoName)));
66
68
  ssr = interaction.type === 'page_load' && isSSREnabled ? {
67
69
  ssr: (0, _getSsrDoneTimeValue.default)(config)
@@ -69,7 +71,7 @@ function _getVCMetrics() {
69
71
  _interactionMetrics.postInteractionLog.setVCObserverSSRConfig(ssr);
70
72
  tti = (_interaction$apdex = interaction.apdex) === null || _interaction$apdex === void 0 || (_interaction$apdex = _interaction$apdex[0]) === null || _interaction$apdex === void 0 ? void 0 : _interaction$apdex.stopTime;
71
73
  prefix = 'ufo';
72
- _context.next = 19;
74
+ _context.next = 20;
73
75
  return observer.getVCResult(_objectSpread(_objectSpread({
74
76
  start: interaction.start,
75
77
  stop: interaction.end,
@@ -82,9 +84,10 @@ function _getVCMetrics() {
82
84
  interactionId: interaction.id,
83
85
  includeSSRRatio: (_config$vc3 = config.vc) === null || _config$vc3 === void 0 ? void 0 : _config$vc3.includeSSRRatio
84
86
  }, ssr), {}, {
85
- include3p: include3p
87
+ include3p: include3p,
88
+ excludeSmartAnswersInSearch: excludeSmartAnswersInSearch
86
89
  }));
87
- case 19:
90
+ case 20:
88
91
  result = _context.sent;
89
92
  observer.stop(interaction.ufoName);
90
93
  if (!include3p) {
@@ -97,15 +100,15 @@ function _getVCMetrics() {
97
100
  return revision === mostRecentVCRevision;
98
101
  });
99
102
  if (!(!shouldReportVCMetrics || !(mostRecentVCRevisionPayload !== null && mostRecentVCRevisionPayload !== void 0 && mostRecentVCRevisionPayload.clean))) {
100
- _context.next = 26;
103
+ _context.next = 27;
101
104
  break;
102
105
  }
103
106
  return _context.abrupt("return", result);
104
- case 26:
107
+ case 27:
105
108
  return _context.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
106
109
  'metric:vc90': mostRecentVCRevisionPayload['metric:vc90']
107
110
  }));
108
- case 27:
111
+ case 28:
109
112
  case "end":
110
113
  return _context.stop();
111
114
  }
@@ -54,6 +54,7 @@ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
54
54
  var _coinflip = _interopRequireDefault(require("../coinflip"));
55
55
  var _config = require("../config");
56
56
  var _createExperimentalInteractionMetricsPayload = require("../create-experimental-interaction-metrics-payload");
57
+ var _createExtraSearchPageInteractionPayload = require("../create-extra-search-page-interaction-payload");
57
58
  var _utils = require("../create-payload/common/utils");
58
59
  var _experienceTraceIdContext = require("../experience-trace-id-context");
59
60
  var _featureFlagsAccessed = require("../feature-flags-accessed");
@@ -881,16 +882,19 @@ function tryComplete(interactionId, endTime) {
881
882
  if (noMoreActiveHolds && interactionExtraMetrics.finishedInteractionId !== interactionId) {
882
883
  // If it's not waiting for extra metrics to complete, finish the interaction as normal
883
884
  if (!activeSubmitted) {
884
- var _getConfig1;
885
+ var _getConfig1, _getConfig10, _getConfig11;
885
886
  finishInteraction(interactionId, interaction, endTime);
886
887
  if ((_getConfig1 = (0, _config.getConfig)()) !== null && _getConfig1 !== void 0 && (_getConfig1 = _getConfig1.extraInteractionMetrics) !== null && _getConfig1 !== void 0 && _getConfig1.enabled) {
887
888
  interactionExtraMetrics.updateFinishedInteractionId(interactionId);
888
889
  }
890
+ if ((_getConfig10 = (0, _config.getConfig)()) !== null && _getConfig10 !== void 0 && (_getConfig10 = _getConfig10.extraSearchPageInteraction) !== null && _getConfig10 !== void 0 && _getConfig10.enabled && interaction.ufoName === ((_getConfig11 = (0, _config.getConfig)()) === null || _getConfig11 === void 0 || (_getConfig11 = _getConfig11.extraSearchPageInteraction) === null || _getConfig11 === void 0 ? void 0 : _getConfig11.searchPageMetricName) && (0, _platformFeatureFlags.fg)('react_ufo_unified_search_ignoring_sain_metric')) {
891
+ (0, _createExtraSearchPageInteractionPayload.onSearchPageInteractionComplete)(interactionId, interaction);
892
+ }
889
893
  activeSubmitted = true;
890
894
  }
891
895
  if (noMoreExpHolds) {
892
- var _getConfig10;
893
- if ((_getConfig10 = (0, _config.getConfig)()) !== null && _getConfig10 !== void 0 && (_getConfig10 = _getConfig10.experimentalInteractionMetrics) !== null && _getConfig10 !== void 0 && _getConfig10.enabled) {
896
+ var _getConfig12;
897
+ if ((_getConfig12 = (0, _config.getConfig)()) !== null && _getConfig12 !== void 0 && (_getConfig12 = _getConfig12.experimentalInteractionMetrics) !== null && _getConfig12 !== void 0 && _getConfig12.enabled) {
894
898
  (0, _createExperimentalInteractionMetricsPayload.onExperimentalInteractionComplete)(interactionId, interaction, endTime);
895
899
  }
896
900
  postInteraction();
@@ -905,12 +909,16 @@ function tryComplete(interactionId, endTime) {
905
909
  } else {
906
910
  if (noMoreActiveHolds) {
907
911
  if (!activeSubmitted) {
912
+ var _getConfig13, _getConfig14;
908
913
  finishInteraction(interactionId, interaction, endTime);
914
+ if ((_getConfig13 = (0, _config.getConfig)()) !== null && _getConfig13 !== void 0 && (_getConfig13 = _getConfig13.extraSearchPageInteraction) !== null && _getConfig13 !== void 0 && _getConfig13.enabled && interaction.ufoName === ((_getConfig14 = (0, _config.getConfig)()) === null || _getConfig14 === void 0 || (_getConfig14 = _getConfig14.extraSearchPageInteraction) === null || _getConfig14 === void 0 ? void 0 : _getConfig14.searchPageMetricName) && (0, _platformFeatureFlags.fg)('react_ufo_unified_search_ignoring_sain_metric')) {
915
+ (0, _createExtraSearchPageInteractionPayload.onSearchPageInteractionComplete)(interactionId, interaction);
916
+ }
909
917
  activeSubmitted = true;
910
918
  }
911
919
  if (noMoreExpHolds) {
912
- var _getConfig11;
913
- if ((_getConfig11 = (0, _config.getConfig)()) !== null && _getConfig11 !== void 0 && (_getConfig11 = _getConfig11.experimentalInteractionMetrics) !== null && _getConfig11 !== void 0 && _getConfig11.enabled) {
920
+ var _getConfig15;
921
+ if ((_getConfig15 = (0, _config.getConfig)()) !== null && _getConfig15 !== void 0 && (_getConfig15 = _getConfig15.experimentalInteractionMetrics) !== null && _getConfig15 !== void 0 && _getConfig15.enabled) {
914
922
  (0, _createExperimentalInteractionMetricsPayload.onExperimentalInteractionComplete)(interactionId, interaction, endTime);
915
923
  }
916
924
  postInteraction();
@@ -1107,7 +1115,7 @@ function addNewInteraction(interactionId, ufoName, type, startTime, rate, labelS
1107
1115
  addHoldByID(interactionId, [], ufoName, ufoName, true);
1108
1116
  }
1109
1117
  if (type === 'transition' || type === 'page_load') {
1110
- var _getConfig12, _config$extraInteract;
1118
+ var _getConfig16, _config$extraInteract;
1111
1119
  // Use per-interaction VC observer if available, otherwise fall back to global
1112
1120
  var observer = vcObserver;
1113
1121
  if (observer) {
@@ -1118,7 +1126,7 @@ function addNewInteraction(interactionId, ufoName, type, startTime, rate, labelS
1118
1126
  }
1119
1127
  // Start post interaction observer for all if config is enabled
1120
1128
  // in case ufoName is updated at later time
1121
- if ((_getConfig12 = (0, _config.getConfig)()) !== null && _getConfig12 !== void 0 && (_getConfig12 = _getConfig12.postInteractionLog) !== null && _getConfig12 !== void 0 && _getConfig12.enabled) {
1129
+ if ((_getConfig16 = (0, _config.getConfig)()) !== null && _getConfig16 !== void 0 && (_getConfig16 = _getConfig16.postInteractionLog) !== null && _getConfig16 !== void 0 && _getConfig16.enabled) {
1122
1130
  postInteractionLog.startVCObserver({
1123
1131
  startTime: startTime
1124
1132
  });
@@ -13,6 +13,7 @@ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
13
  var _additionalPayload = require("../additional-payload");
14
14
  var _config = require("../config");
15
15
  var _createExperimentalInteractionMetricsPayload = require("../create-experimental-interaction-metrics-payload");
16
+ var _createExtraSearchPageInteractionPayload = require("../create-extra-search-page-interaction-payload");
16
17
  var _hiddenTiming = require("../hidden-timing");
17
18
  var _interactionMetrics = require("../interaction-metrics");
18
19
  var _interactionsPerformanceObserver = require("../interactions-performance-observer");
@@ -110,6 +111,26 @@ function sinkInteractionExtraMetrics(instance, createInteractionExtraLogPayload)
110
111
  })));
111
112
  });
112
113
  }
114
+ function sinkExtraSearchPageInteraction(instance, payloadPackage) {
115
+ function sinkFn(interactionId, interaction) {
116
+ function onIdle() {
117
+ payloadPackage.createExtraSearchPageInteractionPayload(interactionId, interaction).then(function (payloads) {
118
+ // NOTE: This API is used by the UFO DevTool Chrome Extension and Criterion
119
+ var devToolObserver = globalThis.__ufo_devtool_onUfoPayload;
120
+ payloads === null || payloads === void 0 || payloads.forEach(function (payload) {
121
+ if (typeof devToolObserver === 'function') {
122
+ devToolObserver === null || devToolObserver === void 0 || devToolObserver(payload);
123
+ }
124
+ instance.sendOperationalEvent(payload);
125
+ });
126
+ }).catch(function (error) {
127
+ throw error;
128
+ });
129
+ }
130
+ (0, _scheduleIdleCallback.default)(onIdle);
131
+ }
132
+ (0, _createExtraSearchPageInteractionPayload.sinkExtraSearchPageInteractionHandler)(sinkFn);
133
+ }
113
134
  function init(analyticsWebClientAsync, config) {
114
135
  var _config$vc;
115
136
  if (initialized) {
@@ -164,7 +185,7 @@ function init(analyticsWebClientAsync, config) {
164
185
  createInteractionExtraMetricsPayloadPackage = _ref3[3];
165
186
  if (awc.getAnalyticsWebClientPromise) {
166
187
  awc.getAnalyticsWebClientPromise().then(function (client) {
167
- var _config$experimentalI2, _config$postInteracti, _config$extraInteract2;
188
+ var _config$experimentalI2, _config$postInteracti, _config$extraInteract2, _config$extraSearchPa;
168
189
  var instance = client.getInstance();
169
190
  sinkInteraction(instance, payloadPackage);
170
191
  if (config !== null && config !== void 0 && (_config$experimentalI2 = config.experimentalInteractionMetrics) !== null && _config$experimentalI2 !== void 0 && _config$experimentalI2.enabled) {
@@ -176,9 +197,12 @@ function init(analyticsWebClientAsync, config) {
176
197
  if (config !== null && config !== void 0 && (_config$extraInteract2 = config.extraInteractionMetrics) !== null && _config$extraInteract2 !== void 0 && _config$extraInteract2.enabled && (0, _platformFeatureFlags.fg)('platform_ufo_enable_ttai_with_3p')) {
177
198
  sinkInteractionExtraMetrics(instance, createInteractionExtraMetricsPayloadPackage.default);
178
199
  }
200
+ if (config !== null && config !== void 0 && (_config$extraSearchPa = config.extraSearchPageInteraction) !== null && _config$extraSearchPa !== void 0 && _config$extraSearchPa.enabled && (0, _platformFeatureFlags.fg)('react_ufo_unified_search_ignoring_sain_metric')) {
201
+ sinkExtraSearchPageInteraction(instance, payloadPackage);
202
+ }
179
203
  });
180
204
  } else if (awc.sendOperationalEvent) {
181
- var _config$experimentalI3, _config$postInteracti2, _config$extraInteract3;
205
+ var _config$experimentalI3, _config$postInteracti2, _config$extraInteract3, _config$extraSearchPa2;
182
206
  sinkInteraction(awc, payloadPackage);
183
207
  if (config !== null && config !== void 0 && (_config$experimentalI3 = config.experimentalInteractionMetrics) !== null && _config$experimentalI3 !== void 0 && _config$experimentalI3.enabled) {
184
208
  sinkExperimentalInteractionMetrics(awc, payloadPackage);
@@ -189,6 +213,9 @@ function init(analyticsWebClientAsync, config) {
189
213
  if (config !== null && config !== void 0 && (_config$extraInteract3 = config.extraInteractionMetrics) !== null && _config$extraInteract3 !== void 0 && _config$extraInteract3.enabled && (0, _platformFeatureFlags.fg)('platform_ufo_enable_ttai_with_3p')) {
190
214
  sinkInteractionExtraMetrics(awc, createInteractionExtraMetricsPayloadPackage.default);
191
215
  }
216
+ if (config !== null && config !== void 0 && (_config$extraSearchPa2 = config.extraSearchPageInteraction) !== null && _config$extraSearchPa2 !== void 0 && _config$extraSearchPa2.enabled) {
217
+ sinkExtraSearchPageInteraction(awc, payloadPackage);
218
+ }
192
219
  }
193
220
  });
194
221
  }
@@ -35,7 +35,7 @@ var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
35
35
  this.ssrPlaceholderHandler = new _ssrPlaceholders.SSRPlaceholderHandlers({
36
36
  enablePageLayoutPlaceholder: (_opts$ssrEnablePageLa = opts.ssrEnablePageLayoutPlaceholder) !== null && _opts$ssrEnablePageLa !== void 0 ? _opts$ssrEnablePageLa : false
37
37
  });
38
- if ((0, _config.isVCRevisionEnabled)('fy25.03')) {
38
+ if ((0, _config.isVCRevisionEnabled)('fy25.03') || (0, _config.isVCRevisionEnabled)('next')) {
39
39
  var _opts$ssrEnablePageLa2;
40
40
  this.newVCObserver = new _vcObserverNew.default({
41
41
  selectorConfig: opts.selectorConfig,
@@ -122,11 +122,11 @@ var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
122
122
  value: function () {
123
123
  var _getVCResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(param) {
124
124
  var _this$oldVCObserver4, _this$newVCObserver3, _ref2;
125
- var experienceKey, include3p, v1v2Result, v3Result;
125
+ var experienceKey, include3p, excludeSmartAnswersInSearch, v1v2Result, v3Result;
126
126
  return _regenerator.default.wrap(function _callee$(_context) {
127
127
  while (1) switch (_context.prev = _context.next) {
128
128
  case 0:
129
- experienceKey = param.experienceKey, include3p = param.include3p;
129
+ experienceKey = param.experienceKey, include3p = param.include3p, excludeSmartAnswersInSearch = param.excludeSmartAnswersInSearch;
130
130
  if (!((0, _config.isVCRevisionEnabled)('fy25.01', experienceKey) || (0, _config.isVCRevisionEnabled)('fy25.02', experienceKey))) {
131
131
  _context.next = 7;
132
132
  break;
@@ -151,7 +151,8 @@ var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
151
151
  stop: param.stop,
152
152
  interactionId: param.interactionId,
153
153
  ssr: param.includeSSRInV3 ? param.ssr : undefined,
154
- include3p: include3p
154
+ include3p: include3p,
155
+ excludeSmartAnswersInSearch: excludeSmartAnswersInSearch
155
156
  });
156
157
  case 12:
157
158
  _context.t1 = _context.sent;
@@ -19,6 +19,7 @@ var _getElementName2 = _interopRequireDefault(require("./get-element-name"));
19
19
  var _fy25_ = _interopRequireDefault(require("./metric-calculator/fy25_03"));
20
20
  var _getViewportHeight = _interopRequireDefault(require("./metric-calculator/utils/get-viewport-height"));
21
21
  var _getViewportWidth = _interopRequireDefault(require("./metric-calculator/utils/get-viewport-width"));
22
+ var _vcnext = _interopRequireDefault(require("./metric-calculator/vcnext"));
22
23
  var _viewportObserver = _interopRequireDefault(require("./viewport-observer"));
23
24
  var _windowEventObserver = _interopRequireDefault(require("./window-event-observer"));
24
25
  var SSRState = {
@@ -237,11 +238,11 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
237
238
  key: "getVCResult",
238
239
  value: function () {
239
240
  var _getVCResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(param) {
240
- var start, stop, interactionId, include3p, results, calculator_fy25_03, orderedEntries, fy25_03;
241
+ var start, stop, interactionId, include3p, excludeSmartAnswersInSearch, results, calculator_fy25_03, orderedEntries, fy25_03, calculator_next, vcNext;
241
242
  return _regenerator.default.wrap(function _callee$(_context) {
242
243
  while (1) switch (_context.prev = _context.next) {
243
244
  case 0:
244
- start = param.start, stop = param.stop, interactionId = param.interactionId, include3p = param.include3p;
245
+ start = param.start, stop = param.stop, interactionId = param.interactionId, include3p = param.include3p, excludeSmartAnswersInSearch = param.excludeSmartAnswersInSearch;
245
246
  results = [];
246
247
  this.addStartEntry(start);
247
248
  calculator_fy25_03 = new _fy25_.default();
@@ -259,15 +260,38 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
259
260
  stopTime: stop,
260
261
  interactionId: interactionId,
261
262
  isPostInteraction: this.isPostInteraction,
262
- include3p: include3p
263
+ include3p: include3p,
264
+ excludeSmartAnswersInSearch: excludeSmartAnswersInSearch
263
265
  });
264
266
  case 8:
265
267
  fy25_03 = _context.sent;
266
268
  if (fy25_03) {
267
269
  results.push(fy25_03);
268
270
  }
271
+
272
+ // TODO on cleanup: put behind `enabledVCRevisions` config
273
+ if (!(0, _platformFeatureFlags.fg)('platform_ufo_vcnext_v4_enabled')) {
274
+ _context.next = 16;
275
+ break;
276
+ }
277
+ calculator_next = new _vcnext.default();
278
+ _context.next = 14;
279
+ return calculator_next.calculate({
280
+ orderedEntries: orderedEntries,
281
+ startTime: start,
282
+ stopTime: stop,
283
+ interactionId: interactionId,
284
+ isPostInteraction: this.isPostInteraction,
285
+ include3p: include3p
286
+ });
287
+ case 14:
288
+ vcNext = _context.sent;
289
+ if (vcNext) {
290
+ results.push(vcNext);
291
+ }
292
+ case 16:
269
293
  return _context.abrupt("return", results);
270
- case 11:
294
+ case 17:
271
295
  case "end":
272
296
  return _context.stop();
273
297
  }
@@ -111,7 +111,7 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
111
111
  }, {
112
112
  key: "calculateWithDebugInfo",
113
113
  value: function () {
114
- var _calculateWithDebugInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(filteredEntries, startTime, stopTime, isPostInteraction, isVCClean, interactionId, dirtyReason, allEntries, include3p) {
114
+ var _calculateWithDebugInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(filteredEntries, startTime, stopTime, isPostInteraction, isVCClean, interactionId, dirtyReason, allEntries, include3p, excludeSmartAnswersInSearch) {
115
115
  var _window, _window2, _window6, _window8;
116
116
  var percentiles, viewportEntries, vcLogs, vcDetails, percentileIndex, entryDataBuffer, _iterator4, _step4, _entry3, time, viewportPercentage, entries, elementNames, previousResult, i, percentile, enhancedVcLogs, shouldCalculate3p, shouldCalculateDebugDetails, _window3, _window4, _window5, sortedVcLogs, maxViewportPercentageAtTime, maxSoFar, _iterator5, _step5, log, getBiggestPreviousViewportPercentage, ignoredEntriesByTime, _iterator6, _step6, _entry4, _ignoredEntriesByTime, _viewportData$rect, _viewportData$previou, viewportData, timestamp, additionalVcLogs, _iterator7, _step7, _step7$value, _timestamp, ignoredEntries, _viewportPercentage, v3RevisionDebugDetails, _activeInteractionId$, activeInteractionId, activeInteraction, pageVisibilityUpToTTAI, isBackgrounded, _window7, _window7$__ufo_devtoo, _window9, _window9$__on_ufo_vc_;
117
117
  return _regenerator.default.wrap(function _callee$(_context) {
@@ -264,7 +264,7 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
264
264
  try {
265
265
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
266
266
  _entry4 = _step6.value;
267
- if ('rect' in _entry4.data && !this.isEntryIncluded(_entry4, include3p)) {
267
+ if ('rect' in _entry4.data && !this.isEntryIncluded(_entry4, include3p, excludeSmartAnswersInSearch)) {
268
268
  viewportData = _entry4.data;
269
269
  timestamp = Math.round(_entry4.time);
270
270
  if (!ignoredEntriesByTime.has(timestamp)) {
@@ -371,7 +371,7 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
371
371
  }
372
372
  }, _callee, this, [[10, 22, 25, 28]]);
373
373
  }));
374
- function calculateWithDebugInfo(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8, _x9) {
374
+ function calculateWithDebugInfo(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8, _x9, _x0) {
375
375
  return _calculateWithDebugInfo.apply(this, arguments);
376
376
  }
377
377
  return calculateWithDebugInfo;
@@ -383,13 +383,13 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
383
383
  var _this = this,
384
384
  _vcDetails$90$t,
385
385
  _vcDetails$;
386
- var startTime, stopTime, orderedEntries, interactionId, isPostInteraction, include3p, filteredEntries, isVCClean, dirtyReason, getVCCleanStatusResult, vcDetails, result;
386
+ var startTime, stopTime, orderedEntries, interactionId, isPostInteraction, include3p, excludeSmartAnswersInSearch, filteredEntries, isVCClean, dirtyReason, getVCCleanStatusResult, vcDetails, result;
387
387
  return _regenerator.default.wrap(function _callee2$(_context2) {
388
388
  while (1) switch (_context2.prev = _context2.next) {
389
389
  case 0:
390
- startTime = _ref.startTime, stopTime = _ref.stopTime, orderedEntries = _ref.orderedEntries, interactionId = _ref.interactionId, isPostInteraction = _ref.isPostInteraction, include3p = _ref.include3p;
390
+ startTime = _ref.startTime, stopTime = _ref.stopTime, orderedEntries = _ref.orderedEntries, interactionId = _ref.interactionId, isPostInteraction = _ref.isPostInteraction, include3p = _ref.include3p, excludeSmartAnswersInSearch = _ref.excludeSmartAnswersInSearch;
391
391
  filteredEntries = orderedEntries.filter(function (entry) {
392
- return _this.isEntryIncluded(entry, include3p);
392
+ return _this.isEntryIncluded(entry, include3p, excludeSmartAnswersInSearch);
393
393
  });
394
394
  getVCCleanStatusResult = this.getVCCleanStatus(filteredEntries);
395
395
  isVCClean = getVCCleanStatusResult.isVCClean;
@@ -407,7 +407,7 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
407
407
  });
408
408
  case 7:
409
409
  _context2.next = 9;
410
- return this.calculateWithDebugInfo(filteredEntries, startTime, stopTime, isPostInteraction, isVCClean, interactionId, dirtyReason, orderedEntries, include3p);
410
+ return this.calculateWithDebugInfo(filteredEntries, startTime, stopTime, isPostInteraction, isVCClean, interactionId, dirtyReason, orderedEntries, include3p, excludeSmartAnswersInSearch);
411
411
  case 9:
412
412
  vcDetails = _context2.sent;
413
413
  result = {
@@ -430,7 +430,7 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
430
430
  }
431
431
  }, _callee2, this);
432
432
  }));
433
- function calculate(_x0) {
433
+ function calculate(_x1) {
434
434
  return _calculate.apply(this, arguments);
435
435
  }
436
436
  return calculate;
@@ -12,6 +12,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
12
12
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
13
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
14
14
  var _abstractBaseVcCalculator = _interopRequireDefault(require("../abstract-base-vc-calculator"));
15
+ var _isEntrySmartAnswersInSearch = require("../utils/is-entry-smart-answers-in-search");
15
16
  var _isViewportEntryData = _interopRequireDefault(require("../utils/is-viewport-entry-data"));
16
17
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
17
18
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
@@ -44,17 +45,20 @@ var THIRD_PARTY_BROWSER_EXTENSION_ATTRIBUTES = exports.THIRD_PARTY_BROWSER_EXTEN
44
45
  // grammarly extensions
45
46
  'data-new-gr-c-s-loaded', 'data-gr-aaa-notch-connection-id', 'data-gr-aaa-loaded'];
46
47
  var VCCalculator_FY25_03 = exports.default = /*#__PURE__*/function (_AbstractVCCalculator) {
47
- function VCCalculator_FY25_03() {
48
+ function VCCalculator_FY25_03(revisionNo) {
48
49
  (0, _classCallCheck2.default)(this, VCCalculator_FY25_03);
49
- return _callSuper(this, VCCalculator_FY25_03, [REVISION_NO]);
50
+ return _callSuper(this, VCCalculator_FY25_03, [revisionNo !== null && revisionNo !== void 0 ? revisionNo : REVISION_NO]);
50
51
  }
51
52
  (0, _inherits2.default)(VCCalculator_FY25_03, _AbstractVCCalculator);
52
53
  return (0, _createClass2.default)(VCCalculator_FY25_03, [{
53
54
  key: "isEntryIncluded",
54
- value: function isEntryIncluded(entry, include3p) {
55
+ value: function isEntryIncluded(entry, include3p, excludeSmartAnswersInSearch) {
55
56
  if (!getConsideredEntryTypes(include3p).includes(entry.data.type)) {
56
57
  return false;
57
58
  }
59
+ if (excludeSmartAnswersInSearch && (0, _isEntrySmartAnswersInSearch.isEntrySmartAnswersInSearch)(entry)) {
60
+ return false;
61
+ }
58
62
  if (entry.data.type === 'mutation:attribute') {
59
63
  var entryData = entry.data;
60
64
  var attributeName = entryData.attributeName;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isEntrySmartAnswersInSearch = isEntrySmartAnswersInSearch;
7
+ var _browserApis = require("@atlaskit/browser-apis");
8
+ function isEntrySmartAnswersInSearch(entry) {
9
+ var _ref = entry.data,
10
+ elementName = _ref.elementName;
11
+ if (!elementName || elementName === 'START') {
12
+ return false;
13
+ }
14
+ var doc = (0, _browserApis.getDocument)();
15
+ if (!doc) {
16
+ return false;
17
+ }
18
+ var smartAnswersElement = doc.getElementById('search-page-smart-answers');
19
+ if (!smartAnswersElement) {
20
+ return false;
21
+ }
22
+ var entryDOMElement = doc.querySelector(elementName);
23
+ if (!entryDOMElement) {
24
+ return false;
25
+ }
26
+ return smartAnswersElement.contains(entryDOMElement);
27
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _fy25_ = _interopRequireDefault(require("../fy25_03"));
15
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
16
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
17
+ function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
18
+ // NOTE: `next` to be renamed `fy26.04` once stable
19
+ var REVISION_NO = 'next';
20
+ var getConsideredEntryTypes = function getConsideredEntryTypes() {
21
+ return ['mutation:display-contents-children-element'];
22
+ };
23
+
24
+ // NOTE: `VCNext` to be renamed `FY26_04` once stable
25
+ var VCNextCalculator = exports.default = /*#__PURE__*/function (_VCCalculator_FY25_) {
26
+ function VCNextCalculator() {
27
+ (0, _classCallCheck2.default)(this, VCNextCalculator);
28
+ return _callSuper(this, VCNextCalculator, [REVISION_NO]);
29
+ }
30
+ (0, _inherits2.default)(VCNextCalculator, _VCCalculator_FY25_);
31
+ return (0, _createClass2.default)(VCNextCalculator, [{
32
+ key: "isEntryIncluded",
33
+ value: function isEntryIncluded(entry, include3p) {
34
+ var isEntryIncludedInV3 = _superPropGet(VCNextCalculator, "isEntryIncluded", this, 3)([entry, include3p]);
35
+ if (isEntryIncludedInV3) {
36
+ return true;
37
+ }
38
+ return getConsideredEntryTypes().includes(entry.data.type);
39
+ }
40
+ }]);
41
+ }(_fy25_.default);