declare global { // tslint:disable-next-line: interface-name interface Window { _fs_host: any; } } export const setupFullStory = async (fsCodeArg: string) => { // tslint:disable-next-line: no-string-literal window['_fs_debug'] = false; // tslint:disable-next-line: no-string-literal window['_fs_host'] = 'fullstory.com'; // tslint:disable-next-line: no-string-literal window['_fs_org'] = fsCodeArg; // tslint:disable-next-line: no-string-literal window['_fs_namespace'] = 'FS'; (function(m, n, e, t, l, o, g, y) { if (e in m) { if (m.console && m.console.log) { m.console.log('FullStory namespace conflict. Please set window["_fs_namespace"].'); } return; } // tslint:disable-next-line: only-arrow-functions g = m[e] = function(a, b, s) { g.q ? g.q.push([a, b, s]) : g._api(a, b, s); }; g.q = []; o = n.createElement(t); o.async = 1; o.src = 'https://' + window._fs_host + '/s/fs.js'; o.crossorigin = 'anonymous'; y = n.getElementsByTagName(t)[0]; y.parentNode.insertBefore(o, y); // tslint:disable-next-line: only-arrow-functions g.identify = function(i, v, s) { g(l, { uid: i }, s); if (v) g(l, v, s); }; g.setUserVars = function(v, s) { g(l, v, s); }; g.event = function(i, v, s) { g('event', { n: i, p: v }, s); }; // tslint:disable-next-line: only-arrow-functions g.shutdown = function() { g('rec', !1); }; g.restart = function() { g('rec', !0); }; // tslint:disable-next-line: only-arrow-functions g.consent = function(a) { g('consent', !arguments.length || a); }; // tslint:disable-next-line: only-arrow-functions g.identifyAccount = function(i, v) { o = 'account'; v = v || {}; v.acctId = i; g(o, v); }; // tslint:disable-next-line: only-arrow-functions g.clearUserCookie = function() {}; // tslint:disable-next-line: no-string-literal })(window, document, window['_fs_namespace'], 'script', 'user'); };