@pendo/agent 2.312.1 → 2.313.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/README.md +7 -7
- package/bin/cli.js +9 -9
- package/dist/dom.esm.js +65 -43
- package/dist/pendo.debugger.min.js +4 -4
- package/dist/pendo.module.js +176 -118
- package/dist/pendo.module.min.js +15 -15
- package/dist/servers.json +7 -7
- package/package.json +1 -1
package/dist/pendo.module.js
CHANGED
|
@@ -2801,9 +2801,10 @@ var ConfigReader = (function () {
|
|
|
2801
2801
|
function initializeOptions() {
|
|
2802
2802
|
// Core
|
|
2803
2803
|
/**
|
|
2804
|
-
*
|
|
2804
|
+
* When included, all analytics events will be sent to each of the public app IDs in the list (guide events are
|
|
2805
2805
|
* only sent to the primary public app ID). This will only function if there are no `additionalPublicAppIds` set on
|
|
2806
2806
|
* the configuration included in the downloaded web SDK.
|
|
2807
|
+
* Alias: `additionalApiKeys`
|
|
2807
2808
|
*
|
|
2808
2809
|
* @access public
|
|
2809
2810
|
* @category Config/Core
|
|
@@ -2811,8 +2812,7 @@ var ConfigReader = (function () {
|
|
|
2811
2812
|
* @default []
|
|
2812
2813
|
* @type {string[]}
|
|
2813
2814
|
*/
|
|
2814
|
-
addOption('additionalPublicAppIds', [PENDO_CONFIG_SRC, SNIPPET_SRC]);
|
|
2815
|
-
addOption('additionalApiKeys', [PENDO_CONFIG_SRC, SNIPPET_SRC]);
|
|
2815
|
+
addOption('additionalPublicAppIds', [PENDO_CONFIG_SRC, SNIPPET_SRC], undefined, undefined, ['additionalApiKeys']);
|
|
2816
2816
|
addOption('allowedOriginServers');
|
|
2817
2817
|
addOption('allowedOriginServerHashes');
|
|
2818
2818
|
addOption('allowMixedApplicationFrames', [SNIPPET_SRC, PENDO_CONFIG_SRC], true);
|
|
@@ -2829,8 +2829,9 @@ var ConfigReader = (function () {
|
|
|
2829
2829
|
*/
|
|
2830
2830
|
addOption('annotateUrl', [SNIPPET_SRC]);
|
|
2831
2831
|
/**
|
|
2832
|
-
*
|
|
2832
|
+
* A primary public app ID to send data to from the web SDK. This will only function if there is no `publicAppId` set
|
|
2833
2833
|
* on the configuration included in the downloaded web SDK.
|
|
2834
|
+
* Alias: `apiKey`
|
|
2834
2835
|
*
|
|
2835
2836
|
* @access public
|
|
2836
2837
|
* @category Config/Core
|
|
@@ -2838,8 +2839,7 @@ var ConfigReader = (function () {
|
|
|
2838
2839
|
* @default undefined
|
|
2839
2840
|
* @type {string}
|
|
2840
2841
|
*/
|
|
2841
|
-
addOption('publicAppId', [PENDO_CONFIG_SRC, SNIPPET_SRC]);
|
|
2842
|
-
addOption('apiKey', [PENDO_CONFIG_SRC, SNIPPET_SRC]);
|
|
2842
|
+
addOption('publicAppId', [PENDO_CONFIG_SRC, SNIPPET_SRC], undefined, undefined, ['apiKey']);
|
|
2843
2843
|
addOption('assetHost', [SNIPPET_SRC, PENDO_CONFIG_SRC]);
|
|
2844
2844
|
/**
|
|
2845
2845
|
* If set to `true`, the web SDK will try to install and initialize in all same-origin frames on the page.
|
|
@@ -2852,7 +2852,7 @@ var ConfigReader = (function () {
|
|
|
2852
2852
|
* @type {boolean}
|
|
2853
2853
|
*/
|
|
2854
2854
|
addOption('autoFrameInstall', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
2855
|
-
addOption('
|
|
2855
|
+
addOption('blockWebSDKMetadata', [PENDO_CONFIG_SRC], false, undefined, ['blockAgentMetadata']);
|
|
2856
2856
|
/**
|
|
2857
2857
|
* An alternate url to load guide content from. This will be used to replace the standard google storage
|
|
2858
2858
|
* url for your subscription. Usually used for
|
|
@@ -2927,6 +2927,37 @@ var ConfigReader = (function () {
|
|
|
2927
2927
|
*/
|
|
2928
2928
|
addOption('disablePersistence', [SNIPPET_SRC, PENDO_CONFIG_SRC]);
|
|
2929
2929
|
addOption('enableSignedMetadata', [PENDO_CONFIG_SRC], false);
|
|
2930
|
+
/**
|
|
2931
|
+
* Having identity persisted by default makes it so that a transition from using identified visitor ids
|
|
2932
|
+
* to using anonymous visitor ids is challenging. Anyone that used your application with an identified
|
|
2933
|
+
* visitor id would have that value persisted to storage and whenever the web SDK is initialized for them,
|
|
2934
|
+
* that value would be read from storage treating them as the same identified visitor. When set `true`,
|
|
2935
|
+
* this config option will only use persisted identity values if they are an anonymous id. It is meant to
|
|
2936
|
+
* be used to smoothly make this transition to using anonymous ids while still retaining the benefit of
|
|
2937
|
+
* consistent anonymous ids for visitors. This option will be ignored if you provide an identified
|
|
2938
|
+
* visitorId to the initialize call.
|
|
2939
|
+
*
|
|
2940
|
+
* @access public
|
|
2941
|
+
* @category Config/Core
|
|
2942
|
+
* @name forceAnonymous
|
|
2943
|
+
* @default false
|
|
2944
|
+
* @type {boolean}
|
|
2945
|
+
*/
|
|
2946
|
+
addOption('forceAnonymous', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
2947
|
+
/**
|
|
2948
|
+
* If set to `true`, the web SDK will prioritize this frame to use as the leader frame that will coordinate
|
|
2949
|
+
* the display of guides and the resource center. The leader frame is usually the "top" frame if the SDK is initialized
|
|
2950
|
+
* there and this option is meant to be used when that condition is not met or the leader should be some other
|
|
2951
|
+
* specific frame. Sitewide guides and the resource center will always attempt to be shown in the leader frame
|
|
2952
|
+
* first.
|
|
2953
|
+
*
|
|
2954
|
+
* @access public
|
|
2955
|
+
* @category Config/Core
|
|
2956
|
+
* @name forceLeader
|
|
2957
|
+
* @default false
|
|
2958
|
+
* @type {boolean}
|
|
2959
|
+
*/
|
|
2960
|
+
addOption('forcedLeader', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
2930
2961
|
/**
|
|
2931
2962
|
* By default, the identity of a visitor in various iframes on a page are independent from each other.
|
|
2932
2963
|
* Setting this to `true` will instead have the web SDK make sure all frames use the exact same visitor and
|
|
@@ -2951,23 +2982,6 @@ var ConfigReader = (function () {
|
|
|
2951
2982
|
* @type {boolean}
|
|
2952
2983
|
*/
|
|
2953
2984
|
addOption('frameIdentityTopDownOnly', [SNIPPET_SRC, PENDO_CONFIG_SRC], true);
|
|
2954
|
-
/**
|
|
2955
|
-
* Having identity persisted by default makes it so that a transition from using identified visitor ids
|
|
2956
|
-
* to using anonymous visitor ids is challenging. Anyone that used your application with an identified
|
|
2957
|
-
* visitor id would have that value persisted to storage and whenever the web SDK is initialized for them,
|
|
2958
|
-
* that value would be read from storage treating them as the same identified visitor. When set `true`,
|
|
2959
|
-
* this config option will only use persisted identity values if they are an anonymous id. It is meant to
|
|
2960
|
-
* be used to smoothly make this transition to using anonymous ids while still retaining the benefit of
|
|
2961
|
-
* consistent anonymous ids for visitors. This option will be ignored if you provide an identified
|
|
2962
|
-
* visitorId to the initialize call.
|
|
2963
|
-
*
|
|
2964
|
-
* @access public
|
|
2965
|
-
* @category Config/Core
|
|
2966
|
-
* @name forceAnonymous
|
|
2967
|
-
* @default false
|
|
2968
|
-
* @type {boolean}
|
|
2969
|
-
*/
|
|
2970
|
-
addOption('forceAnonymous', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
2971
2985
|
addOption('identityStorageLifetime', [SNIPPET_SRC, PENDO_CONFIG_SRC]);
|
|
2972
2986
|
addOption('identityStorageSuffix', [SNIPPET_SRC, PENDO_CONFIG_SRC]);
|
|
2973
2987
|
/**
|
|
@@ -3068,7 +3082,7 @@ var ConfigReader = (function () {
|
|
|
3068
3082
|
* @type {boolean}
|
|
3069
3083
|
*/
|
|
3070
3084
|
addOption('preventUnloadListener', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
3071
|
-
addOption('
|
|
3085
|
+
addOption('promotedWebSDKMetadataConfigurations', [PENDO_CONFIG_SRC], undefined, undefined, ['promotedAgentMetadataConfigurations']);
|
|
3072
3086
|
/**
|
|
3073
3087
|
* An array of strings or a function that returns an array of strings. The web SDK will then strip any query
|
|
3074
3088
|
* string parameters from the url that are not found in the provided array. **Deprecated:** new usages to
|
|
@@ -3098,14 +3112,15 @@ var ConfigReader = (function () {
|
|
|
3098
3112
|
/**
|
|
3099
3113
|
* Meant to be used with `autoFrameInstall`. If set, the web SDK will use this as the url to download itself
|
|
3100
3114
|
* from in child frames. Read more about [frame support](/advanced/auto-frame-install).
|
|
3115
|
+
* Alias: `selfHostedAgentUrl`
|
|
3101
3116
|
*
|
|
3102
3117
|
* @access public
|
|
3103
3118
|
* @category Config/Core
|
|
3104
|
-
* @name
|
|
3119
|
+
* @name selfHostedWebSDKUrl
|
|
3105
3120
|
* @default undefined
|
|
3106
3121
|
* @type {string}
|
|
3107
3122
|
*/
|
|
3108
|
-
addOption('
|
|
3123
|
+
addOption('selfHostedWebSDKUrl', [SNIPPET_SRC, PENDO_CONFIG_SRC], undefined, undefined, ['selfHostedAgentUrl']);
|
|
3109
3124
|
/**
|
|
3110
3125
|
* If this option is set to true, event data will only be transmitted using requests of type POST instead
|
|
3111
3126
|
* of first trying to use GET requests. This can result in fewer requests being sent each time that event data
|
|
@@ -3207,7 +3222,6 @@ var ConfigReader = (function () {
|
|
|
3207
3222
|
addOption('excludeNonGuideAnalytics', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
3208
3223
|
addOption('htmlAttributeBlacklist');
|
|
3209
3224
|
addOption('htmlAttributes');
|
|
3210
|
-
addOption('interceptElementRemoval', [SNIPPET_SRC, PENDO_CONFIG_SRC], false); // old, use syntheticClicks.elementRemoval instead
|
|
3211
3225
|
/**
|
|
3212
3226
|
* By default, the web SDK will attempt to intercept calls to `preventDefault` on `touchend` events in order to
|
|
3213
3227
|
* ensure that Pendo still tracks the click event. There are cases where your application might prevent these
|
|
@@ -3239,6 +3253,7 @@ var ConfigReader = (function () {
|
|
|
3239
3253
|
* events. In these cases, Pendo will not be able to capture the `click` event properly for events or guide
|
|
3240
3254
|
* behavior. Setting this to `true` will have the web SDK intercept these types of element removal to ensure
|
|
3241
3255
|
* more consistent Pendo behavior (this option has been moved from `interceptElementRemoval`).
|
|
3256
|
+
* Alias: `interceptElementRemoval`
|
|
3242
3257
|
*
|
|
3243
3258
|
* @access public
|
|
3244
3259
|
* @category Config/Analytics
|
|
@@ -3246,7 +3261,7 @@ var ConfigReader = (function () {
|
|
|
3246
3261
|
* @default false
|
|
3247
3262
|
* @type {boolean}
|
|
3248
3263
|
*/
|
|
3249
|
-
addOption('syntheticClicks.elementRemoval', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
3264
|
+
addOption('syntheticClicks.elementRemoval', [SNIPPET_SRC, PENDO_CONFIG_SRC], false, undefined, ['interceptElementRemoval']);
|
|
3250
3265
|
/**
|
|
3251
3266
|
* A `click` is classified by the browser as the same element receiving the `mousedown` and `mouseup` events.
|
|
3252
3267
|
* When `true` this option will allow Pendo to treat cases where a visitor clicks down the mouse, moves the
|
|
@@ -3295,7 +3310,6 @@ var ConfigReader = (function () {
|
|
|
3295
3310
|
* @type {Number}
|
|
3296
3311
|
*/
|
|
3297
3312
|
addOption('cacheGuidesTimeout', [PENDO_CONFIG_SRC], 600000);
|
|
3298
|
-
addOption('delayGuides', [SNIPPET_SRC]); // old, use guides.delay instead
|
|
3299
3313
|
/**
|
|
3300
3314
|
* If `true`, this will prevent the web SDK from attempting to launch the Visual Design Studio.
|
|
3301
3315
|
*
|
|
@@ -3331,7 +3345,6 @@ var ConfigReader = (function () {
|
|
|
3331
3345
|
* @type {boolean}
|
|
3332
3346
|
*/
|
|
3333
3347
|
addOption('disableGuidePseudoStyles', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
3334
|
-
addOption('disableGuides', [SNIPPET_SRC]); // old, use guides.disabled instead
|
|
3335
3348
|
/**
|
|
3336
3349
|
* Content of badge and target element activated guides will be prefetched on load to improve guide display
|
|
3337
3350
|
* time unless set to `true`.
|
|
@@ -3376,7 +3389,7 @@ var ConfigReader = (function () {
|
|
|
3376
3389
|
* @type {number}
|
|
3377
3390
|
*/
|
|
3378
3391
|
addOption('guideSeenTimeoutLength', [PENDO_CONFIG_SRC, SNIPPET_SRC], 10000);
|
|
3379
|
-
addOption('guideTimeout', [SNIPPET_SRC]); // old, use guides.timeout instead
|
|
3392
|
+
// addOption('guideTimeout', [SNIPPET_SRC]); // old, use guides.timeout instead
|
|
3380
3393
|
/**
|
|
3381
3394
|
* If `true`, guides will be verified against their saved content hash before display to ensure validity of
|
|
3382
3395
|
* guide content.
|
|
@@ -3401,7 +3414,8 @@ var ConfigReader = (function () {
|
|
|
3401
3414
|
addOption('guides.attachPoint', [SNIPPET_SRC]);
|
|
3402
3415
|
/**
|
|
3403
3416
|
* Guides will be loaded, but not displayed. Call `pendo.startGuides()` to display guides when you choose
|
|
3404
|
-
* to do so
|
|
3417
|
+
* to do so.
|
|
3418
|
+
* Alias: `delayGuides`
|
|
3405
3419
|
*
|
|
3406
3420
|
* @access public
|
|
3407
3421
|
* @category Config/Guides
|
|
@@ -3409,9 +3423,10 @@ var ConfigReader = (function () {
|
|
|
3409
3423
|
* @default false
|
|
3410
3424
|
* @type {boolean}
|
|
3411
3425
|
*/
|
|
3412
|
-
addOption('guides.delay', [SNIPPET_SRC]);
|
|
3426
|
+
addOption('guides.delay', [SNIPPET_SRC], undefined, undefined, ['delayGuides']);
|
|
3413
3427
|
/**
|
|
3414
3428
|
* Completely disables guides (this option has been moved from `disableGuides`).
|
|
3429
|
+
* Alias: `disableGuides`
|
|
3415
3430
|
*
|
|
3416
3431
|
* @access public
|
|
3417
3432
|
* @category Config/Guides
|
|
@@ -3419,7 +3434,7 @@ var ConfigReader = (function () {
|
|
|
3419
3434
|
* @default false
|
|
3420
3435
|
* @type {boolean}
|
|
3421
3436
|
*/
|
|
3422
|
-
addOption('guides.disabled', [SNIPPET_SRC]);
|
|
3437
|
+
addOption('guides.disabled', [SNIPPET_SRC], undefined, undefined, ['disableGuides']);
|
|
3423
3438
|
/**
|
|
3424
3439
|
* If 'true', guides with slow selectors will be removed from guide display processing.
|
|
3425
3440
|
* This will improve application performance, but slow guides will not be shown to users.
|
|
@@ -3445,6 +3460,7 @@ var ConfigReader = (function () {
|
|
|
3445
3460
|
/**
|
|
3446
3461
|
* How long to wait for guides to load in milliseconds (this option has been moved from `guideTimeout`).
|
|
3447
3462
|
* By default guides will not timeout.
|
|
3463
|
+
* Alias: `guideTimeout`
|
|
3448
3464
|
*
|
|
3449
3465
|
* @access public
|
|
3450
3466
|
* @category Config/Guides
|
|
@@ -3452,7 +3468,7 @@ var ConfigReader = (function () {
|
|
|
3452
3468
|
* @default undefined
|
|
3453
3469
|
* @type {number}
|
|
3454
3470
|
*/
|
|
3455
|
-
addOption('guides.timeout', [SNIPPET_SRC]);
|
|
3471
|
+
addOption('guides.timeout', [SNIPPET_SRC], undefined, undefined, ['guideTimeout']);
|
|
3456
3472
|
/**
|
|
3457
3473
|
* The tooltip arrow size (in pixels). This only affects classic guides.
|
|
3458
3474
|
*
|
|
@@ -3543,10 +3559,10 @@ var ConfigReader = (function () {
|
|
|
3543
3559
|
// Adopt
|
|
3544
3560
|
addOption('adoptHost');
|
|
3545
3561
|
addOption('adoptAnalyticsForwarding');
|
|
3546
|
-
addOption('agentDebuggerPluginLoader');
|
|
3562
|
+
addOption('webSDKDebuggerPluginLoader', [PENDO_CONFIG_SRC], undefined, undefined, ['agentDebuggerPluginLoader']);
|
|
3547
3563
|
addOption('allowPartnerAnalyticsForwarding', [SNIPPET_SRC], false);
|
|
3548
3564
|
addOption('adoptPrioritizeAdoptGuides', [PENDO_CONFIG_SRC], false);
|
|
3549
|
-
addOption('
|
|
3565
|
+
addOption('designerWebSDKPluginsLoader', [PENDO_CONFIG_SRC, SNIPPET_SRC], undefined, undefined, ['designerAgentPluginsLoader']);
|
|
3550
3566
|
addOption('guideContentLoader', [PENDO_CONFIG_SRC]);
|
|
3551
3567
|
addOption('trainingPartner');
|
|
3552
3568
|
addOption('oemAccountId', [SNIPPET_SRC]);
|
|
@@ -3585,8 +3601,18 @@ var ConfigReader = (function () {
|
|
|
3585
3601
|
function getValueFromSourceGetter(option, sourceGetter) {
|
|
3586
3602
|
if (!sourceGetter)
|
|
3587
3603
|
return;
|
|
3588
|
-
|
|
3589
|
-
|
|
3604
|
+
const source = sourceGetter();
|
|
3605
|
+
let v = _.get(source.lookup, getConfigKey(option));
|
|
3606
|
+
// need to also check option aliases if the option.name key is not found in the source
|
|
3607
|
+
if (!doesExist(v)) {
|
|
3608
|
+
const aliasWithValue = _.find(option.aliases || [], function (alias) {
|
|
3609
|
+
const val = _.get(source.lookup, alias);
|
|
3610
|
+
if (doesExist(val))
|
|
3611
|
+
return val;
|
|
3612
|
+
});
|
|
3613
|
+
if (aliasWithValue)
|
|
3614
|
+
v = _.get(source.lookup, aliasWithValue);
|
|
3615
|
+
}
|
|
3590
3616
|
return doesExist(v) ? v : undefined;
|
|
3591
3617
|
}
|
|
3592
3618
|
function getValueFromSource(option, src) {
|
|
@@ -3603,10 +3629,6 @@ var ConfigReader = (function () {
|
|
|
3603
3629
|
var option = findOption(optionName);
|
|
3604
3630
|
defaultValue = defaultValue || _.get(option, 'defaultValue', null);
|
|
3605
3631
|
var defaultReturn = new ConfigValue(optionName, defaultValue, DEFAULT_SRC);
|
|
3606
|
-
// if (source) {
|
|
3607
|
-
// var val = getValueFromSource(option, source);
|
|
3608
|
-
// return val;
|
|
3609
|
-
// }
|
|
3610
3632
|
var validOptions = mapSourcesToValues(option, sources);
|
|
3611
3633
|
// defaultValue must exist in order to use non-ordered sources,
|
|
3612
3634
|
// otherwise you can't know what value to value over another.
|
|
@@ -3924,8 +3946,8 @@ let SERVER = '';
|
|
|
3924
3946
|
let ASSET_HOST = '';
|
|
3925
3947
|
let ASSET_PATH = '';
|
|
3926
3948
|
let DESIGNER_SERVER = '';
|
|
3927
|
-
let VERSION = '2.
|
|
3928
|
-
let PACKAGE_VERSION = '2.
|
|
3949
|
+
let VERSION = '2.313.0_';
|
|
3950
|
+
let PACKAGE_VERSION = '2.313.0';
|
|
3929
3951
|
let LOADER = 'xhr';
|
|
3930
3952
|
/* eslint-enable web-sdk-eslint-rules/no-gulp-env-references */
|
|
3931
3953
|
/**
|
|
@@ -12639,7 +12661,6 @@ function eventCreate(type, props, url, name, eventProperties, context) {
|
|
|
12639
12661
|
if (type === 'track') {
|
|
12640
12662
|
eventObj.track_event_name = name || defaultTrackName;
|
|
12641
12663
|
}
|
|
12642
|
-
Events.eventCaptured.trigger(eventObj, context);
|
|
12643
12664
|
return eventObj;
|
|
12644
12665
|
}
|
|
12645
12666
|
function shouldCollectEvent() {
|
|
@@ -12659,7 +12680,11 @@ function shouldCollectEvent() {
|
|
|
12659
12680
|
function collectEvent(type, props, url, name, eventProperties, context) {
|
|
12660
12681
|
if (!shouldCollectEvent())
|
|
12661
12682
|
return;
|
|
12662
|
-
var event = eventCreate(type, props, url, name, eventProperties
|
|
12683
|
+
var event = eventCreate(type, props, url, name, eventProperties);
|
|
12684
|
+
var captureEvent = Events.eventCaptured.trigger(event, context);
|
|
12685
|
+
if (captureEvent.cancel) {
|
|
12686
|
+
return;
|
|
12687
|
+
}
|
|
12663
12688
|
if (!isURLValid(event.url)) {
|
|
12664
12689
|
return;
|
|
12665
12690
|
}
|
|
@@ -12851,6 +12876,13 @@ function filterAnalyticsDisabled(silo, next) {
|
|
|
12851
12876
|
return;
|
|
12852
12877
|
next(silo);
|
|
12853
12878
|
}
|
|
12879
|
+
function fireEventCaptured(silo, next) {
|
|
12880
|
+
var captureEvent = Events.eventCaptured.trigger(silo);
|
|
12881
|
+
if (captureEvent.cancel) {
|
|
12882
|
+
return;
|
|
12883
|
+
}
|
|
12884
|
+
next(silo);
|
|
12885
|
+
}
|
|
12854
12886
|
function errorLogger() {
|
|
12855
12887
|
return function (silo, next) {
|
|
12856
12888
|
if (silo.length === 1 && silo.JZB.length > ENCODED_EVENT_MAX_POST_LENGTH) {
|
|
@@ -13744,7 +13776,7 @@ var wirePage = function (eventList) {
|
|
|
13744
13776
|
unwire.push(() => { handle_change_event.cancel(); });
|
|
13745
13777
|
unwire.push(attachEventInternal(document, 'change', handle_change_event, true));
|
|
13746
13778
|
}
|
|
13747
|
-
const interceptElementRemoval = ConfigReader.get('
|
|
13779
|
+
const interceptElementRemoval = ConfigReader.get('syntheticClicks.elementRemoval');
|
|
13748
13780
|
const interceptMouseUp = ConfigReader.get('syntheticClicks.targetChanged');
|
|
13749
13781
|
unwire.push(wireSyntheticClicks(dom.event.trigger, sniffer.addEventListener, interceptElementRemoval, interceptMouseUp).teardown);
|
|
13750
13782
|
unwire.push(listenForEvents(eventList));
|
|
@@ -23136,7 +23168,7 @@ const Keys = (function () {
|
|
|
23136
23168
|
_apiKey = key;
|
|
23137
23169
|
};
|
|
23138
23170
|
const discoverApiKey = (apiKey) => {
|
|
23139
|
-
apiKey = ConfigReader.get('publicAppId'
|
|
23171
|
+
apiKey = ConfigReader.get('publicAppId', apiKey);
|
|
23140
23172
|
if (apiKey) {
|
|
23141
23173
|
setApiKey(apiKey);
|
|
23142
23174
|
}
|
|
@@ -25794,7 +25826,6 @@ function createGuideEvent(name, guideId, stepId, visitorId, reason, language) {
|
|
|
25794
25826
|
url: pendoDotUrl.externalizeURL(),
|
|
25795
25827
|
props
|
|
25796
25828
|
});
|
|
25797
|
-
Events.eventCaptured.trigger(event);
|
|
25798
25829
|
return event;
|
|
25799
25830
|
}
|
|
25800
25831
|
var stagedEventsTimer = null;
|
|
@@ -26242,7 +26273,7 @@ var loadGuides = function (apiKey, visitorId, page, callback) {
|
|
|
26242
26273
|
Events.guidesFailed.trigger();
|
|
26243
26274
|
deferred.reject(err);
|
|
26244
26275
|
});
|
|
26245
|
-
var guideTimeoutDuration = ConfigReader.get('
|
|
26276
|
+
var guideTimeoutDuration = ConfigReader.get('guides.timeout');
|
|
26246
26277
|
if (_.isNumber(guideTimeoutDuration)) {
|
|
26247
26278
|
clearTimeout(loadGuidesTimeout);
|
|
26248
26279
|
loadGuidesTimeout = setTimeout$1(function () {
|
|
@@ -26376,7 +26407,7 @@ var getGuideEventCache = function () {
|
|
|
26376
26407
|
};
|
|
26377
26408
|
function createGuideEventQueue(options) {
|
|
26378
26409
|
const processSilos = pipeline(filterAnalyticsDisabled, splitSiloOnFieldChange('visitor_id'), splitSiloOnFieldChange('props.guide_id'), splitSiloOnFieldChange('props.source'), compressSilo, errorLogger(), addSiloParams(options), addAccountIdParamIfAdoptPartner, addSourceParamIfPresent, convertSiloToObject);
|
|
26379
|
-
const packageSilos = pipeline(eventSequence, siloReducer(options.cache), _.noop // do not move to the silo queue until manual flush
|
|
26410
|
+
const packageSilos = pipeline(fireEventCaptured, eventSequence, siloReducer(options.cache), _.noop // do not move to the silo queue until manual flush
|
|
26380
26411
|
);
|
|
26381
26412
|
return new EventQueue(_.extend({ processSilos, packageSilos }, options));
|
|
26382
26413
|
}
|
|
@@ -26585,7 +26616,7 @@ var initGuides = function (observer) {
|
|
|
26585
26616
|
* pendo.areGuidesDisabled() => true
|
|
26586
26617
|
*/
|
|
26587
26618
|
var areGuidesDisabled = function () {
|
|
26588
|
-
return ConfigReader.get('guides.disabled', false) ||
|
|
26619
|
+
return ConfigReader.get('guides.disabled', false) || !pendoCore;
|
|
26589
26620
|
};
|
|
26590
26621
|
/**
|
|
26591
26622
|
* Returns true or false if the client has delayed guides in the snippet or via a command
|
|
@@ -26597,7 +26628,7 @@ var areGuidesDisabled = function () {
|
|
|
26597
26628
|
* pendo.areGuidesDelayed() => true
|
|
26598
26629
|
*/
|
|
26599
26630
|
var areGuidesDelayed = function () {
|
|
26600
|
-
return ConfigReader.get('guides.delay', false)
|
|
26631
|
+
return ConfigReader.get('guides.delay', false);
|
|
26601
26632
|
};
|
|
26602
26633
|
var setGuidesDisabled = function (areDisabled) {
|
|
26603
26634
|
var originalOptions = ConfigReader.getLocalConfig();
|
|
@@ -32953,7 +32984,8 @@ var FramesModule = (function () {
|
|
|
32953
32984
|
isTop,
|
|
32954
32985
|
visibility: isTop ? 'visible' : 'unknown',
|
|
32955
32986
|
apiKey: pendo$1.apiKey,
|
|
32956
|
-
leaderKey
|
|
32987
|
+
leaderKey,
|
|
32988
|
+
forcedLeader: ConfigReader.get('forcedLeader')
|
|
32957
32989
|
}, currentFrameState)
|
|
32958
32990
|
});
|
|
32959
32991
|
},
|
|
@@ -33027,27 +33059,31 @@ var FramesModule = (function () {
|
|
|
33027
33059
|
context.dispatch('electLeader');
|
|
33028
33060
|
}, 50),
|
|
33029
33061
|
electLeader(context) {
|
|
33030
|
-
|
|
33031
|
-
|
|
33032
|
-
|
|
33062
|
+
const state = context.state;
|
|
33063
|
+
let candidateFrames = state.frames;
|
|
33064
|
+
const leaderKeyPreference = context.getters.leaderKeyPreference();
|
|
33033
33065
|
if (leaderKeyPreference.length) {
|
|
33034
33066
|
while (leaderKeyPreference.length) {
|
|
33035
|
-
|
|
33036
|
-
|
|
33067
|
+
const leaderKey = leaderKeyPreference.shift();
|
|
33068
|
+
const framesWithKey = _.filter(state.frames, (frame) => frame.apiKey === leaderKey);
|
|
33037
33069
|
if (framesWithKey.length) {
|
|
33038
33070
|
candidateFrames = framesWithKey;
|
|
33039
33071
|
break;
|
|
33040
33072
|
}
|
|
33041
33073
|
}
|
|
33042
33074
|
}
|
|
33043
|
-
|
|
33075
|
+
const forcedLeaderFrames = _.filter(candidateFrames, (frame) => frame.forcedLeader);
|
|
33076
|
+
if (forcedLeaderFrames.length) {
|
|
33077
|
+
candidateFrames = forcedLeaderFrames;
|
|
33078
|
+
}
|
|
33079
|
+
const topFrame = _.find(candidateFrames, (frame) => frame.isTop);
|
|
33044
33080
|
if (topFrame) {
|
|
33045
33081
|
context.dispatch('followLeader', {
|
|
33046
33082
|
leaderId: topFrame.id
|
|
33047
33083
|
});
|
|
33048
33084
|
}
|
|
33049
33085
|
else {
|
|
33050
|
-
|
|
33086
|
+
const oldestFrame = _.min(candidateFrames, 'joinedAt');
|
|
33051
33087
|
context.dispatch('followLeader', {
|
|
33052
33088
|
leaderId: oldestFrame.id
|
|
33053
33089
|
});
|
|
@@ -33694,9 +33730,13 @@ var FramesModule = (function () {
|
|
|
33694
33730
|
},
|
|
33695
33731
|
canShowRCBadge(state, getters) {
|
|
33696
33732
|
if (getters.leaderKey() !== pendo$1.apiKey) {
|
|
33697
|
-
|
|
33733
|
+
let sameKeyFrames = _.filter(state.frames, function (frame) {
|
|
33698
33734
|
return frame.apiKey === pendo$1.apiKey;
|
|
33699
33735
|
});
|
|
33736
|
+
const forcedLeaderFrames = _.filter(sameKeyFrames, (frame) => frame.forcedLeader);
|
|
33737
|
+
if (forcedLeaderFrames.length) {
|
|
33738
|
+
sameKeyFrames = forcedLeaderFrames;
|
|
33739
|
+
}
|
|
33700
33740
|
const topFrame = _.find(sameKeyFrames, function (frame) {
|
|
33701
33741
|
return frame.isTop;
|
|
33702
33742
|
});
|
|
@@ -33708,12 +33748,6 @@ var FramesModule = (function () {
|
|
|
33708
33748
|
});
|
|
33709
33749
|
return state.frameId === firstJoined.id;
|
|
33710
33750
|
}
|
|
33711
|
-
var hasTopFrame = _.any(state.frames, function (frame) {
|
|
33712
|
-
return frame.isTop;
|
|
33713
|
-
});
|
|
33714
|
-
if (hasTopFrame) {
|
|
33715
|
-
return getters.isTop();
|
|
33716
|
-
}
|
|
33717
33751
|
return getters.isLeader();
|
|
33718
33752
|
},
|
|
33719
33753
|
leaderKeyPreference(state) {
|
|
@@ -37919,7 +37953,7 @@ function startDebuggingModuleIfEnabled() {
|
|
|
37919
37953
|
if (dom('#pendo-client-debugger').length)
|
|
37920
37954
|
return;
|
|
37921
37955
|
// if debugger launcher function exists on config, run it
|
|
37922
|
-
const agentDebuggerPluginLoader = ConfigReader.get('
|
|
37956
|
+
const agentDebuggerPluginLoader = ConfigReader.get('webSDKDebuggerPluginLoader');
|
|
37923
37957
|
if (PluginAPI.restartDebugger) {
|
|
37924
37958
|
PluginAPI.restartDebugger();
|
|
37925
37959
|
}
|
|
@@ -38615,14 +38649,14 @@ const EmbeddedGuides = (function () {
|
|
|
38615
38649
|
// The guideLoopStopped event sometimes is sent when the guide loop is restarted, for example when a guide is advanced.
|
|
38616
38650
|
// Do not hide embedded guides in these cases.
|
|
38617
38651
|
// The delayGuides flag is set when guides are manually stopped, and unset when guides are manually started.
|
|
38618
|
-
if (pluginApi.ConfigReader.get('
|
|
38652
|
+
if (pluginApi.ConfigReader.get('guides.delay')) {
|
|
38619
38653
|
hideAllEmbeddedGuides();
|
|
38620
38654
|
}
|
|
38621
38655
|
}
|
|
38622
38656
|
function hideGuide(event) {
|
|
38623
38657
|
const guideId = _.get(event, 'data.0.props.guide_id', null);
|
|
38624
38658
|
if (guideId) {
|
|
38625
|
-
const guide =
|
|
38659
|
+
const guide = _.find(embeddedGuides, ({ id }) => id === guideId);
|
|
38626
38660
|
if (guide) {
|
|
38627
38661
|
guide.hide();
|
|
38628
38662
|
}
|
|
@@ -42247,7 +42281,9 @@ function VocPortal() {
|
|
|
42247
42281
|
visitor: metadata.visitor,
|
|
42248
42282
|
account: metadata.account,
|
|
42249
42283
|
parentAccount: metadata.parentAccount,
|
|
42250
|
-
sandboxMode: sandBoxMode
|
|
42284
|
+
sandboxMode: sandBoxMode,
|
|
42285
|
+
guideId: pendoGlobal._.get(pendoGlobal.getActiveGuide(), 'guide.id'),
|
|
42286
|
+
rcModuleId: pendoGlobal._.get(pendoGlobal.BuildingBlocks.BuildingBlockResourceCenter.getResourceCenter(), 'activeModule.id')
|
|
42251
42287
|
};
|
|
42252
42288
|
responseHandler(response);
|
|
42253
42289
|
}
|
|
@@ -56316,9 +56352,10 @@ var ConfigReader = (function () {
|
|
|
56316
56352
|
function initializeOptions() {
|
|
56317
56353
|
// Core
|
|
56318
56354
|
/**
|
|
56319
|
-
*
|
|
56355
|
+
* When included, all analytics events will be sent to each of the public app IDs in the list (guide events are
|
|
56320
56356
|
* only sent to the primary public app ID). This will only function if there are no `additionalPublicAppIds` set on
|
|
56321
56357
|
* the configuration included in the downloaded web SDK.
|
|
56358
|
+
* Alias: `additionalApiKeys`
|
|
56322
56359
|
*
|
|
56323
56360
|
* @access public
|
|
56324
56361
|
* @category Config/Core
|
|
@@ -56326,8 +56363,7 @@ var ConfigReader = (function () {
|
|
|
56326
56363
|
* @default []
|
|
56327
56364
|
* @type {string[]}
|
|
56328
56365
|
*/
|
|
56329
|
-
addOption('additionalPublicAppIds', [PENDO_CONFIG_SRC, SNIPPET_SRC]);
|
|
56330
|
-
addOption('additionalApiKeys', [PENDO_CONFIG_SRC, SNIPPET_SRC]);
|
|
56366
|
+
addOption('additionalPublicAppIds', [PENDO_CONFIG_SRC, SNIPPET_SRC], undefined, undefined, ['additionalApiKeys']);
|
|
56331
56367
|
addOption('allowedOriginServers');
|
|
56332
56368
|
addOption('allowedOriginServerHashes');
|
|
56333
56369
|
addOption('allowMixedApplicationFrames', [SNIPPET_SRC, PENDO_CONFIG_SRC], true);
|
|
@@ -56344,8 +56380,9 @@ var ConfigReader = (function () {
|
|
|
56344
56380
|
*/
|
|
56345
56381
|
addOption('annotateUrl', [SNIPPET_SRC]);
|
|
56346
56382
|
/**
|
|
56347
|
-
*
|
|
56383
|
+
* A primary public app ID to send data to from the web SDK. This will only function if there is no `publicAppId` set
|
|
56348
56384
|
* on the configuration included in the downloaded web SDK.
|
|
56385
|
+
* Alias: `apiKey`
|
|
56349
56386
|
*
|
|
56350
56387
|
* @access public
|
|
56351
56388
|
* @category Config/Core
|
|
@@ -56353,8 +56390,7 @@ var ConfigReader = (function () {
|
|
|
56353
56390
|
* @default undefined
|
|
56354
56391
|
* @type {string}
|
|
56355
56392
|
*/
|
|
56356
|
-
addOption('publicAppId', [PENDO_CONFIG_SRC, SNIPPET_SRC]);
|
|
56357
|
-
addOption('apiKey', [PENDO_CONFIG_SRC, SNIPPET_SRC]);
|
|
56393
|
+
addOption('publicAppId', [PENDO_CONFIG_SRC, SNIPPET_SRC], undefined, undefined, ['apiKey']);
|
|
56358
56394
|
addOption('assetHost', [SNIPPET_SRC, PENDO_CONFIG_SRC]);
|
|
56359
56395
|
/**
|
|
56360
56396
|
* If set to `true`, the web SDK will try to install and initialize in all same-origin frames on the page.
|
|
@@ -56367,7 +56403,7 @@ var ConfigReader = (function () {
|
|
|
56367
56403
|
* @type {boolean}
|
|
56368
56404
|
*/
|
|
56369
56405
|
addOption('autoFrameInstall', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56370
|
-
addOption('
|
|
56406
|
+
addOption('blockWebSDKMetadata', [PENDO_CONFIG_SRC], false, undefined, ['blockAgentMetadata']);
|
|
56371
56407
|
/**
|
|
56372
56408
|
* An alternate url to load guide content from. This will be used to replace the standard google storage
|
|
56373
56409
|
* url for your subscription. Usually used for
|
|
@@ -56442,6 +56478,37 @@ var ConfigReader = (function () {
|
|
|
56442
56478
|
*/
|
|
56443
56479
|
addOption('disablePersistence', [SNIPPET_SRC, PENDO_CONFIG_SRC]);
|
|
56444
56480
|
addOption('enableSignedMetadata', [PENDO_CONFIG_SRC], false);
|
|
56481
|
+
/**
|
|
56482
|
+
* Having identity persisted by default makes it so that a transition from using identified visitor ids
|
|
56483
|
+
* to using anonymous visitor ids is challenging. Anyone that used your application with an identified
|
|
56484
|
+
* visitor id would have that value persisted to storage and whenever the web SDK is initialized for them,
|
|
56485
|
+
* that value would be read from storage treating them as the same identified visitor. When set `true`,
|
|
56486
|
+
* this config option will only use persisted identity values if they are an anonymous id. It is meant to
|
|
56487
|
+
* be used to smoothly make this transition to using anonymous ids while still retaining the benefit of
|
|
56488
|
+
* consistent anonymous ids for visitors. This option will be ignored if you provide an identified
|
|
56489
|
+
* visitorId to the initialize call.
|
|
56490
|
+
*
|
|
56491
|
+
* @access public
|
|
56492
|
+
* @category Config/Core
|
|
56493
|
+
* @name forceAnonymous
|
|
56494
|
+
* @default false
|
|
56495
|
+
* @type {boolean}
|
|
56496
|
+
*/
|
|
56497
|
+
addOption('forceAnonymous', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56498
|
+
/**
|
|
56499
|
+
* If set to `true`, the web SDK will prioritize this frame to use as the leader frame that will coordinate
|
|
56500
|
+
* the display of guides and the resource center. The leader frame is usually the "top" frame if the SDK is initialized
|
|
56501
|
+
* there and this option is meant to be used when that condition is not met or the leader should be some other
|
|
56502
|
+
* specific frame. Sitewide guides and the resource center will always attempt to be shown in the leader frame
|
|
56503
|
+
* first.
|
|
56504
|
+
*
|
|
56505
|
+
* @access public
|
|
56506
|
+
* @category Config/Core
|
|
56507
|
+
* @name forceLeader
|
|
56508
|
+
* @default false
|
|
56509
|
+
* @type {boolean}
|
|
56510
|
+
*/
|
|
56511
|
+
addOption('forcedLeader', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56445
56512
|
/**
|
|
56446
56513
|
* By default, the identity of a visitor in various iframes on a page are independent from each other.
|
|
56447
56514
|
* Setting this to `true` will instead have the web SDK make sure all frames use the exact same visitor and
|
|
@@ -56466,23 +56533,6 @@ var ConfigReader = (function () {
|
|
|
56466
56533
|
* @type {boolean}
|
|
56467
56534
|
*/
|
|
56468
56535
|
addOption('frameIdentityTopDownOnly', [SNIPPET_SRC, PENDO_CONFIG_SRC], true);
|
|
56469
|
-
/**
|
|
56470
|
-
* Having identity persisted by default makes it so that a transition from using identified visitor ids
|
|
56471
|
-
* to using anonymous visitor ids is challenging. Anyone that used your application with an identified
|
|
56472
|
-
* visitor id would have that value persisted to storage and whenever the web SDK is initialized for them,
|
|
56473
|
-
* that value would be read from storage treating them as the same identified visitor. When set `true`,
|
|
56474
|
-
* this config option will only use persisted identity values if they are an anonymous id. It is meant to
|
|
56475
|
-
* be used to smoothly make this transition to using anonymous ids while still retaining the benefit of
|
|
56476
|
-
* consistent anonymous ids for visitors. This option will be ignored if you provide an identified
|
|
56477
|
-
* visitorId to the initialize call.
|
|
56478
|
-
*
|
|
56479
|
-
* @access public
|
|
56480
|
-
* @category Config/Core
|
|
56481
|
-
* @name forceAnonymous
|
|
56482
|
-
* @default false
|
|
56483
|
-
* @type {boolean}
|
|
56484
|
-
*/
|
|
56485
|
-
addOption('forceAnonymous', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56486
56536
|
addOption('identityStorageLifetime', [SNIPPET_SRC, PENDO_CONFIG_SRC]);
|
|
56487
56537
|
addOption('identityStorageSuffix', [SNIPPET_SRC, PENDO_CONFIG_SRC]);
|
|
56488
56538
|
/**
|
|
@@ -56583,7 +56633,7 @@ var ConfigReader = (function () {
|
|
|
56583
56633
|
* @type {boolean}
|
|
56584
56634
|
*/
|
|
56585
56635
|
addOption('preventUnloadListener', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56586
|
-
addOption('
|
|
56636
|
+
addOption('promotedWebSDKMetadataConfigurations', [PENDO_CONFIG_SRC], undefined, undefined, ['promotedAgentMetadataConfigurations']);
|
|
56587
56637
|
/**
|
|
56588
56638
|
* An array of strings or a function that returns an array of strings. The web SDK will then strip any query
|
|
56589
56639
|
* string parameters from the url that are not found in the provided array. **Deprecated:** new usages to
|
|
@@ -56613,14 +56663,15 @@ var ConfigReader = (function () {
|
|
|
56613
56663
|
/**
|
|
56614
56664
|
* Meant to be used with `autoFrameInstall`. If set, the web SDK will use this as the url to download itself
|
|
56615
56665
|
* from in child frames. Read more about [frame support](/advanced/auto-frame-install).
|
|
56666
|
+
* Alias: `selfHostedAgentUrl`
|
|
56616
56667
|
*
|
|
56617
56668
|
* @access public
|
|
56618
56669
|
* @category Config/Core
|
|
56619
|
-
* @name
|
|
56670
|
+
* @name selfHostedWebSDKUrl
|
|
56620
56671
|
* @default undefined
|
|
56621
56672
|
* @type {string}
|
|
56622
56673
|
*/
|
|
56623
|
-
addOption('
|
|
56674
|
+
addOption('selfHostedWebSDKUrl', [SNIPPET_SRC, PENDO_CONFIG_SRC], undefined, undefined, ['selfHostedAgentUrl']);
|
|
56624
56675
|
/**
|
|
56625
56676
|
* If this option is set to true, event data will only be transmitted using requests of type POST instead
|
|
56626
56677
|
* of first trying to use GET requests. This can result in fewer requests being sent each time that event data
|
|
@@ -56722,7 +56773,6 @@ var ConfigReader = (function () {
|
|
|
56722
56773
|
addOption('excludeNonGuideAnalytics', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56723
56774
|
addOption('htmlAttributeBlacklist');
|
|
56724
56775
|
addOption('htmlAttributes');
|
|
56725
|
-
addOption('interceptElementRemoval', [SNIPPET_SRC, PENDO_CONFIG_SRC], false); // old, use syntheticClicks.elementRemoval instead
|
|
56726
56776
|
/**
|
|
56727
56777
|
* By default, the web SDK will attempt to intercept calls to `preventDefault` on `touchend` events in order to
|
|
56728
56778
|
* ensure that Pendo still tracks the click event. There are cases where your application might prevent these
|
|
@@ -56754,6 +56804,7 @@ var ConfigReader = (function () {
|
|
|
56754
56804
|
* events. In these cases, Pendo will not be able to capture the `click` event properly for events or guide
|
|
56755
56805
|
* behavior. Setting this to `true` will have the web SDK intercept these types of element removal to ensure
|
|
56756
56806
|
* more consistent Pendo behavior (this option has been moved from `interceptElementRemoval`).
|
|
56807
|
+
* Alias: `interceptElementRemoval`
|
|
56757
56808
|
*
|
|
56758
56809
|
* @access public
|
|
56759
56810
|
* @category Config/Analytics
|
|
@@ -56761,7 +56812,7 @@ var ConfigReader = (function () {
|
|
|
56761
56812
|
* @default false
|
|
56762
56813
|
* @type {boolean}
|
|
56763
56814
|
*/
|
|
56764
|
-
addOption('syntheticClicks.elementRemoval', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56815
|
+
addOption('syntheticClicks.elementRemoval', [SNIPPET_SRC, PENDO_CONFIG_SRC], false, undefined, ['interceptElementRemoval']);
|
|
56765
56816
|
/**
|
|
56766
56817
|
* A `click` is classified by the browser as the same element receiving the `mousedown` and `mouseup` events.
|
|
56767
56818
|
* When `true` this option will allow Pendo to treat cases where a visitor clicks down the mouse, moves the
|
|
@@ -56810,7 +56861,6 @@ var ConfigReader = (function () {
|
|
|
56810
56861
|
* @type {Number}
|
|
56811
56862
|
*/
|
|
56812
56863
|
addOption('cacheGuidesTimeout', [PENDO_CONFIG_SRC], 600000);
|
|
56813
|
-
addOption('delayGuides', [SNIPPET_SRC]); // old, use guides.delay instead
|
|
56814
56864
|
/**
|
|
56815
56865
|
* If `true`, this will prevent the web SDK from attempting to launch the Visual Design Studio.
|
|
56816
56866
|
*
|
|
@@ -56846,7 +56896,6 @@ var ConfigReader = (function () {
|
|
|
56846
56896
|
* @type {boolean}
|
|
56847
56897
|
*/
|
|
56848
56898
|
addOption('disableGuidePseudoStyles', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56849
|
-
addOption('disableGuides', [SNIPPET_SRC]); // old, use guides.disabled instead
|
|
56850
56899
|
/**
|
|
56851
56900
|
* Content of badge and target element activated guides will be prefetched on load to improve guide display
|
|
56852
56901
|
* time unless set to `true`.
|
|
@@ -56891,7 +56940,7 @@ var ConfigReader = (function () {
|
|
|
56891
56940
|
* @type {number}
|
|
56892
56941
|
*/
|
|
56893
56942
|
addOption('guideSeenTimeoutLength', [PENDO_CONFIG_SRC, SNIPPET_SRC], 10000);
|
|
56894
|
-
addOption('guideTimeout', [SNIPPET_SRC]); // old, use guides.timeout instead
|
|
56943
|
+
// addOption('guideTimeout', [SNIPPET_SRC]); // old, use guides.timeout instead
|
|
56895
56944
|
/**
|
|
56896
56945
|
* If `true`, guides will be verified against their saved content hash before display to ensure validity of
|
|
56897
56946
|
* guide content.
|
|
@@ -56916,7 +56965,8 @@ var ConfigReader = (function () {
|
|
|
56916
56965
|
addOption('guides.attachPoint', [SNIPPET_SRC]);
|
|
56917
56966
|
/**
|
|
56918
56967
|
* Guides will be loaded, but not displayed. Call `pendo.startGuides()` to display guides when you choose
|
|
56919
|
-
* to do so
|
|
56968
|
+
* to do so.
|
|
56969
|
+
* Alias: `delayGuides`
|
|
56920
56970
|
*
|
|
56921
56971
|
* @access public
|
|
56922
56972
|
* @category Config/Guides
|
|
@@ -56924,9 +56974,10 @@ var ConfigReader = (function () {
|
|
|
56924
56974
|
* @default false
|
|
56925
56975
|
* @type {boolean}
|
|
56926
56976
|
*/
|
|
56927
|
-
addOption('guides.delay', [SNIPPET_SRC]);
|
|
56977
|
+
addOption('guides.delay', [SNIPPET_SRC], undefined, undefined, ['delayGuides']);
|
|
56928
56978
|
/**
|
|
56929
56979
|
* Completely disables guides (this option has been moved from `disableGuides`).
|
|
56980
|
+
* Alias: `disableGuides`
|
|
56930
56981
|
*
|
|
56931
56982
|
* @access public
|
|
56932
56983
|
* @category Config/Guides
|
|
@@ -56934,7 +56985,7 @@ var ConfigReader = (function () {
|
|
|
56934
56985
|
* @default false
|
|
56935
56986
|
* @type {boolean}
|
|
56936
56987
|
*/
|
|
56937
|
-
addOption('guides.disabled', [SNIPPET_SRC]);
|
|
56988
|
+
addOption('guides.disabled', [SNIPPET_SRC], undefined, undefined, ['disableGuides']);
|
|
56938
56989
|
/**
|
|
56939
56990
|
* If 'true', guides with slow selectors will be removed from guide display processing.
|
|
56940
56991
|
* This will improve application performance, but slow guides will not be shown to users.
|
|
@@ -56960,6 +57011,7 @@ var ConfigReader = (function () {
|
|
|
56960
57011
|
/**
|
|
56961
57012
|
* How long to wait for guides to load in milliseconds (this option has been moved from `guideTimeout`).
|
|
56962
57013
|
* By default guides will not timeout.
|
|
57014
|
+
* Alias: `guideTimeout`
|
|
56963
57015
|
*
|
|
56964
57016
|
* @access public
|
|
56965
57017
|
* @category Config/Guides
|
|
@@ -56967,7 +57019,7 @@ var ConfigReader = (function () {
|
|
|
56967
57019
|
* @default undefined
|
|
56968
57020
|
* @type {number}
|
|
56969
57021
|
*/
|
|
56970
|
-
addOption('guides.timeout', [SNIPPET_SRC]);
|
|
57022
|
+
addOption('guides.timeout', [SNIPPET_SRC], undefined, undefined, ['guideTimeout']);
|
|
56971
57023
|
/**
|
|
56972
57024
|
* The tooltip arrow size (in pixels). This only affects classic guides.
|
|
56973
57025
|
*
|
|
@@ -57058,10 +57110,10 @@ var ConfigReader = (function () {
|
|
|
57058
57110
|
// Adopt
|
|
57059
57111
|
addOption('adoptHost');
|
|
57060
57112
|
addOption('adoptAnalyticsForwarding');
|
|
57061
|
-
addOption('agentDebuggerPluginLoader');
|
|
57113
|
+
addOption('webSDKDebuggerPluginLoader', [PENDO_CONFIG_SRC], undefined, undefined, ['agentDebuggerPluginLoader']);
|
|
57062
57114
|
addOption('allowPartnerAnalyticsForwarding', [SNIPPET_SRC], false);
|
|
57063
57115
|
addOption('adoptPrioritizeAdoptGuides', [PENDO_CONFIG_SRC], false);
|
|
57064
|
-
addOption('
|
|
57116
|
+
addOption('designerWebSDKPluginsLoader', [PENDO_CONFIG_SRC, SNIPPET_SRC], undefined, undefined, ['designerAgentPluginsLoader']);
|
|
57065
57117
|
addOption('guideContentLoader', [PENDO_CONFIG_SRC]);
|
|
57066
57118
|
addOption('trainingPartner');
|
|
57067
57119
|
addOption('oemAccountId', [SNIPPET_SRC]);
|
|
@@ -57100,8 +57152,18 @@ var ConfigReader = (function () {
|
|
|
57100
57152
|
function getValueFromSourceGetter(option, sourceGetter) {
|
|
57101
57153
|
if (!sourceGetter)
|
|
57102
57154
|
return;
|
|
57103
|
-
|
|
57104
|
-
|
|
57155
|
+
const source = sourceGetter();
|
|
57156
|
+
let v = _.get(source.lookup, getConfigKey(option));
|
|
57157
|
+
// need to also check option aliases if the option.name key is not found in the source
|
|
57158
|
+
if (!doesExist(v)) {
|
|
57159
|
+
const aliasWithValue = _.find(option.aliases || [], function (alias) {
|
|
57160
|
+
const val = _.get(source.lookup, alias);
|
|
57161
|
+
if (doesExist(val))
|
|
57162
|
+
return val;
|
|
57163
|
+
});
|
|
57164
|
+
if (aliasWithValue)
|
|
57165
|
+
v = _.get(source.lookup, aliasWithValue);
|
|
57166
|
+
}
|
|
57105
57167
|
return doesExist(v) ? v : undefined;
|
|
57106
57168
|
}
|
|
57107
57169
|
function getValueFromSource(option, src) {
|
|
@@ -57118,10 +57180,6 @@ var ConfigReader = (function () {
|
|
|
57118
57180
|
var option = findOption(optionName);
|
|
57119
57181
|
defaultValue = defaultValue || _.get(option, 'defaultValue', null);
|
|
57120
57182
|
var defaultReturn = new ConfigValue(optionName, defaultValue, DEFAULT_SRC);
|
|
57121
|
-
// if (source) {
|
|
57122
|
-
// var val = getValueFromSource(option, source);
|
|
57123
|
-
// return val;
|
|
57124
|
-
// }
|
|
57125
57183
|
var validOptions = mapSourcesToValues(option, sources);
|
|
57126
57184
|
// defaultValue must exist in order to use non-ordered sources,
|
|
57127
57185
|
// otherwise you can't know what value to value over another.
|