@pendo/agent 2.303.0 → 2.304.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.
package/dist/dom.esm.js CHANGED
@@ -7359,7 +7359,7 @@ function getScreenPosition(element) {
7359
7359
  };
7360
7360
  }
7361
7361
 
7362
- var VERSION = '2.303.0_';
7362
+ var VERSION = '2.304.0_';
7363
7363
 
7364
7364
  var decodeURIComponent = _.isFunction(window.decodeURIComponent) ? window.decodeURIComponent : _.identity;
7365
7365
 
@@ -9255,50 +9255,49 @@ function isElementVisible(element, overflowPattern) {
9255
9255
  // *Probably* visible...
9256
9256
  return true;
9257
9257
  }
9258
+ function scrollElementIntoParentRect(element, scrollParent) {
9259
+ var clientRect = getClientRect(element);
9260
+ var scrollRect = getClientRect(scrollParent);
9261
+ var yScrollAmount = 0;
9262
+ var xScrollAmount = 0;
9263
+ var diff;
9264
+ if (clientRect.bottom > scrollRect.bottom) {
9265
+ yScrollAmount += clientRect.bottom - scrollRect.bottom;
9266
+ clientRect.top -= yScrollAmount;
9267
+ clientRect.bottom -= yScrollAmount;
9268
+ }
9269
+ if (clientRect.top < scrollRect.top) {
9270
+ diff = scrollRect.top - clientRect.top;
9271
+ yScrollAmount -= diff;
9272
+ clientRect.top += diff;
9273
+ clientRect.bottom += diff;
9274
+ }
9275
+ if (clientRect.right > scrollRect.right) {
9276
+ xScrollAmount += clientRect.right - scrollRect.right;
9277
+ clientRect.left -= xScrollAmount;
9278
+ clientRect.right -= xScrollAmount;
9279
+ }
9280
+ if (clientRect.left < scrollRect.left) {
9281
+ diff = scrollRect.left - clientRect.left;
9282
+ xScrollAmount -= diff;
9283
+ clientRect.left += diff;
9284
+ clientRect.right += diff;
9285
+ }
9286
+ if (_.isFunction(scrollParent.scrollBy)) {
9287
+ scrollParent.scrollBy(xScrollAmount, yScrollAmount);
9288
+ }
9289
+ else {
9290
+ scrollParent.scrollTop += yScrollAmount;
9291
+ scrollParent.scrollLeft += xScrollAmount;
9292
+ }
9293
+ }
9258
9294
  function scrollIntoView(element) {
9259
9295
  var overflowScroll = /(auto|scroll)/;
9260
- var clientRect;
9261
9296
  var scrollParent;
9262
- var scrollRect;
9263
- var yScrollAmount;
9264
- var xScrollAmount;
9265
- var diff;
9266
9297
  var pbody = getBody();
9267
9298
  scrollParent = getScrollParent(element, overflowScroll);
9268
9299
  while (scrollParent && scrollParent !== pbody) {
9269
- clientRect = getClientRect(element);
9270
- scrollRect = getClientRect(scrollParent);
9271
- yScrollAmount = 0;
9272
- xScrollAmount = 0;
9273
- if (clientRect.bottom > scrollRect.bottom) {
9274
- yScrollAmount += clientRect.bottom - scrollRect.bottom;
9275
- clientRect.top -= yScrollAmount;
9276
- clientRect.bottom -= yScrollAmount;
9277
- }
9278
- if (clientRect.top < scrollRect.top) {
9279
- diff = scrollRect.top - clientRect.top;
9280
- yScrollAmount -= diff;
9281
- clientRect.top += diff;
9282
- clientRect.bottom += diff;
9283
- }
9284
- if (clientRect.right > scrollRect.right) {
9285
- xScrollAmount += clientRect.right - scrollRect.right;
9286
- clientRect.left -= xScrollAmount;
9287
- clientRect.right -= xScrollAmount;
9288
- }
9289
- if (clientRect.left < scrollRect.left) {
9290
- diff = scrollRect.left - clientRect.left;
9291
- xScrollAmount -= diff;
9292
- clientRect.left += diff;
9293
- clientRect.right += diff;
9294
- }
9295
- if (_.isFunction(scrollParent.scrollBy)) {
9296
- scrollParent.scrollBy(xScrollAmount, yScrollAmount);
9297
- }
9298
- else {
9299
- scrollParent.scrollTop += yScrollAmount;
9300
- scrollParent.scrollLeft += xScrollAmount;
9301
- }
9300
+ scrollElementIntoParentRect(element, scrollParent);
9302
9301
  scrollParent = getScrollParent(scrollParent, overflowScroll);
9303
9302
  }
9304
9303
  }
