Repository URL to install this package:
|
Version:
3.0.0-rc.0 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isSSR = isSSR;
exports.getScriptContents = getScriptContents;
exports.installScript = installScript;
exports.uninstallScript = uninstallScript;
exports.getScriptId = void 0;
function isSSR() {
return typeof window === 'undefined';
}
function isLoaded() {
return typeof window.Intercom !== 'undefined';
}
function getScriptContents(intercomAppId) {
return "\nwindow.intercomSettings = {app_id: \"".concat(intercomAppId, "\"};\n(function(){var w=window;var ic=w.Intercom;if(typeof ic===\"function\"){ic('reattach_activator');ic('update',w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/' + w.intercomSettings.app_id;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);};if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();\n");
}
var getScriptId = function getScriptId(intercomAppId) {
return "doodle-intercom-".concat(intercomAppId);
};
exports.getScriptId = getScriptId;
function installScript(intercomAppId) {
if (isSSR()) {
return;
}
if (!intercomAppId) {
console.warn('Cannot install Intercom script, app ID is missing.');
return;
} // Check if Intercom is already loaded/present (via GTM for example)
if (!isLoaded()) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.innerHTML = getScriptContents(intercomAppId);
script.id = getScriptId(intercomAppId);
document.body.appendChild(script);
}
}
function uninstallScript(intercomAppId) {
if (isSSR()) {
return;
}
if (!intercomAppId) {
console.warn('Cannot uninstall Intercom script, app ID is missing.');
return;
} // Don't need to do anything if intercom is not loaded/present
if (!isLoaded()) {
return;
} // Find the Intercom script and remove it from DOM if present
var script = document.getElementById(getScriptId(intercomAppId));
if (script) {
script.parentNode.removeChild(script);
} // Also clean up the Intercom API
window.Intercom = undefined;
}