export class OnboardingUtils { private static readonly USER_GUIDE_TAG_ID = "userGuideSnippet"; private static instance: OnboardingUtils; private constructor(){} public static getInstance(): OnboardingUtils { if(this.instance == null){ this.instance = new OnboardingUtils(); } return this.instance; } public init(apiKey: string, ctx: EnvironmentContext): Promise { if(!apiKey){ return Promise.resolve(); } this.injectScript(apiKey); this.register(ctx); return Promise.resolve(); } private injectScript(apiKey: string){ if(window.document.head.querySelector(`script#${OnboardingUtils.USER_GUIDE_TAG_ID}`)){ return; } const scriptEl = document.createElement('script'); scriptEl.setAttribute("id", OnboardingUtils.USER_GUIDE_TAG_ID); scriptEl.innerText = `(function(g,u,i,d,e,s){g[e]=g[e]||[];var f=u.getElementsByTagName(i)[0];var k=u.createElement(i);k.async=true;k.src='https://static.userguiding.com/media/user-guiding-'+s+'-embedded.js';f.parentNode.insertBefore(k,f);if(g[d])return;var ug=g[d]={q:[]};ug.c=function(n){return function(){ug.q.push([n,arguments])};};var m=['previewGuide','finishPreview','track','identify','hideChecklist','launchChecklist'];for(var j=0;j