@@ -3904,8 +3904,8 @@ let SERVER = '';
3904
3904
  let ASSET_HOST = '';
3905
3905
  let ASSET_PATH = '';
3906
3906
  let DESIGNER_SERVER = '';
3907
- let VERSION = '2.303.0_';
3908
- let PACKAGE_VERSION = '2.303.0';
3907
+ let VERSION = '2.304.0_';
3908
+ let PACKAGE_VERSION = '2.304.0';
3909
3909
  let LOADER = 'xhr';
3910
3910
  /* eslint-enable agent-eslint-rules/no-gulp-env-references */
3911
3911
  /**
@@ -10744,50 +10744,49 @@ function wouldBeVisibleAfterAutoScroll(element) {
10744
10744
  }
10745
10745
  return true;
10746
10746
  }
10747
+ function scrollElementIntoParentRect(element, scrollParent) {
10748
+ var clientRect = getClientRect(element);
10749
+ var scrollRect = getClientRect(scrollParent);
10750
+ var yScrollAmount = 0;
10751
+ var xScrollAmount = 0;
10752
+ var diff;
10753
+ if (clientRect.bottom > scrollRect.bottom) {
10754
+ yScrollAmount += clientRect.bottom - scrollRect.bottom;
10755
+ clientRect.top -= yScrollAmount;
10756
+ clientRect.bottom -= yScrollAmount;
10757
+ }
10758
+ if (clientRect.top < scrollRect.top) {
10759
+ diff = scrollRect.top - clientRect.top;
10760
+ yScrollAmount -= diff;
10761
+ clientRect.top += diff;
10762
+ clientRect.bottom += diff;
10763
+ }
10764
+ if (clientRect.right > scrollRect.right) {
10765
+ xScrollAmount += clientRect.right - scrollRect.right;
10766
+ clientRect.left -= xScrollAmount;
10767
+ clientRect.right -= xScrollAmount;
10768
+ }
10769
+ if (clientRect.left < scrollRect.left) {
10770
+ diff = scrollRect.left - clientRect.left;
10771
+ xScrollAmount -= diff;
10772
+ clientRect.left += diff;
10773
+ clientRect.right += diff;
10774
+ }
10775
+ if (_.isFunction(scrollParent.scrollBy)) {
10776
+ scrollParent.scrollBy(xScrollAmount, yScrollAmount);
10777
+ }
10778
+ else {
10779
+ scrollParent.scrollTop += yScrollAmount;
10780
+ scrollParent.scrollLeft += xScrollAmount;
10781
+ }
10782
+ }
10747
10783
  function scrollIntoView(element) {
10748
10784
  var overflowScroll = /(auto|scroll)/;
10749
- var clientRect;
10750
10785
  var scrollParent;
10751
- var scrollRect;
10752
- var yScrollAmount;
10753
- var xScrollAmount;
10754
- var diff;
10755
10786
  var pbody = getBody();
10756
10787
  scrollParent = getScrollParent(element, overflowScroll);
10757
10788
  while (scrollParent && scrollParent !== pbody) {
10758
- clientRect = getClientRect(element);
10759
- scrollRect = getClientRect(scrollParent);
10760
- yScrollAmount = 0;
10761
- xScrollAmount = 0;
10762
- if (clientRect.bottom > scrollRect.bottom) {
10763
- yScrollAmount += clientRect.bottom - scrollRect.bottom;
10764
- clientRect.top -= yScrollAmount;
10765
- clientRect.bottom -= yScrollAmount;
10766
- }
10767
- if (clientRect.top < scrollRect.top) {
10768
- diff = scrollRect.top - clientRect.top;
10769
- yScrollAmount -= diff;
10770
- clientRect.top += diff;
10771
- clientRect.bottom += diff;
10772
- }
10773
- if (clientRect.right > scrollRect.right) {
10774
- xScrollAmount += clientRect.right - scrollRect.right;
10775
- clientRect.left -= xScrollAmount;
10776
- clientRect.right -= xScrollAmount;
10777
- }
10778
- if (clientRect.left < scrollRect.left) {
10779
- diff = scrollRect.left - clientRect.left;
10780
- xScrollAmount -= diff;
10781
- clientRect.left += diff;
10782
- clientRect.right += diff;
10783
- }
10784
- if (_.isFunction(scrollParent.scrollBy)) {
10785
- scrollParent.scrollBy(xScrollAmount, yScrollAmount);
10786
- }
10787
- else {
10788
- scrollParent.scrollTop += yScrollAmount;
10789
- scrollParent.scrollLeft += xScrollAmount;
10790
- }
10789
+ scrollElementIntoParentRect(element, scrollParent);
10791
10790
  scrollParent = getScrollParent(scrollParent, overflowScroll);
10792
10791
  }
10793
10792
  }
@@ -11541,9 +11540,33 @@ function hasHashedAllowedOriginServers() {
11541
11540
  function parseUrl(url) {
11542
11541
  if (!_.isString(url))
11543
11542
  return;
11543
+ try {
11544
+ const urlObj = new URL(url);
11545
+ const filename = _.last(urlObj.pathname.split('/'));
11546
+ const splitFilename = filename.split('.');
11547
+ const result = {
11548
+ filename: _.first(splitFilename),
11549
+ extension: splitFilename.slice(1).join('.'),
11550
+ query: {}
11551
+ };
11552
+ if (urlObj.search.length) {
11553
+ result.query = queryStringToObject(urlObj.search.substring(1));
11554
+ }
11555
+ if (urlObj.hash.length) {
11556
+ const fragQueryStart = urlObj.hash.indexOf('?');
11557
+ if (fragQueryStart >= 0) {
11558
+ const fragmentQuery = urlObj.hash.substring(fragQueryStart + 1);
11559
+ result.fragmentQuery = queryStringToObject(fragmentQuery);
11560
+ }
11561
+ }
11562
+ return result;
11563
+ }
11564
+ catch (e) {
11565
+ }
11566
+ // original implementation, if URL object fails
11544
11567
  var queryString = parseQueryString(url).substring(1);
11545
11568
  var query = queryString && queryString.length ? queryStringToObject(queryString) : {};
11546
- var filename = _.last(_.first(url.split('?')).split('/'));
11569
+ var filename = _.last(_.first(url.split(/[?#]/)).split('/'));
11547
11570
  var splitFilename = filename.split('.');
11548
11571
  return {
11549
11572
  filename: _.first(splitFilename),
@@ -16506,7 +16529,7 @@ var BuildingBlockTooltips = (function () {
16506
16529
  attachBBAdvanceActions,
16507
16530
  attachScrollHandlers,
16508
16531
  isBuildingBlockGuideRelativeToElement,
16509
- positionStepForTooltip,
16532
+ positionStepForGuide,
16510
16533
  patchGuideContainerWidthForResponsiveTooltips
16511
16534
  };
16512
16535
  function patchGuideContainerWidthForResponsiveTooltips(step, providedGuideContainer, json) {
@@ -16525,12 +16548,19 @@ var BuildingBlockTooltips = (function () {
16525
16548
  return;
16526
16549
  calculateVwRelativeToLayoutDir(guideContainer, tooltipContext);
16527
16550
  }
16528
- function positionStepForTooltip(step, json, guideContainerEle) {
16529
- // This directly modifies step.guideElement object
16530
- createBBTooltip(json, step.element, step, guideContainerEle);
16531
- if (!step.hasBeenScrolledTo) {
16551
+ function positionStepForGuide(step, json, guideContainerEle) {
16552
+ if (step.attributes && step.attributes.calculatedType === 'tooltip') {
16553
+ // This directly modifies step.guideElement object
16554
+ createBBTooltip(json, step.element, step, guideContainerEle);
16555
+ if (!step.hasBeenScrolledTo) {
16556
+ scrollIntoView(step.element);
16557
+ scrollToTooltip(step.element, guideContainerEle, step.attributes.layoutDir);
16558
+ step.hasBeenScrolledTo = true;
16559
+ }
16560
+ }
16561
+ else if (step.element && !step.hasBeenScrolledTo) {
16532
16562
  scrollIntoView(step.element);
16533
- scrollToTooltip(step.element, guideContainerEle, step.attributes.layoutDir);
16563
+ scrollElementIntoParentRect(step.element, window);
16534
16564
  step.hasBeenScrolledTo = true;
16535
16565
  }
16536
16566
  }
@@ -18383,9 +18413,7 @@ function recalculateGuideHeightOnImgLoad(node, step) {
18383
18413
  FlexboxPolyfill.flexAllThings(step.containerId, step);
18384
18414
  }
18385
18415
  }
18386
- if (step.attributes.calculatedType === 'tooltip') {
18387
- BuildingBlockTooltips.positionStepForTooltip(step, step.domJson, guideContainer);
18388
- }
18416
+ BuildingBlockTooltips.positionStepForGuide(step, step.domJson, guideContainer);
18389
18417
  guideContainer.style.visibility = 'visible';
18390
18418
  guideContainer.parentNode.style.visibility = 'visible';
18391
18419
  dom.event.dispatch(guideContainer, {
@@ -18401,9 +18429,7 @@ function recalculateGuideHeightOnImgLoad(node, step) {
18401
18429
  log.info('Failed to find guideContainer for id: ' + step.containerId);
18402
18430
  return;
18403
18431
  }
18404
- if (step.attributes.calculatedType === 'tooltip') {
18405
- BuildingBlockTooltips.positionStepForTooltip(step, step.domJson, guideContainer);
18406
- }
18432
+ BuildingBlockTooltips.positionStepForGuide(step, step.domJson, guideContainer);
18407
18433
  guideContainer.style.visibility = 'visible';
18408
18434
  guideContainer.parentNode.style.visibility = 'visible';
18409
18435
  FlexboxPolyfill.flexAllThings(step.containerId, step);
@@ -28761,7 +28787,7 @@ var BuildingBlockGuides = (function () {
28761
28787
  adjustGuideContentWidth,
28762
28788
  findDomBlockInDomJson,
28763
28789
  isElementHiddenInGuide: FlexboxPolyfill.isElementHiddenInGuide,
28764
- positionStepForTooltip: BuildingBlockTooltips.positionStepForTooltip,
28790
+ positionStepForTooltip: BuildingBlockTooltips.positionStepForGuide,
28765
28791
  flexAllThings: FlexboxPolyfill.flexAllThings,
28766
28792
  flexElement: FlexboxPolyfill.flexElement,
28767
28793
  findTopLevelContainer,
@@ -28913,8 +28939,8 @@ var BuildingBlockGuides = (function () {
28913
28939
  else {
28914
28940
  BuildingBlockTooltips.attachBBAdvanceActions(step);
28915
28941
  }
28916
- if (relativeToElement && !hasImageCount) {
28917
- BuildingBlockTooltips.positionStepForTooltip(step, modifiableJSON, guideContainer[0]);
28942
+ if (!hasImageCount) {
28943
+ BuildingBlockTooltips.positionStepForGuide(step, modifiableJSON, guideContainer[0]);
28918
28944
  }
28919
28945
  if (isResourceCenter) {
28920
28946
  BuildingBlockResourceCenter.showHomeViewOrEmptyState(guide);
@@ -38966,7 +38992,7 @@ class WebAnalytics {
38966
38992
  const parsedUrl = this.api.util.parseUrl(url);
38967
38993
  if (!parsedUrl)
38968
38994
  return {};
38969
- const { query } = parsedUrl;
38995
+ const query = this.pendo._.extend({}, parsedUrl.fragmentQuery, parsedUrl.query);
38970
38996
  const source = query.utm_source;
38971
38997
  const medium = query.utm_medium;
38972
38998
  const campaign = query.utm_campaign;