@pendo/agent 2.328.0 → 2.328.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dom.esm.js +4 -4
- package/dist/pendo.module.js +241 -294
- package/dist/pendo.module.min.js +8 -86
- package/dist/servers.json +7 -7
- package/package.json +1 -1
package/dist/pendo.module.js
CHANGED
|
@@ -4002,8 +4002,8 @@ let SERVER = '';
|
|
|
4002
4002
|
let ASSET_HOST = '';
|
|
4003
4003
|
let ASSET_PATH = '';
|
|
4004
4004
|
let DESIGNER_SERVER = '';
|
|
4005
|
-
let VERSION = '2.328.
|
|
4006
|
-
let PACKAGE_VERSION = '2.328.
|
|
4005
|
+
let VERSION = '2.328.1_';
|
|
4006
|
+
let PACKAGE_VERSION = '2.328.1';
|
|
4007
4007
|
let LOADER = 'xhr';
|
|
4008
4008
|
/* eslint-enable web-sdk-eslint-rules/no-gulp-env-references */
|
|
4009
4009
|
/**
|
|
@@ -4726,7 +4726,7 @@ var agentStorage = (function () {
|
|
|
4726
4726
|
function read(name, isPlain, cookieSuffix) {
|
|
4727
4727
|
isPlain = registry.getKeyConfig(name, 'isPlain', isPlain);
|
|
4728
4728
|
cookieSuffix = registry.getKeyConfig(name, 'cookieSuffix', cookieSuffix);
|
|
4729
|
-
let keyLocalStorageOnly = registry.getKeyConfig(name, 'localStorageOnly'
|
|
4729
|
+
let keyLocalStorageOnly = registry.getKeyConfig(name, 'localStorageOnly');
|
|
4730
4730
|
var key = !isPlain ? getPendoCookieKey(name, cookieSuffix) : name;
|
|
4731
4731
|
let rawValue;
|
|
4732
4732
|
const deserialize = registry.getKeyDeserializer(name);
|
|
@@ -4796,7 +4796,7 @@ var agentStorage = (function () {
|
|
|
4796
4796
|
isPlain = registry.getKeyConfig(name, 'isPlain', isPlain);
|
|
4797
4797
|
isSecure = registry.getKeyConfig(name, 'isSecure', isSecure);
|
|
4798
4798
|
cookieSuffix = registry.getKeyConfig(name, 'cookieSuffix', cookieSuffix);
|
|
4799
|
-
let keyLocalStorageOnly = registry.getKeyConfig(name, 'localStorageOnly'
|
|
4799
|
+
let keyLocalStorageOnly = registry.getKeyConfig(name, 'localStorageOnly');
|
|
4800
4800
|
val = registry.getKeySerializer(name)(val);
|
|
4801
4801
|
var key = !isPlain ? getPendoCookieKey(name, cookieSuffix) : name;
|
|
4802
4802
|
resetCache(storageAvailable);
|
|
@@ -4837,7 +4837,7 @@ var agentStorage = (function () {
|
|
|
4837
4837
|
function clear(name, isPlain, cookieSuffix) {
|
|
4838
4838
|
isPlain = registry.getKeyConfig(name, 'isPlain', isPlain);
|
|
4839
4839
|
cookieSuffix = registry.getKeyConfig(name, 'cookieSuffix', cookieSuffix);
|
|
4840
|
-
let keyLocalStorageOnly = registry.getKeyConfig(name, 'localStorageOnly'
|
|
4840
|
+
let keyLocalStorageOnly = registry.getKeyConfig(name, 'localStorageOnly');
|
|
4841
4841
|
var key = !isPlain ? getPendoCookieKey(name, cookieSuffix) : name;
|
|
4842
4842
|
if (storageIsDisabled()) {
|
|
4843
4843
|
delete inMemoryStorage[key];
|
|
@@ -12497,6 +12497,22 @@ class SendQueue {
|
|
|
12497
12497
|
|
|
12498
12498
|
const UNSENT_EVENTS_KEY = 'unsentEvents';
|
|
12499
12499
|
const UNSENT_EVENTS_MAX_AGE = 7 * 24 * 60 * 60 * 1000; // 7 days
|
|
12500
|
+
function mergeEvents(target, source) {
|
|
12501
|
+
_.each(source, (requests, key) => {
|
|
12502
|
+
target[key] = (target[key] || []).concat(requests);
|
|
12503
|
+
});
|
|
12504
|
+
return target;
|
|
12505
|
+
}
|
|
12506
|
+
function migrateLegacyCookieEvents(events) {
|
|
12507
|
+
const cookieValue = get_pendo_cookie(UNSENT_EVENTS_KEY);
|
|
12508
|
+
if (cookieValue) {
|
|
12509
|
+
try {
|
|
12510
|
+
mergeEvents(events, JSON.parse(cookieValue));
|
|
12511
|
+
}
|
|
12512
|
+
catch (e) { }
|
|
12513
|
+
clearCookie(getPendoCookieKey(UNSENT_EVENTS_KEY));
|
|
12514
|
+
}
|
|
12515
|
+
}
|
|
12500
12516
|
class LocalStorageEventBuffer {
|
|
12501
12517
|
constructor() {
|
|
12502
12518
|
this.events = {};
|
|
@@ -12527,14 +12543,18 @@ class LocalStorageEventBuffer {
|
|
|
12527
12543
|
* @access public
|
|
12528
12544
|
* @label UNSENT_EVENTS_KEY
|
|
12529
12545
|
*/
|
|
12530
|
-
storage.registry.addLocal(UNSENT_EVENTS_KEY
|
|
12546
|
+
storage.registry.addLocal(UNSENT_EVENTS_KEY, {
|
|
12547
|
+
localStorageOnly: true,
|
|
12548
|
+
duration: UNSENT_EVENTS_MAX_AGE
|
|
12549
|
+
});
|
|
12531
12550
|
try {
|
|
12532
12551
|
this.events = JSON.parse(storage.read(UNSENT_EVENTS_KEY) || '{}');
|
|
12533
|
-
storage.clear(UNSENT_EVENTS_KEY);
|
|
12534
12552
|
}
|
|
12535
12553
|
catch (e) {
|
|
12536
12554
|
this.events = {};
|
|
12537
12555
|
}
|
|
12556
|
+
migrateLegacyCookieEvents(this.events);
|
|
12557
|
+
storage.clear(UNSENT_EVENTS_KEY);
|
|
12538
12558
|
}
|
|
12539
12559
|
write(storage) {
|
|
12540
12560
|
if (_.size(this.events) > 0) {
|
|
@@ -23003,7 +23023,7 @@ function advanceGuide(eventType, step, pendo) {
|
|
|
23003
23023
|
step.attachEvent(btn, eventType, onEvent);
|
|
23004
23024
|
}
|
|
23005
23025
|
function attachBBAdvanceActions(step, pendo) {
|
|
23006
|
-
let advanceActions = pendo._.get(step, 'attributes.advanceActions', {});
|
|
23026
|
+
let advanceActions = pendo._.get(step, 'attributes.advanceActions', {}) || {};
|
|
23007
23027
|
if (advanceActions.elementHover) {
|
|
23008
23028
|
advanceGuide('mouseover', step, pendo);
|
|
23009
23029
|
}
|
|
@@ -41550,8 +41570,6 @@ function removeMarkdownSyntax(element, textToReplace, replacementText, pendo) {
|
|
|
41550
41570
|
// This prevents us from removing the message for the conditionally rendered elements
|
|
41551
41571
|
element.innerHTML = (_a = element.innerHTML) === null || _a === void 0 ? void 0 : _a.replace(textToReplace, replacementText);
|
|
41552
41572
|
}
|
|
41553
|
-
if (element.localName === 'div')
|
|
41554
|
-
return;
|
|
41555
41573
|
if (element.localName === 'button' ||
|
|
41556
41574
|
element.localName === 'label' ||
|
|
41557
41575
|
element.localName === 'a') {
|
|
@@ -41733,10 +41751,10 @@ function branchingGoToStep(event, step, guide, pendo) {
|
|
|
41733
41751
|
event.cancel = true;
|
|
41734
41752
|
}
|
|
41735
41753
|
|
|
41736
|
-
|
|
41754
|
+
var MetadataSubstitution = {
|
|
41737
41755
|
name: 'MetadataSubstitution',
|
|
41738
|
-
script(step, guide, pendo) {
|
|
41739
|
-
|
|
41756
|
+
script: function (step, guide, pendo) {
|
|
41757
|
+
var placeholderData = findSubstitutableElements(pendo);
|
|
41740
41758
|
if (step.domJson) {
|
|
41741
41759
|
findSubstitutableUrlsInJson(step.domJson, placeholderData, pendo);
|
|
41742
41760
|
}
|
|
@@ -41744,22 +41762,22 @@ const MetadataSubstitution = {
|
|
|
41744
41762
|
pendo._.each(placeholderData, function (placeholder) {
|
|
41745
41763
|
processPlaceholder(placeholder, pendo);
|
|
41746
41764
|
});
|
|
41747
|
-
|
|
41748
|
-
|
|
41749
|
-
updateGuideContainer(containerId,
|
|
41765
|
+
var containerId = "pendo-g-".concat(step.id);
|
|
41766
|
+
var context_1 = step.guideElement;
|
|
41767
|
+
updateGuideContainer(containerId, context_1, pendo);
|
|
41750
41768
|
}
|
|
41751
41769
|
},
|
|
41752
|
-
designerListener(pendo) {
|
|
41753
|
-
|
|
41770
|
+
designerListener: function (pendo) {
|
|
41771
|
+
var target = pendo.dom.getBody();
|
|
41754
41772
|
if (pendo.designerv2) {
|
|
41755
41773
|
pendo.designerv2.runMetadataSubstitutionForDesignerPreview = function runMetadataSubstitutionForDesignerPreview() {
|
|
41756
41774
|
var _a;
|
|
41757
41775
|
if (!document.querySelector(guideMarkdownUtil.containerSelector))
|
|
41758
41776
|
return;
|
|
41759
|
-
|
|
41777
|
+
var step = (_a = pendo.designerv2.currentlyPreviewedGuide) === null || _a === void 0 ? void 0 : _a.steps[0];
|
|
41760
41778
|
if (!step)
|
|
41761
41779
|
return;
|
|
41762
|
-
|
|
41780
|
+
var placeholderData = findSubstitutableElements(pendo);
|
|
41763
41781
|
if (step.buildingBlocks) {
|
|
41764
41782
|
findSubstitutableUrlsInJson(step.buildingBlocks, placeholderData, pendo);
|
|
41765
41783
|
}
|
|
@@ -41769,32 +41787,32 @@ const MetadataSubstitution = {
|
|
|
41769
41787
|
return;
|
|
41770
41788
|
processPlaceholder(placeholder, pendo);
|
|
41771
41789
|
});
|
|
41772
|
-
|
|
41773
|
-
|
|
41774
|
-
updateGuideContainer(containerId,
|
|
41790
|
+
var containerId = "pendo-g-".concat(step.id);
|
|
41791
|
+
var context_2 = step.guideElement;
|
|
41792
|
+
updateGuideContainer(containerId, context_2, pendo);
|
|
41775
41793
|
}
|
|
41776
41794
|
};
|
|
41777
41795
|
}
|
|
41778
|
-
|
|
41796
|
+
var config = {
|
|
41779
41797
|
attributeFilter: ['data-layout'],
|
|
41780
41798
|
attributes: true,
|
|
41781
41799
|
childList: true,
|
|
41782
41800
|
characterData: true,
|
|
41783
41801
|
subtree: true
|
|
41784
41802
|
};
|
|
41785
|
-
|
|
41786
|
-
|
|
41803
|
+
var MutationObserver = getZoneSafeMethod(pendo._, 'MutationObserver');
|
|
41804
|
+
var observer = new MutationObserver(applySubstitutionIndicators);
|
|
41787
41805
|
observer.observe(target, config);
|
|
41788
41806
|
function applySubstitutionIndicators(mutations) {
|
|
41789
41807
|
pendo._.each(mutations, function (mutation) {
|
|
41790
41808
|
var _a;
|
|
41791
41809
|
if (mutation.addedNodes.length) {
|
|
41792
41810
|
if (document.querySelector(guideMarkdownUtil.containerSelector)) {
|
|
41793
|
-
|
|
41794
|
-
|
|
41811
|
+
var placeholderData = findSubstitutableElements(pendo);
|
|
41812
|
+
var step = (_a = pendo.designerv2.currentlyPreviewedGuide) === null || _a === void 0 ? void 0 : _a.steps[0];
|
|
41795
41813
|
if (!step)
|
|
41796
41814
|
return;
|
|
41797
|
-
|
|
41815
|
+
var pendoBlocks = step.buildingBlocks;
|
|
41798
41816
|
if (!pendo._.isUndefined(pendoBlocks)) {
|
|
41799
41817
|
findSubstitutableUrlsInJson(pendoBlocks, placeholderData, pendo);
|
|
41800
41818
|
}
|
|
@@ -41804,9 +41822,9 @@ const MetadataSubstitution = {
|
|
|
41804
41822
|
return;
|
|
41805
41823
|
processPlaceholder(placeholder, pendo);
|
|
41806
41824
|
});
|
|
41807
|
-
|
|
41808
|
-
|
|
41809
|
-
updateGuideContainer(containerId,
|
|
41825
|
+
var containerId = "pendo-g-".concat(step.id);
|
|
41826
|
+
var context_3 = step.guideElement;
|
|
41827
|
+
updateGuideContainer(containerId, context_3, pendo);
|
|
41810
41828
|
}
|
|
41811
41829
|
}
|
|
41812
41830
|
}
|
|
@@ -41815,18 +41833,18 @@ const MetadataSubstitution = {
|
|
|
41815
41833
|
}
|
|
41816
41834
|
};
|
|
41817
41835
|
function processPlaceholder(placeholder, pendo) {
|
|
41818
|
-
|
|
41819
|
-
|
|
41820
|
-
|
|
41836
|
+
var match;
|
|
41837
|
+
var data = placeholder.data, target = placeholder.target;
|
|
41838
|
+
var subRegex = new RegExp(guideMarkdownUtil.substitutionRegex);
|
|
41821
41839
|
while ((match = matchPlaceholder(placeholder, subRegex))) {
|
|
41822
|
-
|
|
41823
|
-
|
|
41840
|
+
var usedArrayPath = Array.isArray(match) && match.length >= 2;
|
|
41841
|
+
var currentStr = target === 'textContent'
|
|
41824
41842
|
? data[target]
|
|
41825
41843
|
: decodeURI((data.getAttribute && (target === 'href' || target === 'value') ? (data.getAttribute(target) || '') : data[target]));
|
|
41826
|
-
|
|
41844
|
+
var matched = usedArrayPath ? match : subRegex.exec(currentStr);
|
|
41827
41845
|
if (!matched)
|
|
41828
41846
|
continue;
|
|
41829
|
-
|
|
41847
|
+
var mdValue = getSubstituteValue(matched, pendo);
|
|
41830
41848
|
substituteMetadataByTarget(data, target, mdValue, matched);
|
|
41831
41849
|
}
|
|
41832
41850
|
}
|
|
@@ -41835,48 +41853,48 @@ function matchPlaceholder(placeholder, regex) {
|
|
|
41835
41853
|
return placeholder.data[placeholder.target].match(regex);
|
|
41836
41854
|
}
|
|
41837
41855
|
else {
|
|
41838
|
-
|
|
41856
|
+
var raw = placeholder.data.getAttribute && (placeholder.target === 'href' || placeholder.target === 'value')
|
|
41839
41857
|
? (placeholder.data.getAttribute(placeholder.target) || '')
|
|
41840
41858
|
: placeholder.data[placeholder.target];
|
|
41841
41859
|
return decodeURI(raw).match(regex);
|
|
41842
41860
|
}
|
|
41843
41861
|
}
|
|
41844
41862
|
function getMetadataValueCaseInsensitive(metadata, type, property) {
|
|
41845
|
-
|
|
41863
|
+
var kind = metadata && metadata[type];
|
|
41846
41864
|
if (!kind || typeof kind !== 'object')
|
|
41847
41865
|
return undefined;
|
|
41848
|
-
|
|
41866
|
+
var direct = Object.prototype.hasOwnProperty.call(kind, property) ? kind[property] : undefined;
|
|
41849
41867
|
if (direct !== undefined) {
|
|
41850
41868
|
return direct;
|
|
41851
41869
|
}
|
|
41852
|
-
|
|
41853
|
-
|
|
41854
|
-
|
|
41870
|
+
var propLower = property.toLowerCase();
|
|
41871
|
+
var key = Object.keys(kind).find(function (k) { return k.toLowerCase() === propLower; });
|
|
41872
|
+
var value = key !== undefined ? kind[key] : undefined;
|
|
41855
41873
|
return value;
|
|
41856
41874
|
}
|
|
41857
41875
|
function getSubstituteValue(match, pendo) {
|
|
41858
41876
|
if (pendo._.isUndefined(match[1]) || pendo._.isUndefined(match[2])) {
|
|
41859
41877
|
return;
|
|
41860
41878
|
}
|
|
41861
|
-
|
|
41862
|
-
|
|
41863
|
-
|
|
41879
|
+
var type = match[1];
|
|
41880
|
+
var property = match[2];
|
|
41881
|
+
var defaultValue = match[3];
|
|
41864
41882
|
if (pendo._.isUndefined(type) || pendo._.isUndefined(property)) {
|
|
41865
41883
|
return;
|
|
41866
41884
|
}
|
|
41867
|
-
|
|
41868
|
-
|
|
41885
|
+
var metadata = pendo.getSerializedMetadata();
|
|
41886
|
+
var mdValue = getMetadataValueCaseInsensitive(metadata, type, property);
|
|
41869
41887
|
if (mdValue === undefined || mdValue === null)
|
|
41870
41888
|
mdValue = defaultValue || '';
|
|
41871
41889
|
return mdValue;
|
|
41872
41890
|
}
|
|
41873
41891
|
function substituteMetadataByTarget(data, target, mdValue, matched) {
|
|
41874
|
-
|
|
41875
|
-
|
|
41892
|
+
var isElement = data && typeof data.getAttribute === 'function';
|
|
41893
|
+
var current = (target === 'href' || target === 'value') && isElement
|
|
41876
41894
|
? (data.getAttribute(target) || '')
|
|
41877
41895
|
: data[target];
|
|
41878
41896
|
if (target === 'href' || target === 'value') {
|
|
41879
|
-
|
|
41897
|
+
var safeValue = window.encodeURIComponent(String(mdValue === undefined || mdValue === null ? '' : mdValue));
|
|
41880
41898
|
data[target] = decodeURI(current).replace(matched[0], safeValue);
|
|
41881
41899
|
}
|
|
41882
41900
|
else {
|
|
@@ -41890,8 +41908,9 @@ function updateGuideContainer(containerId, context, pendo) {
|
|
|
41890
41908
|
pendo.flexElement(pendo.dom(guideMarkdownUtil.containerSelector));
|
|
41891
41909
|
pendo.BuildingBlocks.BuildingBlockGuides.recalculateGuideHeight(containerId, context);
|
|
41892
41910
|
}
|
|
41893
|
-
function findSubstitutableUrlsInJson(originalData, placeholderData
|
|
41894
|
-
|
|
41911
|
+
function findSubstitutableUrlsInJson(originalData, placeholderData, pendo) {
|
|
41912
|
+
if (placeholderData === void 0) { placeholderData = []; }
|
|
41913
|
+
var subRegex = new RegExp(guideMarkdownUtil.substitutionRegex);
|
|
41895
41914
|
if ((originalData.name === 'url' || originalData.name === 'href') && originalData.value) {
|
|
41896
41915
|
if (subRegex.test(originalData.value)) {
|
|
41897
41916
|
placeholderData.push({
|
|
@@ -41901,37 +41920,37 @@ function findSubstitutableUrlsInJson(originalData, placeholderData = [], pendo)
|
|
|
41901
41920
|
}
|
|
41902
41921
|
}
|
|
41903
41922
|
if (originalData.properties && originalData.id === 'href_link_block') {
|
|
41904
|
-
pendo._.each(originalData.properties, (prop)
|
|
41923
|
+
pendo._.each(originalData.properties, function (prop) {
|
|
41905
41924
|
findSubstitutableUrlsInJson(prop, placeholderData, pendo);
|
|
41906
41925
|
});
|
|
41907
41926
|
}
|
|
41908
41927
|
if (originalData.views) {
|
|
41909
|
-
pendo._.each(originalData.views, (view)
|
|
41928
|
+
pendo._.each(originalData.views, function (view) {
|
|
41910
41929
|
findSubstitutableUrlsInJson(view, placeholderData, pendo);
|
|
41911
41930
|
});
|
|
41912
41931
|
}
|
|
41913
41932
|
if (originalData.parameters) {
|
|
41914
|
-
pendo._.each(originalData.parameters, (param)
|
|
41933
|
+
pendo._.each(originalData.parameters, function (param) {
|
|
41915
41934
|
findSubstitutableUrlsInJson(param, placeholderData, pendo);
|
|
41916
41935
|
});
|
|
41917
41936
|
}
|
|
41918
41937
|
if (originalData.actions) {
|
|
41919
|
-
pendo._.each(originalData.actions, (action)
|
|
41938
|
+
pendo._.each(originalData.actions, function (action) {
|
|
41920
41939
|
findSubstitutableUrlsInJson(action, placeholderData, pendo);
|
|
41921
41940
|
});
|
|
41922
41941
|
}
|
|
41923
41942
|
if (originalData.children) {
|
|
41924
|
-
pendo._.each(originalData.children, (child)
|
|
41943
|
+
pendo._.each(originalData.children, function (child) {
|
|
41925
41944
|
findSubstitutableUrlsInJson(child, placeholderData, pendo);
|
|
41926
41945
|
});
|
|
41927
41946
|
}
|
|
41928
41947
|
return placeholderData;
|
|
41929
41948
|
}
|
|
41930
41949
|
function findSubstitutableElements(pendo) {
|
|
41931
|
-
|
|
41950
|
+
var elements = pendo.dom("".concat(guideMarkdownUtil.containerSelector, " *:not(.pendo-inline-ui)"));
|
|
41932
41951
|
return pendo._.chain(elements)
|
|
41933
41952
|
.filter(function (placeholder) {
|
|
41934
|
-
|
|
41953
|
+
var subRegex = new RegExp(guideMarkdownUtil.substitutionRegex);
|
|
41935
41954
|
if (placeholder.localName === 'a') {
|
|
41936
41955
|
return subRegex.test(decodeURI(placeholder.href)) || subRegex.test(placeholder.textContent);
|
|
41937
41956
|
}
|
|
@@ -41987,51 +42006,25 @@ function findSubstitutableElements(pendo) {
|
|
|
41987
42006
|
.value();
|
|
41988
42007
|
}
|
|
41989
42008
|
function substitutionIcon(color, size) {
|
|
41990
|
-
return (
|
|
41991
|
-
|
|
41992
|
-
|
|
41993
|
-
|
|
41994
|
-
|
|
41995
|
-
|
|
41996
|
-
transform="matrix(1, 0, 0, 1, 0, 0)rotate(0)">
|
|
41997
|
-
<g stroke-width="0"></g>
|
|
41998
|
-
<g stroke-linecap="round" stroke-linejoin="round"
|
|
41999
|
-
stroke="${color}" stroke-width="0.528"></g>
|
|
42000
|
-
<g><path fill-rule="evenodd" clip-rule="evenodd"
|
|
42001
|
-
d="M5 5.5C4.17157 5.5 3.5 6.17157 3.5 7V10C3.5 10.8284
|
|
42002
|
-
4.17157 11.5 5 11.5H8C8.82843 11.5 9.5 10.8284 9.5
|
|
42003
|
-
10V9H17V11C17 11.2761 17.2239 11.5 17.5 11.5C17.7761
|
|
42004
|
-
11.5 18 11.2761 18 11V8.5C18 8.22386 17.7761 8 17.5
|
|
42005
|
-
8H9.5V7C9.5 6.17157 8.82843 5.5 8 5.5H5ZM8.5 7C8.5
|
|
42006
|
-
6.72386 8.27614 6.5 8 6.5H5C4.72386 6.5 4.5 6.72386
|
|
42007
|
-
4.5 7V10C4.5 10.2761 4.72386 10.5 5 10.5H8C8.27614
|
|
42008
|
-
10.5 8.5 10.2761 8.5 10V7Z" fill="${color}"></path>
|
|
42009
|
-
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
42010
|
-
d="M7 13C7 12.7239 6.77614 12.5 6.5 12.5C6.22386 12.5
|
|
42011
|
-
6 12.7239 6 13V15.5C6 15.7761 6.22386 16 6.5
|
|
42012
|
-
16H14.5V17C14.5 17.8284 15.1716 18.5 16 18.5H19C19.8284
|
|
42013
|
-
18.5 20.5 17.8284 20.5 17V14C20.5 13.1716 19.8284 12.5
|
|
42014
|
-
19 12.5H16C15.1716 12.5 14.5 13.1716 14.5
|
|
42015
|
-
14V15H7V13ZM15.5 17C15.5 17.2761 15.7239 17.5 16
|
|
42016
|
-
17.5H19C19.2761 17.5 19.5 17.2761 19.5 17V14C19.5
|
|
42017
|
-
13.7239 19.2761 13.5 19 13.5H16C15.7239 13.5 15.5
|
|
42018
|
-
13.7239 15.5 14V17Z" fill="${color}"></path> </g></svg></div>`);
|
|
42019
|
-
}
|
|
42020
|
-
|
|
42021
|
-
const requiredElement = '<span class="_pendo-required-indicator" style="color:red; font-style:italic;" title="Question is required"> *</span>';
|
|
42022
|
-
const requiredSyntax = '{required/}';
|
|
42023
|
-
const RequiredQuestions = {
|
|
42009
|
+
return ("<div title=\"Metadata Substitution added\">\n <svg id=\"pendo-ps-substitution-icon\" viewBox=\"0 0 24 24\"\n preserveAspectRatio=\"xMidYMid meet\"\n height=".concat(size, " width=").concat(size, " title=\"Metadata Substitution\"\n style=\"bottom:5px; right:10px; position: absolute;\"\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" stroke=\"").concat(color, "\"\n transform=\"matrix(1, 0, 0, 1, 0, 0)rotate(0)\">\n <g stroke-width=\"0\"></g>\n <g stroke-linecap=\"round\" stroke-linejoin=\"round\"\n stroke=\"").concat(color, "\" stroke-width=\"0.528\"></g>\n <g><path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M5 5.5C4.17157 5.5 3.5 6.17157 3.5 7V10C3.5 10.8284\n 4.17157 11.5 5 11.5H8C8.82843 11.5 9.5 10.8284 9.5\n 10V9H17V11C17 11.2761 17.2239 11.5 17.5 11.5C17.7761\n 11.5 18 11.2761 18 11V8.5C18 8.22386 17.7761 8 17.5\n 8H9.5V7C9.5 6.17157 8.82843 5.5 8 5.5H5ZM8.5 7C8.5\n 6.72386 8.27614 6.5 8 6.5H5C4.72386 6.5 4.5 6.72386\n 4.5 7V10C4.5 10.2761 4.72386 10.5 5 10.5H8C8.27614\n 10.5 8.5 10.2761 8.5 10V7Z\" fill=\"").concat(color, "\"></path>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M7 13C7 12.7239 6.77614 12.5 6.5 12.5C6.22386 12.5\n 6 12.7239 6 13V15.5C6 15.7761 6.22386 16 6.5\n 16H14.5V17C14.5 17.8284 15.1716 18.5 16 18.5H19C19.8284\n 18.5 20.5 17.8284 20.5 17V14C20.5 13.1716 19.8284 12.5\n 19 12.5H16C15.1716 12.5 14.5 13.1716 14.5\n 14V15H7V13ZM15.5 17C15.5 17.2761 15.7239 17.5 16\n 17.5H19C19.2761 17.5 19.5 17.2761 19.5 17V14C19.5\n 13.7239 19.2761 13.5 19 13.5H16C15.7239 13.5 15.5\n 13.7239 15.5 14V17Z\" fill=\"").concat(color, "\"></path> </g></svg></div>"));
|
|
42010
|
+
}
|
|
42011
|
+
|
|
42012
|
+
var requiredElement = '<span class="_pendo-required-indicator" style="color:red; font-style:italic;" title="Question is required"> *</span>';
|
|
42013
|
+
var requiredSyntax = '{required/}';
|
|
42014
|
+
var RequiredQuestions = {
|
|
42024
42015
|
name: 'RequiredQuestions',
|
|
42025
|
-
script(step, guide, pendo) {
|
|
42016
|
+
script: function (step, guide, pendo) {
|
|
42026
42017
|
var _a;
|
|
42027
|
-
|
|
42028
|
-
|
|
42029
|
-
|
|
42018
|
+
var requiredPollIds = [];
|
|
42019
|
+
var submitButtons = (_a = guideMarkdownUtil.lookupGuideButtons(step.domJson)) === null || _a === void 0 ? void 0 : _a.filter(function (button) {
|
|
42020
|
+
return button.actions.find(function (action) { return action.action === 'submitPoll' || action.action === 'submitPollAndGoToStep'; });
|
|
42021
|
+
});
|
|
42022
|
+
var requiredQuestions = processRequiredQuestions();
|
|
42030
42023
|
if (requiredQuestions) {
|
|
42031
|
-
pendo._.forEach(requiredQuestions, (question)
|
|
42024
|
+
pendo._.forEach(requiredQuestions, function (question) {
|
|
42032
42025
|
if (question.classList.contains('_pendo-open-text-poll-question')) {
|
|
42033
|
-
|
|
42034
|
-
step.attachEvent(step.guideElement.find(
|
|
42026
|
+
var pollId = question.dataset.pendoPollId;
|
|
42027
|
+
step.attachEvent(step.guideElement.find("[data-pendo-poll-id=".concat(pollId, "]._pendo-open-text-poll-input"))[0], 'input', function () {
|
|
42035
42028
|
evaluateRequiredQuestions(requiredQuestions);
|
|
42036
42029
|
});
|
|
42037
42030
|
}
|
|
@@ -42043,11 +42036,13 @@ const RequiredQuestions = {
|
|
|
42043
42036
|
});
|
|
42044
42037
|
}
|
|
42045
42038
|
function getEligibleQuestions() {
|
|
42046
|
-
|
|
42047
|
-
|
|
42048
|
-
|
|
42049
|
-
|
|
42050
|
-
|
|
42039
|
+
var pollQuestions = pendo._.toArray(step.guideElement.find("[class*=-poll-question]:contains(".concat(requiredSyntax, ")")));
|
|
42040
|
+
var surveyMatches = pendo._.toArray(step.guideElement.find("[data-pendo-poll-id]:contains(".concat(requiredSyntax, ")")));
|
|
42041
|
+
var surveyQuestions = pendo._.filter(surveyMatches, function (candidate) {
|
|
42042
|
+
return !pendo._.some(surveyMatches, function (other) { return other !== candidate && candidate.contains(other); });
|
|
42043
|
+
});
|
|
42044
|
+
var allQuestions = pendo._.uniq(pollQuestions.concat(surveyQuestions));
|
|
42045
|
+
return pendo._.reduce(allQuestions, function (eligibleQuestions, question) {
|
|
42051
42046
|
if (question.classList.contains('_pendo-yes-no-poll-question'))
|
|
42052
42047
|
return eligibleQuestions;
|
|
42053
42048
|
eligibleQuestions.push(question);
|
|
@@ -42055,22 +42050,24 @@ const RequiredQuestions = {
|
|
|
42055
42050
|
}, []);
|
|
42056
42051
|
}
|
|
42057
42052
|
function ownsRequiredText(element) {
|
|
42058
|
-
return pendo._.some(element.childNodes, (node)
|
|
42053
|
+
return pendo._.some(element.childNodes, function (node) {
|
|
42054
|
+
return node.nodeType === 3 && node.nodeValue && node.nodeValue.indexOf(requiredSyntax) !== -1;
|
|
42055
|
+
});
|
|
42059
42056
|
}
|
|
42060
42057
|
function processRequiredQuestions() {
|
|
42061
|
-
|
|
42058
|
+
var questions = getEligibleQuestions();
|
|
42062
42059
|
if (questions) {
|
|
42063
|
-
pendo._.forEach(questions, question
|
|
42064
|
-
|
|
42060
|
+
pendo._.forEach(questions, function (question) {
|
|
42061
|
+
var dataPendoPollId = question.getAttribute('data-pendo-poll-id');
|
|
42065
42062
|
requiredPollIds.push(dataPendoPollId);
|
|
42066
|
-
|
|
42067
|
-
|
|
42068
|
-
pendo._.each(candidates, (element)
|
|
42063
|
+
var candidates = step.guideElement.find("#".concat(question.id, " *, #").concat(question.id));
|
|
42064
|
+
var textHost = pendo._.find(candidates, ownsRequiredText) || question;
|
|
42065
|
+
pendo._.each(candidates, function (element) {
|
|
42069
42066
|
guideMarkdownUtil.removeMarkdownSyntax(element, requiredSyntax, '', pendo);
|
|
42070
42067
|
});
|
|
42071
|
-
|
|
42068
|
+
var textHostEl = pendo.dom(textHost);
|
|
42072
42069
|
if (textHostEl.find('._pendo-required-indicator').length === 0) {
|
|
42073
|
-
|
|
42070
|
+
var questionParagraph = textHostEl.find('p');
|
|
42074
42071
|
if (questionParagraph && questionParagraph.length) {
|
|
42075
42072
|
pendo.dom(questionParagraph[0]).append(requiredElement);
|
|
42076
42073
|
}
|
|
@@ -42081,15 +42078,7 @@ const RequiredQuestions = {
|
|
|
42081
42078
|
});
|
|
42082
42079
|
}
|
|
42083
42080
|
if (pendo._.size(requiredPollIds)) {
|
|
42084
|
-
|
|
42085
|
-
id=_pendo-guide-required-disabled>
|
|
42086
|
-
._pendo-button:disabled, ._pendo-buttons[disabled] {
|
|
42087
|
-
border: 1px solid #999999 !important;
|
|
42088
|
-
background-color: #cccccc !important;
|
|
42089
|
-
color: #666666 !important;
|
|
42090
|
-
pointer-events: none !important;
|
|
42091
|
-
}
|
|
42092
|
-
</style>`;
|
|
42081
|
+
var disabledButtonStyles = "<style type=text/css\n id=_pendo-guide-required-disabled>\n ._pendo-button:disabled, ._pendo-buttons[disabled] {\n border: 1px solid #999999 !important;\n background-color: #cccccc !important;\n color: #666666 !important;\n pointer-events: none !important;\n }\n </style>";
|
|
42093
42082
|
if (pendo.dom('#_pendo-guide-required-disabled').length === 0) {
|
|
42094
42083
|
pendo.dom('head').append(disabledButtonStyles);
|
|
42095
42084
|
}
|
|
@@ -42100,15 +42089,11 @@ const RequiredQuestions = {
|
|
|
42100
42089
|
function evaluateRequiredQuestions(questions) {
|
|
42101
42090
|
if (questions.length === 0)
|
|
42102
42091
|
return;
|
|
42103
|
-
|
|
42104
|
-
|
|
42105
|
-
responses = responses.concat(pendo._.map(questions, (question)
|
|
42106
|
-
|
|
42107
|
-
|
|
42108
|
-
[data-pendo-poll-id=${pollId}] textarea,
|
|
42109
|
-
[data-pendo-poll-id=${pollId}] input:text,
|
|
42110
|
-
[data-pendo-poll-id=${pollId}] select,
|
|
42111
|
-
[data-pendo-poll-id=${pollId}] input:radio:checked`);
|
|
42092
|
+
var allRequiredComplete = true;
|
|
42093
|
+
var responses = [];
|
|
42094
|
+
responses = responses.concat(pendo._.map(questions, function (question) {
|
|
42095
|
+
var pollId = question.getAttribute('data-pendo-poll-id');
|
|
42096
|
+
var input = step.guideElement.find("\n [data-pendo-poll-id=".concat(pollId, "] textarea,\n [data-pendo-poll-id=").concat(pollId, "] input:text,\n [data-pendo-poll-id=").concat(pollId, "] select,\n [data-pendo-poll-id=").concat(pollId, "] input:radio:checked"));
|
|
42112
42097
|
if (input && input.length && input[0].value) {
|
|
42113
42098
|
return input[0].value;
|
|
42114
42099
|
}
|
|
@@ -42125,50 +42110,50 @@ const RequiredQuestions = {
|
|
|
42125
42110
|
}
|
|
42126
42111
|
function disableEligibleButtons(buttons) {
|
|
42127
42112
|
pendo._.each(buttons, function (button) {
|
|
42128
|
-
if (step.guideElement.find(
|
|
42129
|
-
step.guideElement.find(
|
|
42130
|
-
step.guideElement.find(
|
|
42113
|
+
if (step.guideElement.find("#".concat(button.props.id))[0]) {
|
|
42114
|
+
step.guideElement.find("#".concat(button.props.id))[0].disabled = true;
|
|
42115
|
+
step.guideElement.find("#".concat(button.props.id))[0].parentElement.title = 'Please complete all required questions.';
|
|
42131
42116
|
}
|
|
42132
42117
|
});
|
|
42133
42118
|
}
|
|
42134
42119
|
function enableEligibleButtons(buttons) {
|
|
42135
42120
|
pendo._.each(buttons, function (button) {
|
|
42136
|
-
if (step.guideElement.find(
|
|
42137
|
-
step.guideElement.find(
|
|
42138
|
-
step.guideElement.find(
|
|
42121
|
+
if (step.guideElement.find("#".concat(button.props.id))[0]) {
|
|
42122
|
+
step.guideElement.find("#".concat(button.props.id))[0].disabled = false;
|
|
42123
|
+
step.guideElement.find("#".concat(button.props.id))[0].parentElement.title = '';
|
|
42139
42124
|
}
|
|
42140
42125
|
});
|
|
42141
42126
|
}
|
|
42142
42127
|
},
|
|
42143
|
-
test(step, guide, pendo) {
|
|
42128
|
+
test: function (step, guide, pendo) {
|
|
42144
42129
|
var _a, _b;
|
|
42145
|
-
|
|
42146
|
-
|
|
42130
|
+
var pollQuestions = (_a = step.guideElement) === null || _a === void 0 ? void 0 : _a.find("[class*=-poll-question]:contains(".concat(requiredSyntax, ")"));
|
|
42131
|
+
var surveyQuestions = (_b = step.guideElement) === null || _b === void 0 ? void 0 : _b.find("[data-pendo-poll-id]:contains(".concat(requiredSyntax, ")"));
|
|
42147
42132
|
return (!pendo._.isUndefined(pollQuestions) && pendo._.size(pollQuestions)) ||
|
|
42148
42133
|
(!pendo._.isUndefined(surveyQuestions) && pendo._.size(surveyQuestions));
|
|
42149
42134
|
},
|
|
42150
|
-
designerListener(pendo) {
|
|
42151
|
-
|
|
42152
|
-
|
|
42153
|
-
|
|
42135
|
+
designerListener: function (pendo) {
|
|
42136
|
+
var requiredQuestions = [];
|
|
42137
|
+
var target = pendo.dom.getBody();
|
|
42138
|
+
var config = {
|
|
42154
42139
|
attributeFilter: ['data-layout'],
|
|
42155
42140
|
attributes: true,
|
|
42156
42141
|
childList: true,
|
|
42157
42142
|
characterData: true,
|
|
42158
42143
|
subtree: true
|
|
42159
42144
|
};
|
|
42160
|
-
|
|
42161
|
-
|
|
42145
|
+
var MutationObserver = getZoneSafeMethod(pendo._, 'MutationObserver');
|
|
42146
|
+
var observer = new MutationObserver(applyRequiredIndicators);
|
|
42162
42147
|
observer.observe(target, config);
|
|
42163
42148
|
function applyRequiredIndicators(mutations) {
|
|
42164
42149
|
pendo._.each(mutations, function (mutation) {
|
|
42165
42150
|
var _a;
|
|
42166
|
-
|
|
42151
|
+
var nodeHasQuerySelector = pendo._.isFunction((_a = mutation.addedNodes[0]) === null || _a === void 0 ? void 0 : _a.querySelectorAll);
|
|
42167
42152
|
if (mutation.addedNodes.length && nodeHasQuerySelector) {
|
|
42168
|
-
|
|
42153
|
+
var eligiblePolls = mutation.addedNodes[0].querySelectorAll('[class*=-poll-wrapper], [class*=-poll-select-border], [id^=survey-item-wrapper__]');
|
|
42169
42154
|
if (eligiblePolls) {
|
|
42170
42155
|
pendo._.each(eligiblePolls, function (poll) {
|
|
42171
|
-
|
|
42156
|
+
var dataPendoPollId;
|
|
42172
42157
|
if (poll.classList.contains('_pendo-open-text-poll-wrapper') ||
|
|
42173
42158
|
poll.classList.contains('_pendo-number-scale-poll-wrapper')) {
|
|
42174
42159
|
dataPendoPollId = poll.getAttribute('name');
|
|
@@ -42176,31 +42161,31 @@ const RequiredQuestions = {
|
|
|
42176
42161
|
else {
|
|
42177
42162
|
dataPendoPollId = poll.getAttribute('data-pendo-poll-id');
|
|
42178
42163
|
}
|
|
42179
|
-
|
|
42180
|
-
|
|
42181
|
-
pendo.dom(
|
|
42164
|
+
var questionText;
|
|
42165
|
+
var questionElement = pendo.dom("[class*=\"-poll-question\"][data-pendo-poll-id=".concat(dataPendoPollId, "]"))[0] ||
|
|
42166
|
+
pendo.dom(".bb-text[data-pendo-poll-id=".concat(dataPendoPollId, "]"))[0];
|
|
42182
42167
|
if (questionElement) {
|
|
42183
42168
|
questionText = questionElement.textContent;
|
|
42184
42169
|
}
|
|
42185
|
-
|
|
42170
|
+
var requiredSyntaxIndex = questionText ? questionText.indexOf(requiredSyntax) : -1;
|
|
42186
42171
|
if (requiredSyntaxIndex > -1) {
|
|
42187
|
-
pendo._.each(pendo.dom(
|
|
42188
|
-
pendo._.each(pendo.dom(
|
|
42172
|
+
pendo._.each(pendo.dom("[data-pendo-poll-id=".concat(dataPendoPollId, "]:not(.pendo-radio)")), function (element) {
|
|
42173
|
+
pendo._.each(pendo.dom("#".concat(element.id, " *:not(\".pendo-radio\"), #").concat(element.id, ":not(\".pendo-radio\")")), function (item) {
|
|
42189
42174
|
guideMarkdownUtil.removeMarkdownSyntax(item, requiredSyntax, '', pendo);
|
|
42190
42175
|
});
|
|
42191
42176
|
});
|
|
42192
|
-
|
|
42193
|
-
|
|
42194
|
-
|
|
42195
|
-
|
|
42196
|
-
pendo._.each(pendo.dom(
|
|
42197
|
-
pendo._.each(el.childNodes, (node)
|
|
42177
|
+
var pollTextSelector = ".bb-text[data-pendo-poll-id=".concat(dataPendoPollId, "]");
|
|
42178
|
+
var pollParagraphSelector = "".concat(pollTextSelector, " p");
|
|
42179
|
+
var pollListItemSelector = "".concat(pollTextSelector, " li");
|
|
42180
|
+
var pollIndicatorSelector = "".concat(pollTextSelector, " ._pendo-required-indicator");
|
|
42181
|
+
pendo._.each(pendo.dom("".concat(pollParagraphSelector, ", ").concat(pollListItemSelector)), function (el) {
|
|
42182
|
+
pendo._.each(el.childNodes, function (node) {
|
|
42198
42183
|
if (node.nodeType === 3 && node.nodeValue.indexOf(requiredSyntax) !== -1) {
|
|
42199
42184
|
node.nodeValue = node.nodeValue.split(requiredSyntax).join('');
|
|
42200
42185
|
}
|
|
42201
42186
|
});
|
|
42202
42187
|
});
|
|
42203
|
-
|
|
42188
|
+
var hasIndicator = pendo.dom(pollIndicatorSelector).length !== 0;
|
|
42204
42189
|
if (!hasIndicator) {
|
|
42205
42190
|
if (pendo.dom(pollParagraphSelector).length !== 0 || pendo.dom(pollListItemSelector).length !== 0) {
|
|
42206
42191
|
pendo.dom(pollParagraphSelector).append(requiredElement);
|
|
@@ -42211,7 +42196,7 @@ const RequiredQuestions = {
|
|
|
42211
42196
|
}
|
|
42212
42197
|
}
|
|
42213
42198
|
if (pendo._.contains(requiredQuestions, dataPendoPollId)) {
|
|
42214
|
-
|
|
42199
|
+
var questionIndex = requiredQuestions.indexOf(dataPendoPollId);
|
|
42215
42200
|
if (questionIndex !== -1) {
|
|
42216
42201
|
requiredQuestions.splice(questionIndex, 1);
|
|
42217
42202
|
}
|
|
@@ -42222,7 +42207,7 @@ const RequiredQuestions = {
|
|
|
42222
42207
|
}
|
|
42223
42208
|
else {
|
|
42224
42209
|
if (pendo._.contains(requiredQuestions, dataPendoPollId)) {
|
|
42225
|
-
|
|
42210
|
+
var index = requiredQuestions.indexOf(dataPendoPollId);
|
|
42226
42211
|
if (index !== -1) {
|
|
42227
42212
|
requiredQuestions.splice(index, 1);
|
|
42228
42213
|
}
|
|
@@ -42236,54 +42221,54 @@ const RequiredQuestions = {
|
|
|
42236
42221
|
}
|
|
42237
42222
|
};
|
|
42238
42223
|
|
|
42239
|
-
|
|
42240
|
-
|
|
42241
|
-
script(step, guide, pendo) {
|
|
42242
|
-
|
|
42243
|
-
|
|
42244
|
-
|
|
42245
|
-
|
|
42246
|
-
|
|
42224
|
+
var skipStepRegex = new RegExp(guideMarkdownUtil.skipStepString);
|
|
42225
|
+
var SkipToEligibleStep = {
|
|
42226
|
+
script: function (step, guide, pendo) {
|
|
42227
|
+
var isAdvanceIntercepted = false;
|
|
42228
|
+
var isPreviousIntercepted = false;
|
|
42229
|
+
var guideContainer = step.guideElement.find(guideMarkdownUtil.containerSelector);
|
|
42230
|
+
var guideContainerAriaLabel = guideContainer.attr('aria-label');
|
|
42231
|
+
var stepNumberOrAuto = skipStepRegex.exec(guideContainerAriaLabel)[1];
|
|
42247
42232
|
if (guideContainer) {
|
|
42248
42233
|
guideContainer.attr({ 'aria-label': guideContainer.attr('aria-label').replace(skipStepRegex, '') });
|
|
42249
42234
|
}
|
|
42250
|
-
this.on('beforeAdvance', (evt)
|
|
42235
|
+
this.on('beforeAdvance', function (evt) {
|
|
42251
42236
|
if (guide.getPositionOfStep(step) === guide.steps.length || pendo._.isUndefined(stepNumberOrAuto))
|
|
42252
42237
|
return; // exit on the last step of a guide or when we don't have an argument
|
|
42253
|
-
|
|
42238
|
+
var eligibleStep = findEligibleSkipStep(stepNumberOrAuto, 'next');
|
|
42254
42239
|
if (!isAdvanceIntercepted && stepNumberOrAuto) {
|
|
42255
42240
|
isAdvanceIntercepted = true;
|
|
42256
|
-
pendo.goToStep({ destinationStepId: eligibleStep.id, step });
|
|
42241
|
+
pendo.goToStep({ destinationStepId: eligibleStep.id, step: step });
|
|
42257
42242
|
evt.cancel = true;
|
|
42258
42243
|
}
|
|
42259
42244
|
});
|
|
42260
|
-
this.on('beforePrevious', (evt)
|
|
42245
|
+
this.on('beforePrevious', function (evt) {
|
|
42261
42246
|
if (pendo._.isUndefined(stepNumberOrAuto))
|
|
42262
42247
|
return;
|
|
42263
|
-
|
|
42248
|
+
var eligibleStep = findEligibleSkipStep(stepNumberOrAuto, 'previous');
|
|
42264
42249
|
if (!isPreviousIntercepted && stepNumberOrAuto) {
|
|
42265
42250
|
isPreviousIntercepted = true;
|
|
42266
|
-
pendo.goToStep({ destinationStepId: eligibleStep.id, step });
|
|
42251
|
+
pendo.goToStep({ destinationStepId: eligibleStep.id, step: step });
|
|
42267
42252
|
evt.cancel = true;
|
|
42268
42253
|
}
|
|
42269
42254
|
});
|
|
42270
42255
|
function findEligibleSkipStep(stepNumber, direction) {
|
|
42271
42256
|
// Find the next eligible step by using getPosition of step (1 based)
|
|
42272
42257
|
// getPosition - 2 gives the previous step
|
|
42273
|
-
|
|
42274
|
-
|
|
42258
|
+
var skipForwardStep = findStepOnPage(guide.getPositionOfStep(step), 'next', stepNumber);
|
|
42259
|
+
var skipPreviousStep = findStepOnPage(guide.getPositionOfStep(step) - 2, 'previous', stepNumber);
|
|
42275
42260
|
if (skipForwardStep && direction == 'next') {
|
|
42276
|
-
pendo.goToStep({ destinationStepId: skipForwardStep, step });
|
|
42261
|
+
pendo.goToStep({ destinationStepId: skipForwardStep, step: step });
|
|
42277
42262
|
}
|
|
42278
42263
|
if (skipPreviousStep && direction == 'previous') {
|
|
42279
|
-
pendo.goToStep({ destinationStepId: skipPreviousStep, step });
|
|
42264
|
+
pendo.goToStep({ destinationStepId: skipPreviousStep, step: step });
|
|
42280
42265
|
}
|
|
42281
42266
|
return direction === 'next' ? skipForwardStep : skipPreviousStep;
|
|
42282
42267
|
}
|
|
42283
42268
|
function findStepOnPage(stepIndex, direction, stepNumber) {
|
|
42284
42269
|
if (pendo._.isNaN(stepIndex))
|
|
42285
42270
|
return;
|
|
42286
|
-
|
|
42271
|
+
var $step = guide.steps[stepIndex];
|
|
42287
42272
|
if ($step && !$step.canShow()) {
|
|
42288
42273
|
if (stepNumber !== 'auto') {
|
|
42289
42274
|
return guide.steps[stepNumber - 1];
|
|
@@ -42300,34 +42285,34 @@ const SkipToEligibleStep = {
|
|
|
42300
42285
|
}
|
|
42301
42286
|
}
|
|
42302
42287
|
},
|
|
42303
|
-
test(step, guide, pendo) {
|
|
42288
|
+
test: function (step, guide, pendo) {
|
|
42304
42289
|
var _a;
|
|
42305
|
-
|
|
42290
|
+
var guideContainerAriaLabel = (_a = step.guideElement) === null || _a === void 0 ? void 0 : _a.find(guideMarkdownUtil.containerSelector).attr('aria-label');
|
|
42306
42291
|
return pendo._.isString(guideContainerAriaLabel) && guideContainerAriaLabel.indexOf('{skipStep') !== -1;
|
|
42307
42292
|
},
|
|
42308
|
-
designerListener(pendo) {
|
|
42309
|
-
|
|
42310
|
-
|
|
42293
|
+
designerListener: function (pendo) {
|
|
42294
|
+
var target = pendo.dom.getBody();
|
|
42295
|
+
var config = {
|
|
42311
42296
|
attributeFilter: ['data-layout'],
|
|
42312
42297
|
attributes: true,
|
|
42313
42298
|
childList: true,
|
|
42314
42299
|
characterData: true,
|
|
42315
42300
|
subtree: true
|
|
42316
42301
|
};
|
|
42317
|
-
|
|
42318
|
-
|
|
42302
|
+
var MutationObserver = getZoneSafeMethod(pendo._, 'MutationObserver');
|
|
42303
|
+
var observer = new MutationObserver(applySkipStepIndicator);
|
|
42319
42304
|
observer.observe(target, config);
|
|
42320
42305
|
// create an observer instance
|
|
42321
42306
|
function applySkipStepIndicator(mutations) {
|
|
42322
42307
|
pendo._.each(mutations, function (mutation) {
|
|
42323
42308
|
var _a, _b;
|
|
42324
|
-
|
|
42309
|
+
var nodeHasQuerySelector = pendo._.isFunction((_a = mutation.addedNodes[0]) === null || _a === void 0 ? void 0 : _a.querySelectorAll);
|
|
42325
42310
|
if (mutation.addedNodes.length && nodeHasQuerySelector) {
|
|
42326
|
-
|
|
42327
|
-
|
|
42311
|
+
var guideContainer = mutation.addedNodes[0].querySelectorAll(guideMarkdownUtil.containerSelector);
|
|
42312
|
+
var guideContainerAriaLabel = (_b = guideContainer[0]) === null || _b === void 0 ? void 0 : _b.getAttribute('aria-label');
|
|
42328
42313
|
if (guideContainerAriaLabel) {
|
|
42329
42314
|
if (guideContainerAriaLabel.match(skipStepRegex)) {
|
|
42330
|
-
|
|
42315
|
+
var fullSkipStepString = guideContainerAriaLabel.match(skipStepRegex)[0];
|
|
42331
42316
|
guideContainerAriaLabel.replace(fullSkipStepString, '');
|
|
42332
42317
|
if (!pendo.dom('#_pendoSkipIcon').length) {
|
|
42333
42318
|
pendo.dom(guideMarkdownUtil.containerSelector).append(skipIcon('#999', '30px').trim());
|
|
@@ -42338,48 +42323,30 @@ const SkipToEligibleStep = {
|
|
|
42338
42323
|
});
|
|
42339
42324
|
}
|
|
42340
42325
|
function skipIcon(color, size) {
|
|
42341
|
-
return (
|
|
42342
|
-
width="${size}" height="${size}" viewBox="0 0 512.000000 512.000000"
|
|
42343
|
-
preserveAspectRatio="xMidYMid meet" style="bottom:5px; right:10px; position: absolute;">
|
|
42344
|
-
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
|
|
42345
|
-
fill="${color}" stroke="none">
|
|
42346
|
-
<path d="M2185 4469 c-363 -38 -739 -186 -1034 -407 -95 -71 -273 -243 -357
|
|
42347
|
-
-343 -205 -246 -364 -577 -429 -897 -25 -121 -45 -288 -45 -373 l0 -49 160 0
|
|
42348
|
-
160 0 0 48 c0 26 5 88 10 137 68 593 417 1103 940 1374 1100 570 2418 -137
|
|
42349
|
-
2560 -1374 5 -49 10 -111 10 -137 l0 -47 -155 -3 -155 -3 235 -235 235 -236
|
|
42350
|
-
235 236 235 235 -155 3 -155 3 0 48 c0 27 -5 95 -10 152 -100 989 -878 1767
|
|
42351
|
-
-1869 1868 -117 12 -298 12 -416 0z"/>
|
|
42352
|
-
<path d="M320 1440 l0 -160 160 0 160 0 0 160 0 160 -160 0 -160 0 0 -160z"/>
|
|
42353
|
-
<path d="M960 1440 l0 -160 160 0 160 0 0 160 0 160 -160 0 -160 0 0 -160z"/>
|
|
42354
|
-
<path d="M1600 1440 l0 -160 160 0 160 0 0 160 0 160 -160 0 -160 0 0 -160z"/>
|
|
42355
|
-
<path d="M2240 1440 l0 -160 160 0 160 0 0 160 0 160 -160 0 -160 0 0 -160z"/>
|
|
42356
|
-
<path d="M2880 1440 l0 -160 160 0 160 0 0 160 0 160 -160 0 -160 0 0 -160z"/>
|
|
42357
|
-
<path d="M3840 1440 l0 -160 480 0 480 0 0 160 0 160 -480 0 -480 0 0 -160z"/>
|
|
42358
|
-
</g></svg></div>
|
|
42359
|
-
`);
|
|
42326
|
+
return ("<div title=\"Skip step added\"><svg id=\"_pendoSkipIcon\" version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\"\n width=\"".concat(size, "\" height=\"").concat(size, "\" viewBox=\"0 0 512.000000 512.000000\"\n preserveAspectRatio=\"xMidYMid meet\" style=\"bottom:5px; right:10px; position: absolute;\">\n <g transform=\"translate(0.000000,512.000000) scale(0.100000,-0.100000)\"\n fill=\"").concat(color, "\" stroke=\"none\">\n <path d=\"M2185 4469 c-363 -38 -739 -186 -1034 -407 -95 -71 -273 -243 -357\n -343 -205 -246 -364 -577 -429 -897 -25 -121 -45 -288 -45 -373 l0 -49 160 0\n 160 0 0 48 c0 26 5 88 10 137 68 593 417 1103 940 1374 1100 570 2418 -137\n 2560 -1374 5 -49 10 -111 10 -137 l0 -47 -155 -3 -155 -3 235 -235 235 -236\n 235 236 235 235 -155 3 -155 3 0 48 c0 27 -5 95 -10 152 -100 989 -878 1767\n -1869 1868 -117 12 -298 12 -416 0z\"/>\n <path d=\"M320 1440 l0 -160 160 0 160 0 0 160 0 160 -160 0 -160 0 0 -160z\"/>\n <path d=\"M960 1440 l0 -160 160 0 160 0 0 160 0 160 -160 0 -160 0 0 -160z\"/>\n <path d=\"M1600 1440 l0 -160 160 0 160 0 0 160 0 160 -160 0 -160 0 0 -160z\"/>\n <path d=\"M2240 1440 l0 -160 160 0 160 0 0 160 0 160 -160 0 -160 0 0 -160z\"/>\n <path d=\"M2880 1440 l0 -160 160 0 160 0 0 160 0 160 -160 0 -160 0 0 -160z\"/>\n <path d=\"M3840 1440 l0 -160 480 0 480 0 0 160 0 160 -480 0 -480 0 0 -160z\"/>\n </g></svg></div>\n "));
|
|
42360
42327
|
}
|
|
42361
42328
|
}
|
|
42362
42329
|
};
|
|
42363
42330
|
|
|
42364
42331
|
function GuideMarkdown() {
|
|
42365
|
-
|
|
42366
|
-
|
|
42367
|
-
|
|
42332
|
+
var guideMarkdown;
|
|
42333
|
+
var pluginApi;
|
|
42334
|
+
var globalPendo;
|
|
42368
42335
|
return {
|
|
42369
42336
|
name: 'GuideMarkdown',
|
|
42370
42337
|
initialize: init,
|
|
42371
|
-
teardown
|
|
42338
|
+
teardown: teardown
|
|
42372
42339
|
};
|
|
42373
42340
|
function init(pendo, PluginAPI) {
|
|
42374
42341
|
globalPendo = pendo;
|
|
42375
42342
|
pluginApi = PluginAPI;
|
|
42376
|
-
|
|
42377
|
-
|
|
42343
|
+
var configReader = PluginAPI.ConfigReader;
|
|
42344
|
+
var GUIDEMARKDOWN_CONFIG = 'guideMarkdown';
|
|
42378
42345
|
configReader.addOption(GUIDEMARKDOWN_CONFIG, [
|
|
42379
42346
|
configReader.sources.SNIPPET_SRC,
|
|
42380
42347
|
configReader.sources.PENDO_CONFIG_SRC
|
|
42381
42348
|
], false);
|
|
42382
|
-
|
|
42349
|
+
var markdownScriptsEnabled = configReader.get(GUIDEMARKDOWN_CONFIG);
|
|
42383
42350
|
if (!markdownScriptsEnabled)
|
|
42384
42351
|
return;
|
|
42385
42352
|
guideMarkdown = [PollBranching, MetadataSubstitution, RequiredQuestions, SkipToEligibleStep];
|
|
@@ -43418,8 +43385,8 @@ function Feedback() {
|
|
|
43418
43385
|
var widgetLoaded = false;
|
|
43419
43386
|
var feedbackAllowedProductId = '';
|
|
43420
43387
|
var initialized = false;
|
|
43421
|
-
|
|
43422
|
-
|
|
43388
|
+
var PING_COOKIE = 'feedback_ping_sent';
|
|
43389
|
+
var PING_COOKIE_EXPIRATION = 1000 * 60 * 60;
|
|
43423
43390
|
var overflowMediaQuery = '@media only screen and (max-device-width:1112px){#feedback-widget{overflow-y:scroll}}';
|
|
43424
43391
|
var slideIn = '@-webkit-keyframes pendoFeedbackSlideIn{from{opacity:0;transform:translate(145px,0) rotate(270deg) translateY(-50%)}to{opacity:1;transform:translate(50%,0) rotate(270deg) translateY(-50%)}}@keyframes pendoFeedbackSlideIn{from{opacity:0;transform:translate(145px,0) rotate(270deg) translateY(-50%)}to{opacity:1;transform:translate(50%,0) rotate(270deg) translateY(-50%)}}';
|
|
43425
43392
|
var slideInLeft = '@-webkit-keyframes pendoFeedbackSlideIn-left{from{opacity:0;transform:rotate(270deg) translateX(-55%) translateY(-55%)}to{opacity:1;transform:rotate(270deg) translateX(-55%) translateY(0)}}@keyframes pendoFeedbackSlideIn-left{from{opacity:0;transform:rotate(270deg) translateX(-55%) translateY(-55%)}to{opacity:1;transform:rotate(270deg) translateX(-55%) translateY(0)}}';
|
|
@@ -43439,28 +43406,28 @@ function Feedback() {
|
|
|
43439
43406
|
feedbackStyles: 'pendo-feedback-styles',
|
|
43440
43407
|
feedbackFrameStyles: 'pendo-feedback-visible-buttons-styles'
|
|
43441
43408
|
};
|
|
43442
|
-
|
|
43443
|
-
|
|
43409
|
+
var globalPendo;
|
|
43410
|
+
var pluginApi;
|
|
43444
43411
|
return {
|
|
43445
43412
|
name: 'Feedback',
|
|
43446
|
-
initialize,
|
|
43447
|
-
teardown,
|
|
43448
|
-
validate
|
|
43413
|
+
initialize: initialize,
|
|
43414
|
+
teardown: teardown,
|
|
43415
|
+
validate: validate
|
|
43449
43416
|
};
|
|
43450
43417
|
function initialize(pendo, PluginAPI) {
|
|
43451
43418
|
globalPendo = pendo;
|
|
43452
43419
|
pluginApi = PluginAPI;
|
|
43453
43420
|
var publicFeedback = {
|
|
43454
|
-
ping,
|
|
43455
|
-
init,
|
|
43421
|
+
ping: ping,
|
|
43422
|
+
init: init,
|
|
43456
43423
|
initialized: getInitialized,
|
|
43457
|
-
loginAndRedirect,
|
|
43458
|
-
openFeedback,
|
|
43459
|
-
initializeFeedbackOnce,
|
|
43460
|
-
isFeedbackLoaded,
|
|
43461
|
-
convertPendoToFeedbackOptions,
|
|
43424
|
+
loginAndRedirect: loginAndRedirect,
|
|
43425
|
+
openFeedback: openFeedback,
|
|
43426
|
+
initializeFeedbackOnce: initializeFeedbackOnce,
|
|
43427
|
+
isFeedbackLoaded: isFeedbackLoaded,
|
|
43428
|
+
convertPendoToFeedbackOptions: convertPendoToFeedbackOptions,
|
|
43462
43429
|
isUnsupportedIE: pendo._.partial(isUnsupportedIE, PluginAPI),
|
|
43463
|
-
removeFeedbackWidget
|
|
43430
|
+
removeFeedbackWidget: removeFeedbackWidget
|
|
43464
43431
|
};
|
|
43465
43432
|
pendo.feedback = publicFeedback;
|
|
43466
43433
|
pendo.getFeedbackSettings = getFeedbackSettings;
|
|
@@ -43488,7 +43455,7 @@ function Feedback() {
|
|
|
43488
43455
|
*/
|
|
43489
43456
|
PluginAPI.agentStorage.registry.addLocal(PING_COOKIE, { duration: PING_COOKIE_EXPIRATION });
|
|
43490
43457
|
return {
|
|
43491
|
-
validate
|
|
43458
|
+
validate: validate
|
|
43492
43459
|
};
|
|
43493
43460
|
}
|
|
43494
43461
|
function teardown() {
|
|
@@ -43508,18 +43475,18 @@ function Feedback() {
|
|
|
43508
43475
|
return result;
|
|
43509
43476
|
}
|
|
43510
43477
|
function pingOrInitialize() {
|
|
43511
|
-
|
|
43478
|
+
var options = getPendoOptions();
|
|
43512
43479
|
if (initialized) {
|
|
43513
|
-
|
|
43480
|
+
var feedbackOptions = convertPendoToFeedbackOptions(options);
|
|
43514
43481
|
ping(feedbackOptions);
|
|
43515
43482
|
}
|
|
43516
43483
|
else if (shouldInitializeFeedback() && !globalPendo._.isEmpty(options)) {
|
|
43517
|
-
|
|
43518
|
-
init(options, settings)
|
|
43484
|
+
var settings = pluginApi.ConfigReader.get('feedbackSettings');
|
|
43485
|
+
init(options, settings)["catch"](globalPendo._.noop);
|
|
43519
43486
|
}
|
|
43520
43487
|
}
|
|
43521
43488
|
function handleIdentityChange(event) {
|
|
43522
|
-
|
|
43489
|
+
var visitorId = globalPendo._.get(event, 'data.0.visitor_id') || globalPendo._.get(event, 'data.0.options.visitor.id');
|
|
43523
43490
|
if (globalPendo.isAnonymousVisitor(visitorId)) {
|
|
43524
43491
|
removeFeedbackWidget();
|
|
43525
43492
|
return;
|
|
@@ -43589,9 +43556,9 @@ function Feedback() {
|
|
|
43589
43556
|
if (toSend.data && toSend.data !== '{}' && toSend.data !== 'null') {
|
|
43590
43557
|
return globalPendo.ajax
|
|
43591
43558
|
.postJSON(getFullUrl('/widget/pendo_ping'), toSend)
|
|
43592
|
-
.then((response)
|
|
43559
|
+
.then(function (response) {
|
|
43593
43560
|
onWidgetPingResponse(response);
|
|
43594
|
-
})
|
|
43561
|
+
})["catch"](function () { onPingFailure(); });
|
|
43595
43562
|
}
|
|
43596
43563
|
}
|
|
43597
43564
|
return pluginApi.q.resolve();
|
|
@@ -43725,10 +43692,10 @@ function Feedback() {
|
|
|
43725
43692
|
return globalPendo.ajax.postJSON(getFullUrl('/analytics'), toSend);
|
|
43726
43693
|
}
|
|
43727
43694
|
function addOverlay() {
|
|
43728
|
-
|
|
43695
|
+
var widget = globalPendo.dom("#".concat(elemIds.feedbackWidget));
|
|
43729
43696
|
if (!widget)
|
|
43730
43697
|
return;
|
|
43731
|
-
|
|
43698
|
+
var overlayStyles = {
|
|
43732
43699
|
'position': 'fixed',
|
|
43733
43700
|
'top': '0',
|
|
43734
43701
|
'right': '0',
|
|
@@ -43740,7 +43707,7 @@ function Feedback() {
|
|
|
43740
43707
|
'animation': 'pendoFeedbackFadeIn 0.5s 0s 1 alternate both',
|
|
43741
43708
|
'-webkit-animation': 'pendoFeedbackFadeIn 0.5s 0s 1 alternate both'
|
|
43742
43709
|
};
|
|
43743
|
-
|
|
43710
|
+
var overlayElement = globalPendo.dom(document.createElement('div'));
|
|
43744
43711
|
overlayElement.attr('id', 'feedback-overlay');
|
|
43745
43712
|
overlayElement.css(overlayStyles);
|
|
43746
43713
|
overlayElement.appendTo(widget.getParent());
|
|
@@ -43845,22 +43812,22 @@ function Feedback() {
|
|
|
43845
43812
|
}
|
|
43846
43813
|
}
|
|
43847
43814
|
function buildOuterTriggerDiv(positionInfo) {
|
|
43848
|
-
|
|
43849
|
-
|
|
43850
|
-
|
|
43815
|
+
var horizontalStyles = getHorizontalPositionStyles(positionInfo);
|
|
43816
|
+
var verticalStyles = getVerticalPositionStyles(positionInfo);
|
|
43817
|
+
var styles = globalPendo._.extend({
|
|
43851
43818
|
'position': 'fixed',
|
|
43852
43819
|
'height': '43px',
|
|
43853
43820
|
'opacity': '1 !important',
|
|
43854
43821
|
'z-index': '9001'
|
|
43855
43822
|
}, horizontalStyles, verticalStyles);
|
|
43856
|
-
|
|
43823
|
+
var outerTrigger = globalPendo.dom(document.createElement('div'));
|
|
43857
43824
|
outerTrigger.attr('id', elemIds.feedbackTrigger);
|
|
43858
43825
|
outerTrigger.css(styles);
|
|
43859
43826
|
outerTrigger.attr('data-turbolinks-permanent', '');
|
|
43860
43827
|
return outerTrigger;
|
|
43861
43828
|
}
|
|
43862
43829
|
function buildNotification() {
|
|
43863
|
-
|
|
43830
|
+
var styles = {
|
|
43864
43831
|
'background-color': '#D85039',
|
|
43865
43832
|
'color': '#fff',
|
|
43866
43833
|
'border-radius': '50%',
|
|
@@ -43877,20 +43844,20 @@ function Feedback() {
|
|
|
43877
43844
|
'animation-delay': '1s',
|
|
43878
43845
|
'animation-iteration-count': '1'
|
|
43879
43846
|
};
|
|
43880
|
-
|
|
43847
|
+
var notification = globalPendo.dom(document.createElement('span'));
|
|
43881
43848
|
notification.attr('id', 'feedback-trigger-notification');
|
|
43882
43849
|
notification.css(styles);
|
|
43883
43850
|
return notification;
|
|
43884
43851
|
}
|
|
43885
43852
|
function buildTriggerButton(settings, positionInfo) {
|
|
43886
|
-
|
|
43853
|
+
var borderRadius;
|
|
43887
43854
|
if (positionInfo.horizontalPosition === 'left') {
|
|
43888
43855
|
borderRadius = '0 0 5px 5px';
|
|
43889
43856
|
}
|
|
43890
43857
|
else {
|
|
43891
43858
|
borderRadius = '3px 3px 0 0';
|
|
43892
43859
|
}
|
|
43893
|
-
|
|
43860
|
+
var styles = {
|
|
43894
43861
|
'border': 'none',
|
|
43895
43862
|
'padding': '11px 18px 14px 18px',
|
|
43896
43863
|
'background-color': settings.triggerColor,
|
|
@@ -43901,32 +43868,21 @@ function Feedback() {
|
|
|
43901
43868
|
'cursor': 'pointer',
|
|
43902
43869
|
'text-align': 'left'
|
|
43903
43870
|
};
|
|
43904
|
-
|
|
43871
|
+
var triggerButton = globalPendo.dom(document.createElement('button'));
|
|
43905
43872
|
triggerButton.attr('id', elemIds.feedbackTriggerButton);
|
|
43906
43873
|
triggerButton.css(styles);
|
|
43907
43874
|
triggerButton.text(settings.triggerText);
|
|
43908
43875
|
return triggerButton;
|
|
43909
43876
|
}
|
|
43910
43877
|
function addTriggerPseudoStyles() {
|
|
43911
|
-
|
|
43912
|
-
#feedback-trigger button:hover {
|
|
43913
|
-
box-shadow: 0 -5px 20px rgba(0,0,0,.19) !important;
|
|
43914
|
-
outline: none !important;
|
|
43915
|
-
background: #3e566f !important;
|
|
43916
|
-
}
|
|
43917
|
-
#feedback-trigger button:focus {
|
|
43918
|
-
box-shadow: 0 -5px 20px rgba(0,0,0,.19) !important;
|
|
43919
|
-
outline: none !important;
|
|
43920
|
-
background: #3e566f !important;
|
|
43921
|
-
}
|
|
43922
|
-
`;
|
|
43878
|
+
var pseudoStyles = "\n #feedback-trigger button:hover {\n box-shadow: 0 -5px 20px rgba(0,0,0,.19) !important;\n outline: none !important;\n background: #3e566f !important;\n }\n #feedback-trigger button:focus {\n box-shadow: 0 -5px 20px rgba(0,0,0,.19) !important;\n outline: none !important;\n background: #3e566f !important;\n }\n ";
|
|
43923
43879
|
pluginApi.util.addInlineStyles('pendo-feedback-trigger-styles', pseudoStyles);
|
|
43924
43880
|
}
|
|
43925
43881
|
function createTrigger(settings, positionInfo) {
|
|
43926
43882
|
addTriggerPseudoStyles();
|
|
43927
|
-
|
|
43928
|
-
|
|
43929
|
-
|
|
43883
|
+
var triggerElement = buildOuterTriggerDiv(positionInfo);
|
|
43884
|
+
var notificationElement = buildNotification();
|
|
43885
|
+
var triggerButtonElement = buildTriggerButton(settings, positionInfo);
|
|
43930
43886
|
triggerElement.append(notificationElement);
|
|
43931
43887
|
triggerElement.append(triggerButtonElement);
|
|
43932
43888
|
triggerElement.appendTo(globalPendo.dom.getBody());
|
|
@@ -43950,7 +43906,7 @@ function Feedback() {
|
|
|
43950
43906
|
iframeWrapper.css(getWidgetOriginalStyles());
|
|
43951
43907
|
iframeWrapper.attr('id', elemIds.feedbackWidget);
|
|
43952
43908
|
iframeWrapper.attr('data-turbolinks-permanent', 'true');
|
|
43953
|
-
iframeWrapper.addClass(
|
|
43909
|
+
iframeWrapper.addClass("buttonIs-".concat(horizontalPosition));
|
|
43954
43910
|
return iframeWrapper;
|
|
43955
43911
|
}
|
|
43956
43912
|
function buildIframeContainer() {
|
|
@@ -43967,22 +43923,13 @@ function Feedback() {
|
|
|
43967
43923
|
return iframeContainer;
|
|
43968
43924
|
}
|
|
43969
43925
|
function addWidgetVisibleButtonStyles(buttonStylePosition) {
|
|
43970
|
-
|
|
43971
|
-
|
|
43972
|
-
.buttonIs-${side}.visible {
|
|
43973
|
-
${side}: 0 !important;
|
|
43974
|
-
width: 470px !important;
|
|
43975
|
-
animation-direction: alternate-reverse !important;
|
|
43976
|
-
animation: pendoFeedbackSlideFrom-${side} 0.5s 0s 1 alternate both !important;
|
|
43977
|
-
-webkit-animation: pendoFeedbackSlideFrom-${side} 0.5s 0s 1 alternate both !important;
|
|
43978
|
-
z-index: 9002 !important;
|
|
43979
|
-
}
|
|
43980
|
-
`;
|
|
43926
|
+
var side = buttonStylePosition === 'left' ? 'left' : 'right'; // just in case something was not left or right for some reason
|
|
43927
|
+
var styles = "\n .buttonIs-".concat(side, ".visible {\n ").concat(side, ": 0 !important;\n width: 470px !important;\n animation-direction: alternate-reverse !important;\n animation: pendoFeedbackSlideFrom-").concat(side, " 0.5s 0s 1 alternate both !important;\n -webkit-animation: pendoFeedbackSlideFrom-").concat(side, " 0.5s 0s 1 alternate both !important;\n z-index: 9002 !important;\n }\n ");
|
|
43981
43928
|
pluginApi.util.addInlineStyles(elemIds.feedbackFrameStyles, styles);
|
|
43982
43929
|
}
|
|
43983
43930
|
function initialiseWidgetFrame(horizontalPosition) {
|
|
43984
43931
|
addWidgetVisibleButtonStyles(horizontalPosition);
|
|
43985
|
-
|
|
43932
|
+
var iframeElement = buildIframeWrapper(horizontalPosition);
|
|
43986
43933
|
iframeElement.append(buildIframeContainer());
|
|
43987
43934
|
iframeElement.appendTo(globalPendo.dom.getBody());
|
|
43988
43935
|
subscribeToIframeMessages();
|
|
@@ -44006,7 +43953,7 @@ function Feedback() {
|
|
|
44006
43953
|
return widgetLoaded;
|
|
44007
43954
|
}
|
|
44008
43955
|
function getPendoOptions() {
|
|
44009
|
-
|
|
43956
|
+
var options = pluginApi.ConfigReader.getLocalConfig();
|
|
44010
43957
|
if (!globalPendo._.isObject(options))
|
|
44011
43958
|
options = {};
|
|
44012
43959
|
if (!globalPendo._.isObject(options.visitor))
|
|
@@ -44034,7 +43981,7 @@ function Feedback() {
|
|
|
44034
43981
|
return true;
|
|
44035
43982
|
}
|
|
44036
43983
|
function getQueryParam(url, paramName) {
|
|
44037
|
-
|
|
43984
|
+
var results = new RegExp('[?&]' + paramName + '=([^&#]*)').exec(url);
|
|
44038
43985
|
if (results == null) {
|
|
44039
43986
|
return null;
|
|
44040
43987
|
}
|
|
@@ -44051,13 +43998,13 @@ function Feedback() {
|
|
|
44051
43998
|
return pluginApi.q.reject();
|
|
44052
43999
|
if (!canInitFeedback(pendoOptions))
|
|
44053
44000
|
return pluginApi.q.reject();
|
|
44054
|
-
|
|
44001
|
+
var feedbackOptions = convertPendoToFeedbackOptions(pendoOptions);
|
|
44055
44002
|
try {
|
|
44056
|
-
|
|
44057
|
-
if (
|
|
44003
|
+
var fdbkDst_1 = getQueryParam(globalPendo.url.get(), 'fdbkDst');
|
|
44004
|
+
if (fdbkDst_1 && fdbkDst_1.startsWith('case')) {
|
|
44058
44005
|
initialized = true;
|
|
44059
44006
|
getFeedbackLoginUrl().then(function (loginUrl) {
|
|
44060
|
-
|
|
44007
|
+
var destinationUrl = loginUrl + '&fdbkDst=' + fdbkDst_1;
|
|
44061
44008
|
window.location.href = destinationUrl;
|
|
44062
44009
|
});
|
|
44063
44010
|
return;
|
|
@@ -44106,7 +44053,7 @@ function Feedback() {
|
|
|
44106
44053
|
function convertPendoToFeedbackOptions(options) {
|
|
44107
44054
|
var jwtOptions = pluginApi.agent.getJwtInfoCopy();
|
|
44108
44055
|
if (globalPendo._.isEmpty(jwtOptions)) {
|
|
44109
|
-
|
|
44056
|
+
var feedbackOptions = {};
|
|
44110
44057
|
feedbackOptions.user = globalPendo._.pick(options.visitor, 'id', 'full_name', 'firstName', 'lastName', 'email', 'tags', 'custom_allowed_products');
|
|
44111
44058
|
globalPendo._.extend(feedbackOptions.user, { allowed_products: [{ id: feedbackAllowedProductId }] });
|
|
44112
44059
|
feedbackOptions.account = globalPendo._.pick(options.account, 'id', 'name', 'monthly_value', 'is_paying', 'tags');
|