@pendo/web-sdk 2.312.0 → 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 +73 -43
- package/dist/pendo.debugger.min.js +4 -4
- package/dist/pendo.module.js +184 -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
|
/**
|
|
@@ -10157,6 +10179,14 @@ var _setClass = function (ele, cls) {
|
|
|
10157
10179
|
*/
|
|
10158
10180
|
var _getClass = function (ele) {
|
|
10159
10181
|
try {
|
|
10182
|
+
const { classList } = ele;
|
|
10183
|
+
if (classList && classList.length > 0) {
|
|
10184
|
+
var classes = [];
|
|
10185
|
+
for (var i = 0; i < classList.length; i++) {
|
|
10186
|
+
classes.push(classList[i]);
|
|
10187
|
+
}
|
|
10188
|
+
return classes.join(' ');
|
|
10189
|
+
}
|
|
10160
10190
|
var className = ele.className;
|
|
10161
10191
|
className = _.isString(className) || !doesExist(className) ? className : ele.getAttribute('class');
|
|
10162
10192
|
return className || '';
|
|
@@ -12631,7 +12661,6 @@ function eventCreate(type, props, url, name, eventProperties, context) {
|
|
|
12631
12661
|
if (type === 'track') {
|
|
12632
12662
|
eventObj.track_event_name = name || defaultTrackName;
|
|
12633
12663
|
}
|
|
12634
|
-
Events.eventCaptured.trigger(eventObj, context);
|
|
12635
12664
|
return eventObj;
|
|
12636
12665
|
}
|
|
12637
12666
|
function shouldCollectEvent() {
|
|
@@ -12651,7 +12680,11 @@ function shouldCollectEvent() {
|
|
|
12651
12680
|
function collectEvent(type, props, url, name, eventProperties, context) {
|
|
12652
12681
|
if (!shouldCollectEvent())
|
|
12653
12682
|
return;
|
|
12654
|
-
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
|
+
}
|
|
12655
12688
|
if (!isURLValid(event.url)) {
|
|
12656
12689
|
return;
|
|
12657
12690
|
}
|
|
@@ -12843,6 +12876,13 @@ function filterAnalyticsDisabled(silo, next) {
|
|
|
12843
12876
|
return;
|
|
12844
12877
|
next(silo);
|
|
12845
12878
|
}
|
|
12879
|
+
function fireEventCaptured(silo, next) {
|
|
12880
|
+
var captureEvent = Events.eventCaptured.trigger(silo);
|
|
12881
|
+
if (captureEvent.cancel) {
|
|
12882
|
+
return;
|
|
12883
|
+
}
|
|
12884
|
+
next(silo);
|
|
12885
|
+
}
|
|
12846
12886
|
function errorLogger() {
|
|
12847
12887
|
return function (silo, next) {
|
|
12848
12888
|
if (silo.length === 1 && silo.JZB.length > ENCODED_EVENT_MAX_POST_LENGTH) {
|
|
@@ -13736,7 +13776,7 @@ var wirePage = function (eventList) {
|
|
|
13736
13776
|
unwire.push(() => { handle_change_event.cancel(); });
|
|
13737
13777
|
unwire.push(attachEventInternal(document, 'change', handle_change_event, true));
|
|
13738
13778
|
}
|
|
13739
|
-
const interceptElementRemoval = ConfigReader.get('
|
|
13779
|
+
const interceptElementRemoval = ConfigReader.get('syntheticClicks.elementRemoval');
|
|
13740
13780
|
const interceptMouseUp = ConfigReader.get('syntheticClicks.targetChanged');
|
|
13741
13781
|
unwire.push(wireSyntheticClicks(dom.event.trigger, sniffer.addEventListener, interceptElementRemoval, interceptMouseUp).teardown);
|
|
13742
13782
|
unwire.push(listenForEvents(eventList));
|
|
@@ -23128,7 +23168,7 @@ const Keys = (function () {
|
|
|
23128
23168
|
_apiKey = key;
|
|
23129
23169
|
};
|
|
23130
23170
|
const discoverApiKey = (apiKey) => {
|
|
23131
|
-
apiKey = ConfigReader.get('publicAppId'
|
|
23171
|
+
apiKey = ConfigReader.get('publicAppId', apiKey);
|
|
23132
23172
|
if (apiKey) {
|
|
23133
23173
|
setApiKey(apiKey);
|
|
23134
23174
|
}
|
|
@@ -25786,7 +25826,6 @@ function createGuideEvent(name, guideId, stepId, visitorId, reason, language) {
|
|
|
25786
25826
|
url: pendoDotUrl.externalizeURL(),
|
|
25787
25827
|
props
|
|
25788
25828
|
});
|
|
25789
|
-
Events.eventCaptured.trigger(event);
|
|
25790
25829
|
return event;
|
|
25791
25830
|
}
|
|
25792
25831
|
var stagedEventsTimer = null;
|
|
@@ -26234,7 +26273,7 @@ var loadGuides = function (apiKey, visitorId, page, callback) {
|
|
|
26234
26273
|
Events.guidesFailed.trigger();
|
|
26235
26274
|
deferred.reject(err);
|
|
26236
26275
|
});
|
|
26237
|
-
var guideTimeoutDuration = ConfigReader.get('
|
|
26276
|
+
var guideTimeoutDuration = ConfigReader.get('guides.timeout');
|
|
26238
26277
|
if (_.isNumber(guideTimeoutDuration)) {
|
|
26239
26278
|
clearTimeout(loadGuidesTimeout);
|
|
26240
26279
|
loadGuidesTimeout = setTimeout$1(function () {
|
|
@@ -26368,7 +26407,7 @@ var getGuideEventCache = function () {
|
|
|
26368
26407
|
};
|
|
26369
26408
|
function createGuideEventQueue(options) {
|
|
26370
26409
|
const processSilos = pipeline(filterAnalyticsDisabled, splitSiloOnFieldChange('visitor_id'), splitSiloOnFieldChange('props.guide_id'), splitSiloOnFieldChange('props.source'), compressSilo, errorLogger(), addSiloParams(options), addAccountIdParamIfAdoptPartner, addSourceParamIfPresent, convertSiloToObject);
|
|
26371
|
-
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
|
|
26372
26411
|
);
|
|
26373
26412
|
return new EventQueue(_.extend({ processSilos, packageSilos }, options));
|
|
26374
26413
|
}
|
|
@@ -26577,7 +26616,7 @@ var initGuides = function (observer) {
|
|
|
26577
26616
|
* pendo.areGuidesDisabled() => true
|
|
26578
26617
|
*/
|
|
26579
26618
|
var areGuidesDisabled = function () {
|
|
26580
|
-
return ConfigReader.get('guides.disabled', false) ||
|
|
26619
|
+
return ConfigReader.get('guides.disabled', false) || !pendoCore;
|
|
26581
26620
|
};
|
|
26582
26621
|
/**
|
|
26583
26622
|
* Returns true or false if the client has delayed guides in the snippet or via a command
|
|
@@ -26589,7 +26628,7 @@ var areGuidesDisabled = function () {
|
|
|
26589
26628
|
* pendo.areGuidesDelayed() => true
|
|
26590
26629
|
*/
|
|
26591
26630
|
var areGuidesDelayed = function () {
|
|
26592
|
-
return ConfigReader.get('guides.delay', false)
|
|
26631
|
+
return ConfigReader.get('guides.delay', false);
|
|
26593
26632
|
};
|
|
26594
26633
|
var setGuidesDisabled = function (areDisabled) {
|
|
26595
26634
|
var originalOptions = ConfigReader.getLocalConfig();
|
|
@@ -32945,7 +32984,8 @@ var FramesModule = (function () {
|
|
|
32945
32984
|
isTop,
|
|
32946
32985
|
visibility: isTop ? 'visible' : 'unknown',
|
|
32947
32986
|
apiKey: pendo$1.apiKey,
|
|
32948
|
-
leaderKey
|
|
32987
|
+
leaderKey,
|
|
32988
|
+
forcedLeader: ConfigReader.get('forcedLeader')
|
|
32949
32989
|
}, currentFrameState)
|
|
32950
32990
|
});
|
|
32951
32991
|
},
|
|
@@ -33019,27 +33059,31 @@ var FramesModule = (function () {
|
|
|
33019
33059
|
context.dispatch('electLeader');
|
|
33020
33060
|
}, 50),
|
|
33021
33061
|
electLeader(context) {
|
|
33022
|
-
|
|
33023
|
-
|
|
33024
|
-
|
|
33062
|
+
const state = context.state;
|
|
33063
|
+
let candidateFrames = state.frames;
|
|
33064
|
+
const leaderKeyPreference = context.getters.leaderKeyPreference();
|
|
33025
33065
|
if (leaderKeyPreference.length) {
|
|
33026
33066
|
while (leaderKeyPreference.length) {
|
|
33027
|
-
|
|
33028
|
-
|
|
33067
|
+
const leaderKey = leaderKeyPreference.shift();
|
|
33068
|
+
const framesWithKey = _.filter(state.frames, (frame) => frame.apiKey === leaderKey);
|
|
33029
33069
|
if (framesWithKey.length) {
|
|
33030
33070
|
candidateFrames = framesWithKey;
|
|
33031
33071
|
break;
|
|
33032
33072
|
}
|
|
33033
33073
|
}
|
|
33034
33074
|
}
|
|
33035
|
-
|
|
33075
|
+
const forcedLeaderFrames = _.filter(candidateFrames, (frame) => frame.forcedLeader);
|
|
33076
|
+
if (forcedLeaderFrames.length) {
|
|
33077
|
+
candidateFrames = forcedLeaderFrames;
|
|
33078
|
+
}
|
|
33079
|
+
const topFrame = _.find(candidateFrames, (frame) => frame.isTop);
|
|
33036
33080
|
if (topFrame) {
|
|
33037
33081
|
context.dispatch('followLeader', {
|
|
33038
33082
|
leaderId: topFrame.id
|
|
33039
33083
|
});
|
|
33040
33084
|
}
|
|
33041
33085
|
else {
|
|
33042
|
-
|
|
33086
|
+
const oldestFrame = _.min(candidateFrames, 'joinedAt');
|
|
33043
33087
|
context.dispatch('followLeader', {
|
|
33044
33088
|
leaderId: oldestFrame.id
|
|
33045
33089
|
});
|
|
@@ -33686,9 +33730,13 @@ var FramesModule = (function () {
|
|
|
33686
33730
|
},
|
|
33687
33731
|
canShowRCBadge(state, getters) {
|
|
33688
33732
|
if (getters.leaderKey() !== pendo$1.apiKey) {
|
|
33689
|
-
|
|
33733
|
+
let sameKeyFrames = _.filter(state.frames, function (frame) {
|
|
33690
33734
|
return frame.apiKey === pendo$1.apiKey;
|
|
33691
33735
|
});
|
|
33736
|
+
const forcedLeaderFrames = _.filter(sameKeyFrames, (frame) => frame.forcedLeader);
|
|
33737
|
+
if (forcedLeaderFrames.length) {
|
|
33738
|
+
sameKeyFrames = forcedLeaderFrames;
|
|
33739
|
+
}
|
|
33692
33740
|
const topFrame = _.find(sameKeyFrames, function (frame) {
|
|
33693
33741
|
return frame.isTop;
|
|
33694
33742
|
});
|
|
@@ -33700,12 +33748,6 @@ var FramesModule = (function () {
|
|
|
33700
33748
|
});
|
|
33701
33749
|
return state.frameId === firstJoined.id;
|
|
33702
33750
|
}
|
|
33703
|
-
var hasTopFrame = _.any(state.frames, function (frame) {
|
|
33704
|
-
return frame.isTop;
|
|
33705
|
-
});
|
|
33706
|
-
if (hasTopFrame) {
|
|
33707
|
-
return getters.isTop();
|
|
33708
|
-
}
|
|
33709
33751
|
return getters.isLeader();
|
|
33710
33752
|
},
|
|
33711
33753
|
leaderKeyPreference(state) {
|
|
@@ -37911,7 +37953,7 @@ function startDebuggingModuleIfEnabled() {
|
|
|
37911
37953
|
if (dom('#pendo-client-debugger').length)
|
|
37912
37954
|
return;
|
|
37913
37955
|
// if debugger launcher function exists on config, run it
|
|
37914
|
-
const agentDebuggerPluginLoader = ConfigReader.get('
|
|
37956
|
+
const agentDebuggerPluginLoader = ConfigReader.get('webSDKDebuggerPluginLoader');
|
|
37915
37957
|
if (PluginAPI.restartDebugger) {
|
|
37916
37958
|
PluginAPI.restartDebugger();
|
|
37917
37959
|
}
|
|
@@ -38607,14 +38649,14 @@ const EmbeddedGuides = (function () {
|
|
|
38607
38649
|
// The guideLoopStopped event sometimes is sent when the guide loop is restarted, for example when a guide is advanced.
|
|
38608
38650
|
// Do not hide embedded guides in these cases.
|
|
38609
38651
|
// The delayGuides flag is set when guides are manually stopped, and unset when guides are manually started.
|
|
38610
|
-
if (pluginApi.ConfigReader.get('
|
|
38652
|
+
if (pluginApi.ConfigReader.get('guides.delay')) {
|
|
38611
38653
|
hideAllEmbeddedGuides();
|
|
38612
38654
|
}
|
|
38613
38655
|
}
|
|
38614
38656
|
function hideGuide(event) {
|
|
38615
38657
|
const guideId = _.get(event, 'data.0.props.guide_id', null);
|
|
38616
38658
|
if (guideId) {
|
|
38617
|
-
const guide =
|
|
38659
|
+
const guide = _.find(embeddedGuides, ({ id }) => id === guideId);
|
|
38618
38660
|
if (guide) {
|
|
38619
38661
|
guide.hide();
|
|
38620
38662
|
}
|
|
@@ -42239,7 +42281,9 @@ function VocPortal() {
|
|
|
42239
42281
|
visitor: metadata.visitor,
|
|
42240
42282
|
account: metadata.account,
|
|
42241
42283
|
parentAccount: metadata.parentAccount,
|
|
42242
|
-
sandboxMode: sandBoxMode
|
|
42284
|
+
sandboxMode: sandBoxMode,
|
|
42285
|
+
guideId: pendoGlobal._.get(pendoGlobal.getActiveGuide(), 'guide.id'),
|
|
42286
|
+
rcModuleId: pendoGlobal._.get(pendoGlobal.BuildingBlocks.BuildingBlockResourceCenter.getResourceCenter(), 'activeModule.id')
|
|
42243
42287
|
};
|
|
42244
42288
|
responseHandler(response);
|
|
42245
42289
|
}
|
|
@@ -56308,9 +56352,10 @@ var ConfigReader = (function () {
|
|
|
56308
56352
|
function initializeOptions() {
|
|
56309
56353
|
// Core
|
|
56310
56354
|
/**
|
|
56311
|
-
*
|
|
56355
|
+
* When included, all analytics events will be sent to each of the public app IDs in the list (guide events are
|
|
56312
56356
|
* only sent to the primary public app ID). This will only function if there are no `additionalPublicAppIds` set on
|
|
56313
56357
|
* the configuration included in the downloaded web SDK.
|
|
56358
|
+
* Alias: `additionalApiKeys`
|
|
56314
56359
|
*
|
|
56315
56360
|
* @access public
|
|
56316
56361
|
* @category Config/Core
|
|
@@ -56318,8 +56363,7 @@ var ConfigReader = (function () {
|
|
|
56318
56363
|
* @default []
|
|
56319
56364
|
* @type {string[]}
|
|
56320
56365
|
*/
|
|
56321
|
-
addOption('additionalPublicAppIds', [PENDO_CONFIG_SRC, SNIPPET_SRC]);
|
|
56322
|
-
addOption('additionalApiKeys', [PENDO_CONFIG_SRC, SNIPPET_SRC]);
|
|
56366
|
+
addOption('additionalPublicAppIds', [PENDO_CONFIG_SRC, SNIPPET_SRC], undefined, undefined, ['additionalApiKeys']);
|
|
56323
56367
|
addOption('allowedOriginServers');
|
|
56324
56368
|
addOption('allowedOriginServerHashes');
|
|
56325
56369
|
addOption('allowMixedApplicationFrames', [SNIPPET_SRC, PENDO_CONFIG_SRC], true);
|
|
@@ -56336,8 +56380,9 @@ var ConfigReader = (function () {
|
|
|
56336
56380
|
*/
|
|
56337
56381
|
addOption('annotateUrl', [SNIPPET_SRC]);
|
|
56338
56382
|
/**
|
|
56339
|
-
*
|
|
56383
|
+
* A primary public app ID to send data to from the web SDK. This will only function if there is no `publicAppId` set
|
|
56340
56384
|
* on the configuration included in the downloaded web SDK.
|
|
56385
|
+
* Alias: `apiKey`
|
|
56341
56386
|
*
|
|
56342
56387
|
* @access public
|
|
56343
56388
|
* @category Config/Core
|
|
@@ -56345,8 +56390,7 @@ var ConfigReader = (function () {
|
|
|
56345
56390
|
* @default undefined
|
|
56346
56391
|
* @type {string}
|
|
56347
56392
|
*/
|
|
56348
|
-
addOption('publicAppId', [PENDO_CONFIG_SRC, SNIPPET_SRC]);
|
|
56349
|
-
addOption('apiKey', [PENDO_CONFIG_SRC, SNIPPET_SRC]);
|
|
56393
|
+
addOption('publicAppId', [PENDO_CONFIG_SRC, SNIPPET_SRC], undefined, undefined, ['apiKey']);
|
|
56350
56394
|
addOption('assetHost', [SNIPPET_SRC, PENDO_CONFIG_SRC]);
|
|
56351
56395
|
/**
|
|
56352
56396
|
* If set to `true`, the web SDK will try to install and initialize in all same-origin frames on the page.
|
|
@@ -56359,7 +56403,7 @@ var ConfigReader = (function () {
|
|
|
56359
56403
|
* @type {boolean}
|
|
56360
56404
|
*/
|
|
56361
56405
|
addOption('autoFrameInstall', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56362
|
-
addOption('
|
|
56406
|
+
addOption('blockWebSDKMetadata', [PENDO_CONFIG_SRC], false, undefined, ['blockAgentMetadata']);
|
|
56363
56407
|
/**
|
|
56364
56408
|
* An alternate url to load guide content from. This will be used to replace the standard google storage
|
|
56365
56409
|
* url for your subscription. Usually used for
|
|
@@ -56434,6 +56478,37 @@ var ConfigReader = (function () {
|
|
|
56434
56478
|
*/
|
|
56435
56479
|
addOption('disablePersistence', [SNIPPET_SRC, PENDO_CONFIG_SRC]);
|
|
56436
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);
|
|
56437
56512
|
/**
|
|
56438
56513
|
* By default, the identity of a visitor in various iframes on a page are independent from each other.
|
|
56439
56514
|
* Setting this to `true` will instead have the web SDK make sure all frames use the exact same visitor and
|
|
@@ -56458,23 +56533,6 @@ var ConfigReader = (function () {
|
|
|
56458
56533
|
* @type {boolean}
|
|
56459
56534
|
*/
|
|
56460
56535
|
addOption('frameIdentityTopDownOnly', [SNIPPET_SRC, PENDO_CONFIG_SRC], true);
|
|
56461
|
-
/**
|
|
56462
|
-
* Having identity persisted by default makes it so that a transition from using identified visitor ids
|
|
56463
|
-
* to using anonymous visitor ids is challenging. Anyone that used your application with an identified
|
|
56464
|
-
* visitor id would have that value persisted to storage and whenever the web SDK is initialized for them,
|
|
56465
|
-
* that value would be read from storage treating them as the same identified visitor. When set `true`,
|
|
56466
|
-
* this config option will only use persisted identity values if they are an anonymous id. It is meant to
|
|
56467
|
-
* be used to smoothly make this transition to using anonymous ids while still retaining the benefit of
|
|
56468
|
-
* consistent anonymous ids for visitors. This option will be ignored if you provide an identified
|
|
56469
|
-
* visitorId to the initialize call.
|
|
56470
|
-
*
|
|
56471
|
-
* @access public
|
|
56472
|
-
* @category Config/Core
|
|
56473
|
-
* @name forceAnonymous
|
|
56474
|
-
* @default false
|
|
56475
|
-
* @type {boolean}
|
|
56476
|
-
*/
|
|
56477
|
-
addOption('forceAnonymous', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56478
56536
|
addOption('identityStorageLifetime', [SNIPPET_SRC, PENDO_CONFIG_SRC]);
|
|
56479
56537
|
addOption('identityStorageSuffix', [SNIPPET_SRC, PENDO_CONFIG_SRC]);
|
|
56480
56538
|
/**
|
|
@@ -56575,7 +56633,7 @@ var ConfigReader = (function () {
|
|
|
56575
56633
|
* @type {boolean}
|
|
56576
56634
|
*/
|
|
56577
56635
|
addOption('preventUnloadListener', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56578
|
-
addOption('
|
|
56636
|
+
addOption('promotedWebSDKMetadataConfigurations', [PENDO_CONFIG_SRC], undefined, undefined, ['promotedAgentMetadataConfigurations']);
|
|
56579
56637
|
/**
|
|
56580
56638
|
* An array of strings or a function that returns an array of strings. The web SDK will then strip any query
|
|
56581
56639
|
* string parameters from the url that are not found in the provided array. **Deprecated:** new usages to
|
|
@@ -56605,14 +56663,15 @@ var ConfigReader = (function () {
|
|
|
56605
56663
|
/**
|
|
56606
56664
|
* Meant to be used with `autoFrameInstall`. If set, the web SDK will use this as the url to download itself
|
|
56607
56665
|
* from in child frames. Read more about [frame support](/advanced/auto-frame-install).
|
|
56666
|
+
* Alias: `selfHostedAgentUrl`
|
|
56608
56667
|
*
|
|
56609
56668
|
* @access public
|
|
56610
56669
|
* @category Config/Core
|
|
56611
|
-
* @name
|
|
56670
|
+
* @name selfHostedWebSDKUrl
|
|
56612
56671
|
* @default undefined
|
|
56613
56672
|
* @type {string}
|
|
56614
56673
|
*/
|
|
56615
|
-
addOption('
|
|
56674
|
+
addOption('selfHostedWebSDKUrl', [SNIPPET_SRC, PENDO_CONFIG_SRC], undefined, undefined, ['selfHostedAgentUrl']);
|
|
56616
56675
|
/**
|
|
56617
56676
|
* If this option is set to true, event data will only be transmitted using requests of type POST instead
|
|
56618
56677
|
* of first trying to use GET requests. This can result in fewer requests being sent each time that event data
|
|
@@ -56714,7 +56773,6 @@ var ConfigReader = (function () {
|
|
|
56714
56773
|
addOption('excludeNonGuideAnalytics', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56715
56774
|
addOption('htmlAttributeBlacklist');
|
|
56716
56775
|
addOption('htmlAttributes');
|
|
56717
|
-
addOption('interceptElementRemoval', [SNIPPET_SRC, PENDO_CONFIG_SRC], false); // old, use syntheticClicks.elementRemoval instead
|
|
56718
56776
|
/**
|
|
56719
56777
|
* By default, the web SDK will attempt to intercept calls to `preventDefault` on `touchend` events in order to
|
|
56720
56778
|
* ensure that Pendo still tracks the click event. There are cases where your application might prevent these
|
|
@@ -56746,6 +56804,7 @@ var ConfigReader = (function () {
|
|
|
56746
56804
|
* events. In these cases, Pendo will not be able to capture the `click` event properly for events or guide
|
|
56747
56805
|
* behavior. Setting this to `true` will have the web SDK intercept these types of element removal to ensure
|
|
56748
56806
|
* more consistent Pendo behavior (this option has been moved from `interceptElementRemoval`).
|
|
56807
|
+
* Alias: `interceptElementRemoval`
|
|
56749
56808
|
*
|
|
56750
56809
|
* @access public
|
|
56751
56810
|
* @category Config/Analytics
|
|
@@ -56753,7 +56812,7 @@ var ConfigReader = (function () {
|
|
|
56753
56812
|
* @default false
|
|
56754
56813
|
* @type {boolean}
|
|
56755
56814
|
*/
|
|
56756
|
-
addOption('syntheticClicks.elementRemoval', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56815
|
+
addOption('syntheticClicks.elementRemoval', [SNIPPET_SRC, PENDO_CONFIG_SRC], false, undefined, ['interceptElementRemoval']);
|
|
56757
56816
|
/**
|
|
56758
56817
|
* A `click` is classified by the browser as the same element receiving the `mousedown` and `mouseup` events.
|
|
56759
56818
|
* When `true` this option will allow Pendo to treat cases where a visitor clicks down the mouse, moves the
|
|
@@ -56802,7 +56861,6 @@ var ConfigReader = (function () {
|
|
|
56802
56861
|
* @type {Number}
|
|
56803
56862
|
*/
|
|
56804
56863
|
addOption('cacheGuidesTimeout', [PENDO_CONFIG_SRC], 600000);
|
|
56805
|
-
addOption('delayGuides', [SNIPPET_SRC]); // old, use guides.delay instead
|
|
56806
56864
|
/**
|
|
56807
56865
|
* If `true`, this will prevent the web SDK from attempting to launch the Visual Design Studio.
|
|
56808
56866
|
*
|
|
@@ -56838,7 +56896,6 @@ var ConfigReader = (function () {
|
|
|
56838
56896
|
* @type {boolean}
|
|
56839
56897
|
*/
|
|
56840
56898
|
addOption('disableGuidePseudoStyles', [SNIPPET_SRC, PENDO_CONFIG_SRC], false);
|
|
56841
|
-
addOption('disableGuides', [SNIPPET_SRC]); // old, use guides.disabled instead
|
|
56842
56899
|
/**
|
|
56843
56900
|
* Content of badge and target element activated guides will be prefetched on load to improve guide display
|
|
56844
56901
|
* time unless set to `true`.
|
|
@@ -56883,7 +56940,7 @@ var ConfigReader = (function () {
|
|
|
56883
56940
|
* @type {number}
|
|
56884
56941
|
*/
|
|
56885
56942
|
addOption('guideSeenTimeoutLength', [PENDO_CONFIG_SRC, SNIPPET_SRC], 10000);
|
|
56886
|
-
addOption('guideTimeout', [SNIPPET_SRC]); // old, use guides.timeout instead
|
|
56943
|
+
// addOption('guideTimeout', [SNIPPET_SRC]); // old, use guides.timeout instead
|
|
56887
56944
|
/**
|
|
56888
56945
|
* If `true`, guides will be verified against their saved content hash before display to ensure validity of
|
|
56889
56946
|
* guide content.
|
|
@@ -56908,7 +56965,8 @@ var ConfigReader = (function () {
|
|
|
56908
56965
|
addOption('guides.attachPoint', [SNIPPET_SRC]);
|
|
56909
56966
|
/**
|
|
56910
56967
|
* Guides will be loaded, but not displayed. Call `pendo.startGuides()` to display guides when you choose
|
|
56911
|
-
* to do so
|
|
56968
|
+
* to do so.
|
|
56969
|
+
* Alias: `delayGuides`
|
|
56912
56970
|
*
|
|
56913
56971
|
* @access public
|
|
56914
56972
|
* @category Config/Guides
|
|
@@ -56916,9 +56974,10 @@ var ConfigReader = (function () {
|
|
|
56916
56974
|
* @default false
|
|
56917
56975
|
* @type {boolean}
|
|
56918
56976
|
*/
|
|
56919
|
-
addOption('guides.delay', [SNIPPET_SRC]);
|
|
56977
|
+
addOption('guides.delay', [SNIPPET_SRC], undefined, undefined, ['delayGuides']);
|
|
56920
56978
|
/**
|
|
56921
56979
|
* Completely disables guides (this option has been moved from `disableGuides`).
|
|
56980
|
+
* Alias: `disableGuides`
|
|
56922
56981
|
*
|
|
56923
56982
|
* @access public
|
|
56924
56983
|
* @category Config/Guides
|
|
@@ -56926,7 +56985,7 @@ var ConfigReader = (function () {
|
|
|
56926
56985
|
* @default false
|
|
56927
56986
|
* @type {boolean}
|
|
56928
56987
|
*/
|
|
56929
|
-
addOption('guides.disabled', [SNIPPET_SRC]);
|
|
56988
|
+
addOption('guides.disabled', [SNIPPET_SRC], undefined, undefined, ['disableGuides']);
|
|
56930
56989
|
/**
|
|
56931
56990
|
* If 'true', guides with slow selectors will be removed from guide display processing.
|
|
56932
56991
|
* This will improve application performance, but slow guides will not be shown to users.
|
|
@@ -56952,6 +57011,7 @@ var ConfigReader = (function () {
|
|
|
56952
57011
|
/**
|
|
56953
57012
|
* How long to wait for guides to load in milliseconds (this option has been moved from `guideTimeout`).
|
|
56954
57013
|
* By default guides will not timeout.
|
|
57014
|
+
* Alias: `guideTimeout`
|
|
56955
57015
|
*
|
|
56956
57016
|
* @access public
|
|
56957
57017
|
* @category Config/Guides
|
|
@@ -56959,7 +57019,7 @@ var ConfigReader = (function () {
|
|
|
56959
57019
|
* @default undefined
|
|
56960
57020
|
* @type {number}
|
|
56961
57021
|
*/
|
|
56962
|
-
addOption('guides.timeout', [SNIPPET_SRC]);
|
|
57022
|
+
addOption('guides.timeout', [SNIPPET_SRC], undefined, undefined, ['guideTimeout']);
|
|
56963
57023
|
/**
|
|
56964
57024
|
* The tooltip arrow size (in pixels). This only affects classic guides.
|
|
56965
57025
|
*
|
|
@@ -57050,10 +57110,10 @@ var ConfigReader = (function () {
|
|
|
57050
57110
|
// Adopt
|
|
57051
57111
|
addOption('adoptHost');
|
|
57052
57112
|
addOption('adoptAnalyticsForwarding');
|
|
57053
|
-
addOption('agentDebuggerPluginLoader');
|
|
57113
|
+
addOption('webSDKDebuggerPluginLoader', [PENDO_CONFIG_SRC], undefined, undefined, ['agentDebuggerPluginLoader']);
|
|
57054
57114
|
addOption('allowPartnerAnalyticsForwarding', [SNIPPET_SRC], false);
|
|
57055
57115
|
addOption('adoptPrioritizeAdoptGuides', [PENDO_CONFIG_SRC], false);
|
|
57056
|
-
addOption('
|
|
57116
|
+
addOption('designerWebSDKPluginsLoader', [PENDO_CONFIG_SRC, SNIPPET_SRC], undefined, undefined, ['designerAgentPluginsLoader']);
|
|
57057
57117
|
addOption('guideContentLoader', [PENDO_CONFIG_SRC]);
|
|
57058
57118
|
addOption('trainingPartner');
|
|
57059
57119
|
addOption('oemAccountId', [SNIPPET_SRC]);
|
|
@@ -57092,8 +57152,18 @@ var ConfigReader = (function () {
|
|
|
57092
57152
|
function getValueFromSourceGetter(option, sourceGetter) {
|
|
57093
57153
|
if (!sourceGetter)
|
|
57094
57154
|
return;
|
|
57095
|
-
|
|
57096
|
-
|
|
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
|
+
}
|
|
57097
57167
|
return doesExist(v) ? v : undefined;
|
|
57098
57168
|
}
|
|
57099
57169
|
function getValueFromSource(option, src) {
|
|
@@ -57110,10 +57180,6 @@ var ConfigReader = (function () {
|
|
|
57110
57180
|
var option = findOption(optionName);
|
|
57111
57181
|
defaultValue = defaultValue || _.get(option, 'defaultValue', null);
|
|
57112
57182
|
var defaultReturn = new ConfigValue(optionName, defaultValue, DEFAULT_SRC);
|
|
57113
|
-
// if (source) {
|
|
57114
|
-
// var val = getValueFromSource(option, source);
|
|
57115
|
-
// return val;
|
|
57116
|
-
// }
|
|
57117
57183
|
var validOptions = mapSourcesToValues(option, sources);
|
|
57118
57184
|
// defaultValue must exist in order to use non-ordered sources,
|
|
57119
57185
|
// otherwise you can't know what value to value over another.
|