@snippyly/plugin-staging 1.0.128 → 1.0.130

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snippyly/plugin-staging",
3
- "version": "1.0.128",
3
+ "version": "1.0.130",
4
4
  "description": "",
5
5
  "main": "snippyly.js",
6
6
  "scripts": {
package/snippyly.js CHANGED
@@ -1260,7 +1260,7 @@ class vs extends ae{}vs.Encryptor=class extends vs{processBlock(t,i){const e=t,n
1260
1260
  line-height: 1;
1261
1261
  cursor: pointer;
1262
1262
  }
1263
- `;(()=>{try{const t=window.SUPERFLOW_TOOLBAR_API_KEY,i=!!window.SUPERFLOW_TOOLBAR_STAGING,e=window.SUPERFLOW_TOOLBAR_PROJECT_VERSION_KEY,n=window.SUPERFLOW_TOOLBAR_PROJECT_ID;if(t){(()=>{try{document.querySelectorAll("snippyly-plugin").forEach((t=>{t.remove()}))}catch(t){console.warn("Error in removeSuperflowToolbarTag: ",t)}})();const s={};s.apiKey=t,i&&(s.staging="true"),e&&(s.projectVersionKey=e),n&&(s.projectId=n),((t={})=>{try{const i=document.createElement("snippyly-plugin");Object.keys(t||{}).forEach((e=>{i.setAttribute(e,t[e])})),document.body.appendChild(i)}catch(t){console.warn("Error in loadSuperflowToolbarTag: ",t)}})(s)}}catch(t){console.warn("Error in initSuperflow: ",t)}})();var Bs=function(t,i,e,n){for(var s,o=arguments.length,r=o<3?i:null===n?n=Object.getOwnPropertyDescriptor(i,e):n,l=t.length-1;l>=0;l--)(s=t[l])&&(r=(o<3?s(r):o>3?s(i,e,r):s(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r};let _s=class extends Y{constructor(){super(),this._loadPlugin=!1,this.comments=[],this.addCommentMode=!1,this._expanded=!0,this.loading=!1,this.isPlanExpired=null,this.showOnboardingModal=!0,this.showLiveDemoModal=!1,this.staging=true,this.copyLinkTooltip="Copy Link",this.invalidApiKey=!1,this.isUserGlobalContact=!1,this.showQrCode=!1,this.customLoginEnabledLocally=null,this.customLoginEnabled=null,this.exitReviewModeCalled=!1,this.onApiKeyChange=()=>{try{this.apiKey&&(null===window||void 0===window?void 0:window.onSuperflowLoad)&&"function"==typeof window.onSuperflowLoad&&window.onSuperflowLoad()}catch(t){console.warn("Error in onApiKeyChange: ",t),Vi("Error in onApiKeyChange: ",t)}},this.checkCustomLoginEnabled=async()=>{var t;try{const i=await(t=>{const i={apiKey:t};return Bi(_i,"customLoginEnabled")(i)})(this.apiKey);this.customLoginEnabled=!!(null===(t=null==i?void 0:i.data)||void 0===t?void 0:t.customLoginEnabled),this.customLoginEnabled&&this.loginWithCustomUser()}catch(t){this.customLoginEnabled=!1,console.warn("Error in checkCustomLoginEnabled: ",t),Vi("Error in checkCustomLoginEnabled: ",t)}},this.loginWithCustomUser=()=>{try{this.customLoginEnabled?(Ss("_sfut"),this.loadPlugin&&this.documentId&&this.identifySnippyly()):console.warn("Identify call not allowed.")}catch(t){console.warn("Error in loginWithCustomUser: ",t),Vi("Error in loginWithCustomUser: ",t)}},this.addWindowClickEventListener=()=>{try{this.windowClickEventListener||(this.windowClickEventListener=()=>{this.menuOpenedId&&(this.menuOpenedId=void 0)},window.addEventListener("click",this.windowClickEventListener))}catch(t){console.warn("Error in addWindowClickEventListener: ",t),Vi("Error in addWindowClickEventListener: ",t)}},this.removeWindowClickEventListener=()=>{try{window.removeEventListener("click",this.windowClickEventListener),this.windowClickEventListener=void 0}catch(t){console.warn("Error in removeWindowClickEventListener: ",t),Vi("Error in removeWindowClickEventListener: ",t)}},this.setWindowEventListner=()=>{try{window.addEventListener("locationchange",(()=>{this.checkUrl()}))}catch(t){console.warn("Error in setWindowEventListner: ",t),Vi("Error in setWindowEventListner: ",t)}},this.urlChangeListener=()=>{try{const t=history.pushState;history.pushState=function(){const i=t.apply(this,arguments);return window.dispatchEvent(new Event("pushstate")),window.dispatchEvent(new Event("locationchange")),i};const i=history.replaceState;history.replaceState=function(){const t=i.apply(this,arguments);return window.dispatchEvent(new Event("replacestate")),window.dispatchEvent(new Event("locationchange")),t},window.addEventListener("popstate",(()=>{window.dispatchEvent(new Event("locationchange"))}))}catch(t){console.warn("Error in urlChangeListener: ",t),Vi("Error in urlChangeListener: ",t)}},this.checkUrl=()=>{try{const t=new URL(document.location),i=t.searchParams;if((null==i?void 0:i.has("sprojectInstall"))&&!Es("sprojectInstall")?this.showOnboardingModal=!0:this.showOnboardingModal=!1,null==i?void 0:i.has("sflivedemo"))if(Es("sflivedemo",!1,"sessionStorage")){this.showLiveDemoModal=!1;const t=new URL(document.location);t.searchParams.delete("sflivedemo"),window.history.replaceState({},null===document||void 0===document?void 0:document.title,t.toString())}else this.showLiveDemoModal=!0;else this.showLiveDemoModal=!1;if(i.has("st")||i.has("snippyly_google_token")){if(i.has("st")){const t=decodeURIComponent(i.get("st")),e=Ms(t,vt,ft),n=e&&JSON.parse(e);if(n){const t={};t.userId=n.uid,t.name=n.displayName,t.email=n.email,t.photoUrl=null==n?void 0:n.photoURL;const i=JSON.stringify(t),e=$s(i,vt,ft);xs("_sfut",e,!0)}}else if(i.has("snippyly_google_token")){const t=JSON.parse(atob(i.get("snippyly_google_token"))),e={};e.userId=t.uid,e.name=t.displayName,e.email=t.email,e.photoUrl=null==t?void 0:t.photoURL,xs("snippyly-user",JSON.stringify(e),!0)}i.delete("st"),i.delete("snippyly_google_token"),window.history.replaceState({},document.title,t.href)}i.has("review")?(xs("review","true",!1),Ss("feedback"),"true"!==i.get("review")&&(i.delete("review"),i.append("review","true"),window.history.replaceState({},document.title,t.href)),this.loadPluginUI()):i.has("feedback")||Es("review",!1)&&(i.append("review","true"),window.history.replaceState({},document.title,t.href),this.loadPluginUI()),i.has("feedback")?(xs("feedback","true",!1),Ss("review"),"true"!==i.get("feedback")&&(i.delete("feedback"),i.append("feedback","true"),window.history.replaceState({},document.title,t.href)),this.loadPluginUI()):i.has("review")||Es("feedback",!1)&&(i.append("feedback","true"),window.history.replaceState({},document.title,t.href),this.loadPluginUI()),this.setVersionInUrl()}catch(t){console.warn("Error in checkUrl: ",t),Vi("Error in checkUrl: ",t)}},this.detectVersion=()=>{try{if(this.projectVersionKey){const t=new URL(document.location).searchParams;if(t.get(this.projectVersionKey))this.projectVersion=t.get(this.projectVersionKey);else if(window.snippylyInitialLoadUrl){const t=new URL(window.snippylyInitialLoadUrl).searchParams;t.get(this.projectVersionKey)&&(this.projectVersion=t.get(this.projectVersionKey))}this.projectVersion&&xs("projectVersion",this.projectVersion,!1,"sessionStorage")}else{const t=new URL(document.location).searchParams;(t.has("review")||t.has("feedback"))&&t.has("sversion")&&(xs("projectVersionKey","sversion",!1,"sessionStorage"),this.projectVersion=t.get("sversion"),this.projectVersion&&xs("projectVersion",this.projectVersion,!1,"sessionStorage"))}}catch(t){console.warn("Error in detectVersion: ",t),Vi("Error in detectVersion: ",t)}},this.setVersionInUrl=()=>{try{const t=this.projectVersionKey||Es("projectVersionKey",!1,"sessionStorage"),i=this.projectVersion||Es("projectVersion",!1,"sessionStorage");if(t&&i){const e=new URL(document.location),n=e.searchParams;n.get(t)||(n.set(t,i),window.history.replaceState({},document.title,e.href))}}catch(t){console.warn("Error in setVersionInUrl: ",t),Vi("Error in setVersionInUrl: ",t)}},this.loadPluginUI=()=>{try{if(!this.apiKey)return;if(this.loadPlugin)return this.generateLocation(),void this.setViewMode(this.viewMode);const t=Ls();if(t&&!(null==t?void 0:t.isAnonymous)&&(this.loading=!0),this.loadPlugin=!0,!document.querySelector(lt)){const t=document.createElement(lt);null==t||t.addEventListener("signIn",(()=>{this.loginWithGoogle()})),window.document.body.appendChild(t)}if(!document.querySelector(at)){const t=document.createElement(at);t.setAttribute(ut,"true"),window.document.body.appendChild(t)}if(!document.querySelector(rt)){const t=document.createElement(rt);window.document.body.appendChild(t)}if(!document.querySelector(ct)){const t=document.createElement(ct);window.document.body.appendChild(t)}if(!document.querySelector(ht)){const t=document.createElement(ht);window.document.body.appendChild(t)}if(!document.querySelector(dt)){const t=document.createElement(dt);window.document.body.appendChild(t)}if(!document.querySelector(pt)){const t=document.createElement(pt);window.document.body.appendChild(t)}this.initializeSnippyly()}catch(t){this.loading=!1,console.warn("Error in loadPluginUI: ",t),Vi("Error in loadPluginUI: ",t)}},this.initializeSnippyly=async()=>{var e,n,s,o,r,l,a;try{await(l=this.apiKey,a={options:{staging:this.staging,version:"latest"}},t(void 0,void 0,void 0,(function(){var t,e;return i(this,(function(i){switch(i.label){case 0:return i.trys.push([0,6,,7]),[4,(n=null==a?void 0:a.options,new Promise((function(t,i){var e=document.getElementById("snippylyScript"),s=!1,o="latest";if(n&&(n.staging&&(s=n.staging),n.version&&(o=n.version)),(null==n?void 0:n.version)||(o="1.0.78"),e)t();else{var r=document.createElement("script");r.src="https://cdn.jsdelivr.net/npm/@snippyly/sdk".concat(s?"-staging":"","@").concat(o,"/snippyly.js"),r.id="snippylyScript",r.type="module",document.body.appendChild(r),r.onload=function(){t()},r.onerror=function(){i(new Error("Failed to load Snippyly script"))}}})))];case 1:return i.sent(),t=window.Snippyly,a?[4,t.init(l,a)]:[3,3];case 2:return i.sent(),[3,5];case 3:return[4,t.init(l)];case 4:i.sent(),i.label=5;case 5:return(null==t?void 0:t.st)&&(null==t||t.st("client")),[2,t];case 6:return e=i.sent(),console.error(e),[2,null];case 7:return[2]}var n}))}))),Snippyly&&(null===Snippyly||void 0===Snippyly||Snippyly.sf(!0)),Snippyly&&Di({sdkVersion:null===Snippyly||void 0===Snippyly?void 0:Snippyly.version,sdkType:"client"}),this.documentId=((t,i=0)=>{try{let e=3735928559^i,n=1103547991^i;for(let i,s=0;s<t.length;s++)i=t.charCodeAt(s),e=Math.imul(e^i,2654435761),n=Math.imul(n^i,1597334677);return e=Math.imul(e^e>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(e^e>>>13,3266489909),4294967296*(2097151&n)+(e>>>0)}catch(t){return console.warn("Error in cyrb53: ",t),Vi("Error in cyrb53: ",t),0}})((t=>{let i;return i=t.includes("http")?new URL(t):new URL("http://"+t),i.hostname.replace("www.","")})(window.location.origin))+"",this.projectId&&(this.documentId=this.projectId+""),await(null===Snippyly||void 0===Snippyly?void 0:Snippyly.setDocumentId(this.documentId+"")),this.generateLocation(),this.setLocation(),this.commentElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getCommentElement(),this.contactElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getContactElement(),this.rewriterElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getRewriterElement(),this.presenceElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getPresenceElement(),this.commentElement&&(this.commentElement.enableTextComments(!0),this.customLoginEnabledLocally||this.commentElement.enableSignInButton(!0),this.commentElement.enableAttachment(!0),this.commentElement.showScreenSizeInfo(!0),this.commentElement.showCommentIndex(!0),this.commentElement.addCommentModeChange&&this.commentElement.addCommentModeChange().subscribe((t=>{this.addCommentMode=t})),(null===(e=this.commentElement)||void 0===e?void 0:e.enableOrphanComments)&&this.commentElement.enableOrphanComments(),(null===(n=this.commentElement)||void 0===n?void 0:n.enableAutoCategorize)&&this.commentElement.enableAutoCategorize()),this.selectionElement=Snippyly.getSelectionElement(),this.selectionElement&&this.selectionElement.enableLiveSelection(!0),this.rewriterElement&&(null===(s=this.rewriterElement)||void 0===s||s.enableRewriter()),this.presenceElement&&(null===(o=this.presenceElement)||void 0===o?void 0:o.enableFlockMode)&&(null===(r=this.presenceElement)||void 0===r||r.enableFlockMode(!0)),this.identifySnippyly()}catch(t){this.loading=!1,console.warn("Error in initializeSnippyly: ",t),Vi("Error in initializeSnippyly: ",t)}},this.generateLocation=()=>{try{const t=new URL(document.location).searchParams,i=new URL(document.location);i.searchParams.delete("review"),i.searchParams.delete("feedback"),i.searchParams.delete("sreviewId"),i.searchParams.delete("scommentId"),i.searchParams.delete("sprojectInstall"),i.searchParams.delete("sflivedemo");const e=t.get("sversion")||this.projectVersion;let n=(t=>{try{return t.replace(/#.*$/,"")}catch(i){return console.warn("Error in removeHashFromUrl: ",i),Vi("Error in removeHashFromUrl: ",i),t}})(i.href);this.projectId&&(n=null==n?void 0:n.replace(window.location.origin,"")),this.location={url:n,version:e}}catch(t){console.warn("Error in generateLocation: ",t),Vi("Error in generateLocation: ",t)}},this.setLocation=()=>{try{window.Snippyly&&(null===Snippyly||void 0===Snippyly?void 0:Snippyly.setLocation)&&(null===Snippyly||void 0===Snippyly||Snippyly.setLocation(JSON.parse(JSON.stringify(this.location))))}catch(t){console.warn("Error in setLocation: ",t),Vi("Error in setLocation: ",t)}},this.identifySnippyly=async()=>{var t,i;try{this.invalidApiKey=!1;let i,e={name:"Anonymous User",email:"anonymous@snippyly.com",userId:"anonymous",isAnonymous:!0};i=this.customLoginEnabled&&this.providedUser?this.providedUser:Ls(),(null==i?void 0:i.email)&&(e=i),e.isAnonymous?delete e.groupId:e.groupId=Snippyly.getDocumentId()+"",this.customLoginEnabledLocally||(null===(t=null==e?void 0:e.contacts)||void 0===t?void 0:t.length)&&(e.contacts=[]),(null==e?void 0:e.isAnonymous)||(this.loading=!0),await Snippyly.identify(e),(null==e?void 0:e.isAnonymous)||(this.snippylyUser=JSON.parse(JSON.stringify(e))),Snippyly.getUserRole$().subscribe((t=>{var i,e;this.loading=!1,this.snippylyUserRole||"Admin"!==t||this.setViewMode("All"),this.snippylyUserRole=t,this.snippylyUserRole||this.setViewMode(null),"Admin"===this.snippylyUserRole?null===(i=this.commentElement)||void 0===i||i.enablePriority():null===(e=this.commentElement)||void 0===e||e.disablePriority()})),(null===Snippyly||void 0===Snippyly?void 0:Snippyly.isPlanExpired$)&&(null===Snippyly||void 0===Snippyly||Snippyly.isPlanExpired$().subscribe((t=>{this.isPlanExpired=t}),(t=>{this.isPlanExpired=!1,console.warn("Error in isPlanExpired$: ",t),Vi("Error in isPlanExpired$: ",t)}))),Di({clientUserId:null==e?void 0:e.userId}),this.getComments(),this.checkGlobalUserContact()}catch(t){this.loading=!1,this.signInError=!0,t&&"string"==typeof t&&(null===(i=null==t?void 0:t.toLowerCase())||void 0===i?void 0:i.includes("invalid"))&&(this.invalidApiKey=!0),console.warn("Error in identifySnippyly: ",t),Vi("Error in identifySnippyly: ",t)}},this.getComments=()=>{try{this.commentElement&&(this.commentSubscription&&this.commentSubscription.unsubscribe(),this.commentSubscription=this.commentElement.getAllCommentAnnotations(this.documentId).subscribe((t=>{this.comments=null==t?void 0:t.filter((t=>["open","inProgress"].includes(null==t?void 0:t.status))),"All"!==this.viewMode&&(this.viewMode?this.comments=this.comments.filter((t=>{var i;return(null===(i=null==t?void 0:t.location)||void 0===i?void 0:i.view)===this.viewMode})):this.comments=this.comments.filter((t=>{var i;return!(null===(i=null==t?void 0:t.location)||void 0===i?void 0:i.view)})))})))}catch(t){console.warn("Error in getComments: ",t),Vi("Error in getComments: ",t)}},this.checkGlobalUserContact=()=>{try{this.contactElement&&this.contactElement.isUserGlobalContact().subscribe((t=>{this.isUserGlobalContact=t}))}catch(t){console.warn("Error in checkGlobalUserContact: ",t),Vi("Error in checkGlobalUserContact: ",t)}},this.toggleSnippylyPluginToolbar=()=>{try{this.expanded=!this.expanded}catch(t){console.warn("Error in toggleSnippylyPluginToolbar: ",t),Vi("Error in toggleSnippylyPluginToolbar: ",t)}},this.loginWithGoogle=()=>{try{if(this.loading||this.customLoginEnabledLocally)return;window.open(`https://snippyly-self-serve-platform.web.app//signup?redirect_url=${encodeURIComponent(window.location.href)}&source=sf`,"_self")}catch(t){console.warn("Error in loginWithGoogle: ",t),Vi("Error in loginWithGoogle: ",t)}},this.getQRCode=async()=>{try{const t=window.location.href;if(t){const i=$s(t,vt,ft),e=await fetch(`https://us-central1-snipply-sdk-staging.cloudfunctions.net/getQRCode?text=${encodeURIComponent(i)}`),n=await e.json();(null==n?void 0:n.qrcode)&&(this.qrCode=null==n?void 0:n.qrcode)}}catch(t){console.warn("Error in getQRCode: ",t),Vi("Error in getQRCode: ",t)}},this.toggleQRCodeVisibility=async()=>{try{this.showQrCode=!this.showQrCode,this.showQrCode&&!this.qrCode&&await this.getQRCode()}catch(t){console.warn("Error in toggleQRCodeVisibility: ",t),Vi("Error in toggleQRCodeVisibility: ",t)}},this.removeSnippyly=async()=>{try{this.exitReviewModeCalled=!0,Ss("review"),Ss("feedback"),Ss("sreviewId"),Ss("projectVersionKey","sessionStorage"),Ss("projectVersion","sessionStorage");const t=new URL(document.location),i=t.searchParams;i.delete("sreviewId"),i.delete("review"),i.delete("feedback"),this.projectVersionKey&&i.delete(this.projectVersionKey),i.delete("sversion"),i.delete("sprojectInstall"),i.delete("sflivedemo"),this.projectVersion=void 0,this.projectVersionKey=void 0,delete window.snippylyInitialLoadUrl,window.history.replaceState({},document.title,t.href),window.location.reload()}catch(t){console.warn("Error in removeSnippyly: ",t),Vi("Error in removeSnippyly: ",t)}},this.signOutUser=async()=>{try{await Snippyly.signOutUser(),Ss("snippyly-user"),Ss("_sfut"),this.snippylyUser=void 0,window.open(`https://snippyly-self-serve-platform.web.app//signout?redirect_url=${encodeURIComponent(window.location.href)}&source=sf`,"_self")}catch(t){console.warn("Error in signOutUser: ",t),Vi("Error in signOutUser: ",t)}},this.toggleMenu=(t,i)=>{try{t.stopPropagation(),this.menuOpenedId===i?this.menuOpenedId=void 0:this.menuOpenedId=i}catch(t){console.warn("Error in toggleMenu: ",t),Vi("Error in toggleMenu: ",t)}},this.copyLink=()=>{try{navigator.clipboard.writeText(window.location.href),this.copyLinkTooltip="Link copied!",setTimeout((()=>{this.copyLinkTooltip="Copy Link"}),2e3)}catch(t){console.warn("Error in copyLink: ",t),Vi("Error in copyLink: ",t)}},this.setViewMode=t=>{try{this.viewMode=t,t?this.location.view=t:delete this.location.view,this.setLocation(),this.getComments()}catch(t){console.warn("Error in setViewMode: ",t),Vi("Error in setViewMode: ",t)}},this.goToAdminPortal=()=>{try{let t="https://snippyly-self-serve-platform.web.app/";if(Snippyly&&(null===Snippyly||void 0===Snippyly?void 0:Snippyly.getDocumentId)){const i=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getDocumentId();i&&(t=`https://snippyly-self-serve-platform.web.app//dashboard/project/comment/${this.apiKey}/${i}`)}window.open(t,"_blank")}catch(t){console.warn("Error in goToAdminPortal: ",t),Vi("Error in goToAdminPortal: ",t)}},this.joinCommunity=()=>{try{window.open("https://join.slack.com/t/superflowusers/shared_invite/zt-1q3jzsddt-NEb~uu9RXscLfxOIDGQXJw","_blank")}catch(t){console.warn("Error in joinCommunity: ",t),Vi("Error in joinCommunity: ",t)}},this.onboardingNextClick=()=>{try{this.showOnboardingModal=!1,xs("sprojectInstall","true");const t=new URL(document.location);t.searchParams.delete("sprojectInstall"),window.history.replaceState({},document.title,t.href)}catch(t){console.warn("Error in onboardingNextClick: ",t),Vi("Error in onboardingNextClick: ",t)}},this.onLiveDemoModalNextClick=()=>{try{this.showLiveDemoModal=!1,xs("sflivedemo","true",!1,"sessionStorage");const t=new URL(document.location);t.searchParams.delete("sflivedemo"),window.history.replaceState({},document.title,t.href)}catch(t){console.warn("Error in onLiveDemoModalNextClick: ",t),Vi("Error in onLiveDemoModalNextClick: ",t)}},this.onUpgradePlanClick=()=>{try{window.open("https://snippyly-self-serve-platform.web.app/dashboard/billing","_blank")}catch(t){console.warn("Error in onUpgradePlanClick: ",t),Vi("Error in onUpgradePlanClick: ",t)}},window.Superflow={enableCustomLogin:async()=>{this.customLoginEnabledLocally=!0,Ss("_sfut"),await this.checkCustomLoginEnabled()},identify:async t=>{this.providedUser=t,this.customLoginEnabled&&this.loginWithCustomUser()}},this.setAttribute("data-snippyly-comment-disabled","true"),this.style.zIndex="2147483577";try{this.expanded=!0,this.detectVersion(),this.setWindowEventListner(),this.urlChangeListener(),this.checkUrl(),console.log("*** Staging Mode ON! ***")}catch(t){console.warn("Error in constructor: ",t),Vi("Error in constructor: ",t)}}get loadPlugin(){return this._loadPlugin}set loadPlugin(t){var i,e,n,s,o,r,l,a,c,h;this._loadPlugin=t,this.loadPlugin?(this.classList.add("visible"),null===(e=null===(i=null===document||void 0===document?void 0:document.body)||void 0===i?void 0:i.style)||void 0===e||e.setProperty("transform","none","important"),null===(o=null===(s=null===(n=null===document||void 0===document?void 0:document.body)||void 0===n?void 0:n.parentElement)||void 0===s?void 0:s.style)||void 0===o||o.setProperty("transform","none","important"),null===(l=null===(r=null===document||void 0===document?void 0:document.body)||void 0===r?void 0:r.style)||void 0===l||l.setProperty("perspective","none","important"),null===(h=null===(c=null===(a=null===document||void 0===document?void 0:document.body)||void 0===a?void 0:a.parentElement)||void 0===c?void 0:c.style)||void 0===h||h.setProperty("perspective","none","important")):this.classList.remove("visible")}get expanded(){return this._expanded}set expanded(t){this._expanded=t,this.expanded?this.classList.add("expanded"):this.classList.remove("expanded")}get apiKey(){return this._apiKey}set apiKey(t){this._apiKey=t,this.onApiKeyChange(),Di({apiKey:this.apiKey}),this.checkUrl()}get projectVersionKey(){return this._projectVersionKey}set projectVersionKey(t){try{this._projectVersionKey=t,this.projectVersionKey&&xs("projectVersionKey",this.projectVersionKey,!1,"sessionStorage"),this.exitReviewModeCalled||this.detectVersion()}catch(t){console.warn("Error in set projectVersionKey: ",t),Vi("Error in set projectVersionKey: ",t)}}get menuOpenedId(){return this._menuOpenedId}set menuOpenedId(t){this._menuOpenedId=t,this.menuOpenedId?this.addWindowClickEventListener():this.removeWindowClickEventListener()}render(){var t,i,e,n,s,o,r,l,a;return this.loadPlugin?!this.snippylyUser||this.loading||null===this.isPlanExpired?_`
1263
+ `;(()=>{try{const t=window.SUPERFLOW_TOOLBAR_API_KEY,i=!!window.SUPERFLOW_TOOLBAR_STAGING,e=window.SUPERFLOW_TOOLBAR_PROJECT_VERSION_KEY,n=window.SUPERFLOW_TOOLBAR_PROJECT_ID;if(t){(()=>{try{document.querySelectorAll("snippyly-plugin").forEach((t=>{t.remove()}))}catch(t){console.warn("Error in removeSuperflowToolbarTag: ",t)}})();const s={};s.apiKey=t,i&&(s.staging="true"),e&&(s.projectVersionKey=e),n&&(s.projectId=n),((t={})=>{try{const i=document.createElement("snippyly-plugin");Object.keys(t||{}).forEach((e=>{i.setAttribute(e,t[e])})),document.body.appendChild(i)}catch(t){console.warn("Error in loadSuperflowToolbarTag: ",t)}})(s)}}catch(t){console.warn("Error in initSuperflow: ",t)}})();var Bs=function(t,i,e,n){for(var s,o=arguments.length,r=o<3?i:null===n?n=Object.getOwnPropertyDescriptor(i,e):n,l=t.length-1;l>=0;l--)(s=t[l])&&(r=(o<3?s(r):o>3?s(i,e,r):s(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r};let _s=class extends Y{constructor(){super(),this._loadPlugin=!1,this.comments=[],this.addCommentMode=!1,this._expanded=!0,this.loading=!1,this.isPlanExpired=null,this.showOnboardingModal=!0,this.showLiveDemoModal=!1,this.staging=true,this.copyLinkTooltip="Copy Link",this.invalidApiKey=!1,this.isUserGlobalContact=!1,this.showQrCode=!1,this.customLoginEnabledLocally=null,this.customLoginEnabled=null,this.exitReviewModeCalled=!1,this.onApiKeyChange=()=>{try{this.apiKey&&(null===window||void 0===window?void 0:window.onSuperflowLoad)&&"function"==typeof window.onSuperflowLoad&&window.onSuperflowLoad()}catch(t){console.warn("Error in onApiKeyChange: ",t),Vi("Error in onApiKeyChange: ",t)}},this.checkCustomLoginEnabled=async()=>{var t;try{const i=await(t=>{const i={apiKey:t};return Bi(_i,"customLoginEnabled")(i)})(this.apiKey);this.customLoginEnabled=!!(null===(t=null==i?void 0:i.data)||void 0===t?void 0:t.customLoginEnabled),this.customLoginEnabled&&this.loginWithCustomUser()}catch(t){this.customLoginEnabled=!1,console.warn("Error in checkCustomLoginEnabled: ",t),Vi("Error in checkCustomLoginEnabled: ",t)}},this.loginWithCustomUser=()=>{try{this.customLoginEnabled?(Ss("_sfut"),this.loadPlugin&&this.documentId&&this.identifySnippyly()):console.warn("Identify call not allowed.")}catch(t){console.warn("Error in loginWithCustomUser: ",t),Vi("Error in loginWithCustomUser: ",t)}},this.addWindowClickEventListener=()=>{try{this.windowClickEventListener||(this.windowClickEventListener=()=>{this.menuOpenedId&&(this.menuOpenedId=void 0)},window.addEventListener("click",this.windowClickEventListener))}catch(t){console.warn("Error in addWindowClickEventListener: ",t),Vi("Error in addWindowClickEventListener: ",t)}},this.removeWindowClickEventListener=()=>{try{window.removeEventListener("click",this.windowClickEventListener),this.windowClickEventListener=void 0}catch(t){console.warn("Error in removeWindowClickEventListener: ",t),Vi("Error in removeWindowClickEventListener: ",t)}},this.setWindowEventListner=()=>{try{window.addEventListener("locationchange",(()=>{this.checkUrl()}))}catch(t){console.warn("Error in setWindowEventListner: ",t),Vi("Error in setWindowEventListner: ",t)}},this.urlChangeListener=()=>{try{const t=history.pushState;history.pushState=function(){const i=t.apply(this,arguments);return window.dispatchEvent(new Event("pushstate")),window.dispatchEvent(new Event("locationchange")),i};const i=history.replaceState;history.replaceState=function(){const t=i.apply(this,arguments);return window.dispatchEvent(new Event("replacestate")),window.dispatchEvent(new Event("locationchange")),t},window.addEventListener("popstate",(()=>{window.dispatchEvent(new Event("locationchange"))}))}catch(t){console.warn("Error in urlChangeListener: ",t),Vi("Error in urlChangeListener: ",t)}},this.checkUrl=()=>{try{const t=new URL(document.location),i=t.searchParams;if((null==i?void 0:i.has("sprojectInstall"))&&!Es("sprojectInstall")?this.showOnboardingModal=!0:this.showOnboardingModal=!1,null==i?void 0:i.has("sflivedemo"))if(Es("sflivedemo",!1,"sessionStorage")){this.showLiveDemoModal=!1;const t=new URL(document.location);t.searchParams.delete("sflivedemo"),window.history.replaceState({},null===document||void 0===document?void 0:document.title,t.toString())}else this.showLiveDemoModal=!0;else this.showLiveDemoModal=!1;if(i.has("st")||i.has("snippyly_google_token")){if(i.has("st")){const t=decodeURIComponent(i.get("st")),e=Ms(t,vt,ft),n=e&&JSON.parse(e);if(n){const t={};t.userId=n.uid,t.name=n.displayName,t.email=n.email,t.photoUrl=null==n?void 0:n.photoURL;const i=JSON.stringify(t),e=$s(i,vt,ft);xs("_sfut",e,!0)}}else if(i.has("snippyly_google_token")){const t=JSON.parse(atob(i.get("snippyly_google_token"))),e={};e.userId=t.uid,e.name=t.displayName,e.email=t.email,e.photoUrl=null==t?void 0:t.photoURL,xs("snippyly-user",JSON.stringify(e),!0)}i.delete("st"),i.delete("snippyly_google_token"),window.history.replaceState({},document.title,t.href)}i.has("review")?(xs("review","true",!1),Ss("feedback"),"true"!==i.get("review")&&(i.delete("review"),i.append("review","true"),window.history.replaceState({},document.title,t.href)),this.loadPluginUI()):i.has("feedback")||Es("review",!1)&&(i.append("review","true"),window.history.replaceState({},document.title,t.href),this.loadPluginUI()),i.has("feedback")?(xs("feedback","true",!1),Ss("review"),"true"!==i.get("feedback")&&(i.delete("feedback"),i.append("feedback","true"),window.history.replaceState({},document.title,t.href)),this.loadPluginUI()):i.has("review")||Es("feedback",!1)&&(i.append("feedback","true"),window.history.replaceState({},document.title,t.href),this.loadPluginUI()),this.setVersionInUrl()}catch(t){console.warn("Error in checkUrl: ",t),Vi("Error in checkUrl: ",t)}},this.detectVersion=()=>{try{if(this.projectVersionKey){const t=new URL(document.location).searchParams;if(t.get(this.projectVersionKey))this.projectVersion=t.get(this.projectVersionKey);else if(window.snippylyInitialLoadUrl){const t=new URL(window.snippylyInitialLoadUrl).searchParams;t.get(this.projectVersionKey)&&(this.projectVersion=t.get(this.projectVersionKey))}this.projectVersion&&xs("projectVersion",this.projectVersion,!1,"sessionStorage")}else{const t=new URL(document.location).searchParams;(t.has("review")||t.has("feedback"))&&t.has("sversion")&&(xs("projectVersionKey","sversion",!1,"sessionStorage"),this.projectVersion=t.get("sversion"),this.projectVersion&&xs("projectVersion",this.projectVersion,!1,"sessionStorage"))}}catch(t){console.warn("Error in detectVersion: ",t),Vi("Error in detectVersion: ",t)}},this.setVersionInUrl=()=>{try{const t=this.projectVersionKey||Es("projectVersionKey",!1,"sessionStorage"),i=this.projectVersion||Es("projectVersion",!1,"sessionStorage");if(t&&i){const e=new URL(document.location),n=e.searchParams;n.get(t)||(n.set(t,i),window.history.replaceState({},document.title,e.href))}}catch(t){console.warn("Error in setVersionInUrl: ",t),Vi("Error in setVersionInUrl: ",t)}},this.loadPluginUI=()=>{try{if(!this.apiKey)return;if(this.loadPlugin)return this.generateLocation(),void this.setViewMode(this.viewMode);const t=Ls();if(t&&!(null==t?void 0:t.isAnonymous)&&(this.loading=!0),this.loadPlugin=!0,!document.querySelector(lt)){const t=document.createElement(lt);null==t||t.addEventListener("signIn",(()=>{this.loginWithGoogle()})),window.document.body.appendChild(t)}if(!document.querySelector(at)){const t=document.createElement(at);t.setAttribute(ut,"true"),window.document.body.appendChild(t)}if(!document.querySelector(rt)){const t=document.createElement(rt);window.document.body.appendChild(t)}if(!document.querySelector(ct)){const t=document.createElement(ct);window.document.body.appendChild(t)}if(!document.querySelector(ht)){const t=document.createElement(ht);window.document.body.appendChild(t)}if(!document.querySelector(dt)){const t=document.createElement(dt);window.document.body.appendChild(t)}if(!document.querySelector(pt)){const t=document.createElement(pt);window.document.body.appendChild(t)}this.initializeSnippyly()}catch(t){this.loading=!1,console.warn("Error in loadPluginUI: ",t),Vi("Error in loadPluginUI: ",t)}},this.initializeSnippyly=async()=>{var e,n,s,o,r,l,a,c,h;try{await(c=this.apiKey,h={options:{staging:this.staging,version:"latest"}},t(void 0,void 0,void 0,(function(){var t,e;return i(this,(function(i){switch(i.label){case 0:return i.trys.push([0,6,,7]),[4,(n=null==h?void 0:h.options,new Promise((function(t,i){var e=document.getElementById("snippylyScript"),s=!1,o="latest";if(n&&(n.staging&&(s=n.staging),n.version&&(o=n.version)),(null==n?void 0:n.version)||(o="1.0.78"),e)t();else{var r=document.createElement("script");r.src="https://cdn.jsdelivr.net/npm/@snippyly/sdk".concat(s?"-staging":"","@").concat(o,"/snippyly.js"),r.id="snippylyScript",r.type="module",document.body.appendChild(r),r.onload=function(){t()},r.onerror=function(){i(new Error("Failed to load Snippyly script"))}}})))];case 1:return i.sent(),t=window.Snippyly,h?[4,t.init(c,h)]:[3,3];case 2:return i.sent(),[3,5];case 3:return[4,t.init(c)];case 4:i.sent(),i.label=5;case 5:return(null==t?void 0:t.st)&&(null==t||t.st("client")),[2,t];case 6:return e=i.sent(),console.error(e),[2,null];case 7:return[2]}var n}))}))),Snippyly&&(null===Snippyly||void 0===Snippyly||Snippyly.sf(!0)),Snippyly&&Di({sdkVersion:null===Snippyly||void 0===Snippyly?void 0:Snippyly.version,sdkType:"client"}),this.documentId=((t,i=0)=>{try{let e=3735928559^i,n=1103547991^i;for(let i,s=0;s<t.length;s++)i=t.charCodeAt(s),e=Math.imul(e^i,2654435761),n=Math.imul(n^i,1597334677);return e=Math.imul(e^e>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(e^e>>>13,3266489909),4294967296*(2097151&n)+(e>>>0)}catch(t){return console.warn("Error in cyrb53: ",t),Vi("Error in cyrb53: ",t),0}})((t=>{let i;return i=t.includes("http")?new URL(t):new URL("http://"+t),i.hostname.replace("www.","")})(window.location.origin))+"",this.projectId&&(this.documentId=this.projectId+""),await(null===Snippyly||void 0===Snippyly?void 0:Snippyly.setDocumentId(this.documentId+"")),this.generateLocation(),this.setLocation(),this.commentElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getCommentElement(),this.contactElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getContactElement(),this.rewriterElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getRewriterElement(),this.presenceElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getPresenceElement(),this.commentElement&&(this.commentElement.enableTextComments(!0),this.customLoginEnabledLocally||this.commentElement.enableSignInButton(!0),this.commentElement.enableAttachment(!0),(null===(e=this.commentElement)||void 0===e?void 0:e.showScreenSizeInfo)&&this.commentElement.showScreenSizeInfo(!0),(null===(n=this.commentElement)||void 0===n?void 0:n.showDeviceInfo)&&this.commentElement.showDeviceInfo(!0),this.commentElement.showCommentIndex(!0),this.commentElement.addCommentModeChange&&this.commentElement.addCommentModeChange().subscribe((t=>{this.addCommentMode=t})),(null===(s=this.commentElement)||void 0===s?void 0:s.enableOrphanComments)&&this.commentElement.enableOrphanComments(),(null===(o=this.commentElement)||void 0===o?void 0:o.enableAutoCategorize)&&this.commentElement.enableAutoCategorize()),this.selectionElement=Snippyly.getSelectionElement(),this.selectionElement&&this.selectionElement.enableLiveSelection(!0),this.rewriterElement&&(null===(r=this.rewriterElement)||void 0===r||r.enableRewriter()),this.presenceElement&&(null===(l=this.presenceElement)||void 0===l?void 0:l.enableFlockMode)&&(null===(a=this.presenceElement)||void 0===a||a.enableFlockMode(!0)),this.identifySnippyly()}catch(t){this.loading=!1,console.warn("Error in initializeSnippyly: ",t),Vi("Error in initializeSnippyly: ",t)}},this.generateLocation=()=>{try{const t=new URL(document.location).searchParams,i=new URL(document.location);i.searchParams.delete("review"),i.searchParams.delete("feedback"),i.searchParams.delete("sreviewId"),i.searchParams.delete("scommentId"),i.searchParams.delete("sprojectInstall"),i.searchParams.delete("sflivedemo");const e=t.get("sversion")||this.projectVersion;let n=(t=>{try{return t.replace(/#.*$/,"")}catch(i){return console.warn("Error in removeHashFromUrl: ",i),Vi("Error in removeHashFromUrl: ",i),t}})(i.href);this.projectId&&(n=null==n?void 0:n.replace(window.location.origin,"")),this.location={url:n,version:e}}catch(t){console.warn("Error in generateLocation: ",t),Vi("Error in generateLocation: ",t)}},this.setLocation=()=>{try{window.Snippyly&&(null===Snippyly||void 0===Snippyly?void 0:Snippyly.setLocation)&&(null===Snippyly||void 0===Snippyly||Snippyly.setLocation(JSON.parse(JSON.stringify(this.location))))}catch(t){console.warn("Error in setLocation: ",t),Vi("Error in setLocation: ",t)}},this.identifySnippyly=async()=>{var t,i;try{this.invalidApiKey=!1;let i,e={name:"Anonymous User",email:"anonymous@snippyly.com",userId:"anonymous",isAnonymous:!0};i=this.customLoginEnabled&&this.providedUser?this.providedUser:Ls(),(null==i?void 0:i.email)&&(e=i),e.isAnonymous?delete e.groupId:e.groupId=Snippyly.getDocumentId()+"",this.customLoginEnabledLocally||(null===(t=null==e?void 0:e.contacts)||void 0===t?void 0:t.length)&&(e.contacts=[]),(null==e?void 0:e.isAnonymous)||(this.loading=!0),await Snippyly.identify(e),(null==e?void 0:e.isAnonymous)||(this.snippylyUser=JSON.parse(JSON.stringify(e))),Snippyly.getUserRole$().subscribe((t=>{var i,e;this.loading=!1,this.snippylyUserRole||"Admin"!==t||this.setViewMode("All"),this.snippylyUserRole=t,this.snippylyUserRole||this.setViewMode(null),"Admin"===this.snippylyUserRole?null===(i=this.commentElement)||void 0===i||i.enablePriority():null===(e=this.commentElement)||void 0===e||e.disablePriority()})),(null===Snippyly||void 0===Snippyly?void 0:Snippyly.isPlanExpired$)&&(null===Snippyly||void 0===Snippyly||Snippyly.isPlanExpired$().subscribe((t=>{this.isPlanExpired=t}),(t=>{this.isPlanExpired=!1,console.warn("Error in isPlanExpired$: ",t),Vi("Error in isPlanExpired$: ",t)}))),Di({clientUserId:null==e?void 0:e.userId}),this.getComments(),this.checkGlobalUserContact()}catch(t){this.loading=!1,this.signInError=!0,t&&"string"==typeof t&&(null===(i=null==t?void 0:t.toLowerCase())||void 0===i?void 0:i.includes("invalid"))&&(this.invalidApiKey=!0),console.warn("Error in identifySnippyly: ",t),Vi("Error in identifySnippyly: ",t)}},this.getComments=()=>{try{this.commentElement&&(this.commentSubscription&&this.commentSubscription.unsubscribe(),this.commentSubscription=this.commentElement.getAllCommentAnnotations(this.documentId).subscribe((t=>{this.comments=null==t?void 0:t.filter((t=>["open","inProgress"].includes(null==t?void 0:t.status))),"All"!==this.viewMode&&(this.viewMode?this.comments=this.comments.filter((t=>{var i;return(null===(i=null==t?void 0:t.location)||void 0===i?void 0:i.view)===this.viewMode})):this.comments=this.comments.filter((t=>{var i;return!(null===(i=null==t?void 0:t.location)||void 0===i?void 0:i.view)})))})))}catch(t){console.warn("Error in getComments: ",t),Vi("Error in getComments: ",t)}},this.checkGlobalUserContact=()=>{try{this.contactElement&&this.contactElement.isUserGlobalContact().subscribe((t=>{this.isUserGlobalContact=t}))}catch(t){console.warn("Error in checkGlobalUserContact: ",t),Vi("Error in checkGlobalUserContact: ",t)}},this.toggleSnippylyPluginToolbar=()=>{try{this.expanded=!this.expanded}catch(t){console.warn("Error in toggleSnippylyPluginToolbar: ",t),Vi("Error in toggleSnippylyPluginToolbar: ",t)}},this.loginWithGoogle=()=>{try{if(this.loading||this.customLoginEnabledLocally)return;window.open(`https://snippyly-self-serve-platform.web.app//signup?redirect_url=${encodeURIComponent(window.location.href)}&source=sf`,"_self")}catch(t){console.warn("Error in loginWithGoogle: ",t),Vi("Error in loginWithGoogle: ",t)}},this.getQRCode=async()=>{try{const t=window.location.href;if(t){const i=$s(t,vt,ft),e=await fetch(`https://us-central1-snipply-sdk-staging.cloudfunctions.net/getQRCode?text=${encodeURIComponent(i)}`),n=await e.json();(null==n?void 0:n.qrcode)&&(this.qrCode=null==n?void 0:n.qrcode)}}catch(t){console.warn("Error in getQRCode: ",t),Vi("Error in getQRCode: ",t)}},this.toggleQRCodeVisibility=async()=>{try{this.showQrCode=!this.showQrCode,this.showQrCode&&!this.qrCode&&await this.getQRCode()}catch(t){console.warn("Error in toggleQRCodeVisibility: ",t),Vi("Error in toggleQRCodeVisibility: ",t)}},this.removeSnippyly=async()=>{try{this.exitReviewModeCalled=!0,Ss("review"),Ss("feedback"),Ss("sreviewId"),Ss("projectVersionKey","sessionStorage"),Ss("projectVersion","sessionStorage");const t=new URL(document.location),i=t.searchParams;i.delete("sreviewId"),i.delete("review"),i.delete("feedback"),this.projectVersionKey&&i.delete(this.projectVersionKey),i.delete("sversion"),i.delete("sprojectInstall"),i.delete("sflivedemo"),this.projectVersion=void 0,this.projectVersionKey=void 0,delete window.snippylyInitialLoadUrl,window.history.replaceState({},document.title,t.href),window.location.reload()}catch(t){console.warn("Error in removeSnippyly: ",t),Vi("Error in removeSnippyly: ",t)}},this.signOutUser=async()=>{try{await Snippyly.signOutUser(),Ss("snippyly-user"),Ss("_sfut"),this.snippylyUser=void 0,window.open(`https://snippyly-self-serve-platform.web.app//signout?redirect_url=${encodeURIComponent(window.location.href)}&source=sf`,"_self")}catch(t){console.warn("Error in signOutUser: ",t),Vi("Error in signOutUser: ",t)}},this.toggleMenu=(t,i)=>{try{t.stopPropagation(),this.menuOpenedId===i?this.menuOpenedId=void 0:this.menuOpenedId=i}catch(t){console.warn("Error in toggleMenu: ",t),Vi("Error in toggleMenu: ",t)}},this.copyLink=()=>{try{navigator.clipboard.writeText(window.location.href),this.copyLinkTooltip="Link copied!",setTimeout((()=>{this.copyLinkTooltip="Copy Link"}),2e3)}catch(t){console.warn("Error in copyLink: ",t),Vi("Error in copyLink: ",t)}},this.setViewMode=t=>{try{this.viewMode=t,t?this.location.view=t:delete this.location.view,this.setLocation(),this.getComments()}catch(t){console.warn("Error in setViewMode: ",t),Vi("Error in setViewMode: ",t)}},this.goToAdminPortal=()=>{try{let t="https://snippyly-self-serve-platform.web.app/";if(Snippyly&&(null===Snippyly||void 0===Snippyly?void 0:Snippyly.getDocumentId)){const i=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getDocumentId();i&&(t=`https://snippyly-self-serve-platform.web.app//dashboard/project/comment/${this.apiKey}/${i}`)}window.open(t,"_blank")}catch(t){console.warn("Error in goToAdminPortal: ",t),Vi("Error in goToAdminPortal: ",t)}},this.joinCommunity=()=>{try{window.open("https://join.slack.com/t/superflowusers/shared_invite/zt-1q3jzsddt-NEb~uu9RXscLfxOIDGQXJw","_blank")}catch(t){console.warn("Error in joinCommunity: ",t),Vi("Error in joinCommunity: ",t)}},this.onboardingNextClick=()=>{try{this.showOnboardingModal=!1,xs("sprojectInstall","true");const t=new URL(document.location);t.searchParams.delete("sprojectInstall"),window.history.replaceState({},document.title,t.href)}catch(t){console.warn("Error in onboardingNextClick: ",t),Vi("Error in onboardingNextClick: ",t)}},this.onLiveDemoModalNextClick=()=>{try{this.showLiveDemoModal=!1,xs("sflivedemo","true",!1,"sessionStorage");const t=new URL(document.location);t.searchParams.delete("sflivedemo"),window.history.replaceState({},document.title,t.href)}catch(t){console.warn("Error in onLiveDemoModalNextClick: ",t),Vi("Error in onLiveDemoModalNextClick: ",t)}},this.onUpgradePlanClick=()=>{try{window.open("https://snippyly-self-serve-platform.web.app/dashboard/billing","_blank")}catch(t){console.warn("Error in onUpgradePlanClick: ",t),Vi("Error in onUpgradePlanClick: ",t)}},window.Superflow={enableCustomLogin:async()=>{this.customLoginEnabledLocally=!0,Ss("_sfut"),await this.checkCustomLoginEnabled()},identify:async t=>{this.providedUser=t,this.customLoginEnabled&&this.loginWithCustomUser()}},this.setAttribute("data-snippyly-comment-disabled","true"),this.style.zIndex="2147483577";try{this.expanded=!0,this.detectVersion(),this.setWindowEventListner(),this.urlChangeListener(),this.checkUrl(),console.log("*** Staging Mode ON! ***")}catch(t){console.warn("Error in constructor: ",t),Vi("Error in constructor: ",t)}}get loadPlugin(){return this._loadPlugin}set loadPlugin(t){var i,e,n,s,o,r,l,a,c,h;this._loadPlugin=t,this.loadPlugin?(this.classList.add("visible"),null===(e=null===(i=null===document||void 0===document?void 0:document.body)||void 0===i?void 0:i.style)||void 0===e||e.setProperty("transform","none","important"),null===(o=null===(s=null===(n=null===document||void 0===document?void 0:document.body)||void 0===n?void 0:n.parentElement)||void 0===s?void 0:s.style)||void 0===o||o.setProperty("transform","none","important"),null===(l=null===(r=null===document||void 0===document?void 0:document.body)||void 0===r?void 0:r.style)||void 0===l||l.setProperty("perspective","none","important"),null===(h=null===(c=null===(a=null===document||void 0===document?void 0:document.body)||void 0===a?void 0:a.parentElement)||void 0===c?void 0:c.style)||void 0===h||h.setProperty("perspective","none","important")):this.classList.remove("visible")}get expanded(){return this._expanded}set expanded(t){this._expanded=t,this.expanded?this.classList.add("expanded"):this.classList.remove("expanded")}get apiKey(){return this._apiKey}set apiKey(t){this._apiKey=t,this.onApiKeyChange(),Di({apiKey:this.apiKey}),this.checkUrl()}get projectVersionKey(){return this._projectVersionKey}set projectVersionKey(t){try{this._projectVersionKey=t,this.projectVersionKey&&xs("projectVersionKey",this.projectVersionKey,!1,"sessionStorage"),this.exitReviewModeCalled||this.detectVersion()}catch(t){console.warn("Error in set projectVersionKey: ",t),Vi("Error in set projectVersionKey: ",t)}}get menuOpenedId(){return this._menuOpenedId}set menuOpenedId(t){this._menuOpenedId=t,this.menuOpenedId?this.addWindowClickEventListener():this.removeWindowClickEventListener()}render(){var t,i,e,n,s,o,r,l,a;return this.loadPlugin?!this.snippylyUser||this.loading||null===this.isPlanExpired?_`
1264
1264
  <div class="snippyly-plugin-container">
1265
1265
  <div class="toolbar" id="smallToolbar">
1266
1266
  <!-- <div class="toolbar-section">
@@ -1572,7 +1572,7 @@ class vs extends ae{}vs.Encryptor=class extends vs{processBlock(t,i){const e=t,n
1572
1572
  <div class="action tooltip">
1573
1573
  <div class="tooltiptext">Comment</div>
1574
1574
  <snippyly-comment-tool class="custom-tool">
1575
- <div class="action">
1575
+ <div class="action" slot="button">
1576
1576
  <svg class="toolbar-icon ${ot({active:this.addCommentMode})}" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
1577
1577
  <path fill-rule="evenodd" clip-rule="evenodd"
1578
1578
  d="M17.7608 6.03888C21.6888 6.64595 24.7153 9.3481 25.7503 13.1722C26.0832 14.4028 26.0832 16.5981 25.7503 17.8287C24.8136 21.2897 22.3047 23.7986 18.8437 24.7353C18.1546 24.9217 17.6783 24.9695 16.5154 24.9685C14.9367 24.9672 14.1823 24.8254 12.8496 24.2792L12.1364 23.9869L9.93697 24.5342C7.8786 25.0464 7.71866 25.071 7.44436 24.917C6.90064 24.6118 6.90443 24.3818 7.49147 22.0353L8.03021 19.8823L7.73728 19.1677C7.19053 17.8336 7.04867 17.0796 7.04737 15.5005C7.0464 14.3376 7.09415 13.8613 7.28063 13.1722C8.21127 9.73361 10.737 7.1939 14.1308 6.28405C14.9298 6.06985 17.0392 5.92745 17.7608 6.03888ZM14.2233 8.05664C12.9452 8.46912 12.019 9.04056 11.0373 10.0223C9.57907 11.4805 8.85364 13.0991 8.75174 15.1214C8.68947 16.3572 8.85884 17.3544 9.31582 18.4435C9.47381 18.8201 9.65855 19.2624 9.72624 19.4266C9.82922 19.6761 9.78471 19.9865 9.45432 21.3204C9.23688 22.1979 9.06827 22.9251 9.07953 22.9364C9.09079 22.9476 9.81796 22.779 10.6955 22.5616C12.0294 22.2312 12.3398 22.1867 12.5893 22.2897C12.7535 22.3573 13.1958 22.5421 13.5724 22.7001C14.6615 23.1571 15.6587 23.3264 16.8945 23.2642C18.9168 23.1623 20.5354 22.4368 21.9936 20.9786C22.968 20.0042 23.5361 19.0878 23.9685 17.7926C24.2112 17.0656 24.2457 16.7805 24.2457 15.5005C24.2457 14.2204 24.2112 13.9353 23.9685 13.2083C23.5361 11.9132 22.968 10.9967 21.9936 10.0223C20.3414 8.37025 18.566 7.66777 16.2447 7.74769C15.3595 7.77823 14.8403 7.8575 14.2233 8.05664Z" />
package/snippyly.min.js CHANGED
@@ -1259,7 +1259,7 @@ class Do extends Me{}Do.Encryptor=class extends Do{processBlock(t,i){const e=t,n
1259
1259
  line-height: 1;
1260
1260
  cursor: pointer;
1261
1261
  }
1262
- `;(()=>{try{const t=window.SUPERFLOW_TOOLBAR_API_KEY,i=!!window.SUPERFLOW_TOOLBAR_STAGING,e=window.SUPERFLOW_TOOLBAR_PROJECT_VERSION_KEY,n=window.SUPERFLOW_TOOLBAR_PROJECT_ID;if(t){(()=>{try{document.querySelectorAll("snippyly-plugin").forEach((t=>{t.remove()}))}catch(t){console.warn("Error in removeSuperflowToolbarTag: ",t)}})();const o={};o.apiKey=t,i&&(o.staging="true"),e&&(o.projectVersionKey=e),n&&(o.projectId=n),((t={})=>{try{const i=document.createElement("snippyly-plugin");Object.keys(t||{}).forEach((e=>{i.setAttribute(e,t[e])})),document.body.appendChild(i)}catch(t){console.warn("Error in loadSuperflowToolbarTag: ",t)}})(o)}}catch(t){console.warn("Error in initSuperflow: ",t)}})();var Yo=function(t,i,e,n){for(var o,s=arguments.length,r=s<3?i:null===n?n=Object.getOwnPropertyDescriptor(i,e):n,l=t.length-1;l>=0;l--)(o=t[l])&&(r=(s<3?o(r):s>3?o(i,e,r):o(i,e))||r);return s>3&&r&&Object.defineProperty(i,e,r),r};t.SnippylyPlugin=class extends Q{constructor(){super(),this._loadPlugin=!1,this.comments=[],this.addCommentMode=!1,this._expanded=!0,this.loading=!1,this.isPlanExpired=null,this.showOnboardingModal=!0,this.showLiveDemoModal=!1,this.staging=true,this.copyLinkTooltip="Copy Link",this.invalidApiKey=!1,this.isUserGlobalContact=!1,this.showQrCode=!1,this.customLoginEnabledLocally=null,this.customLoginEnabled=null,this.exitReviewModeCalled=!1,this.onApiKeyChange=()=>{try{this.apiKey&&(null===window||void 0===window?void 0:window.onSuperflowLoad)&&"function"==typeof window.onSuperflowLoad&&window.onSuperflowLoad()}catch(t){console.warn("Error in onApiKeyChange: ",t),ie("Error in onApiKeyChange: ",t)}},this.checkCustomLoginEnabled=async()=>{var t;try{const i=await(t=>{const i={apiKey:t};return Xi(Yi,"customLoginEnabled")(i)})(this.apiKey);this.customLoginEnabled=!!(null===(t=null==i?void 0:i.data)||void 0===t?void 0:t.customLoginEnabled),this.customLoginEnabled&&this.loginWithCustomUser()}catch(t){this.customLoginEnabled=!1,console.warn("Error in checkCustomLoginEnabled: ",t),ie("Error in checkCustomLoginEnabled: ",t)}},this.loginWithCustomUser=()=>{try{this.customLoginEnabled?(zo(pt),this.loadPlugin&&this.documentId&&this.identifySnippyly()):console.warn("Identify call not allowed.")}catch(t){console.warn("Error in loginWithCustomUser: ",t),ie("Error in loginWithCustomUser: ",t)}},this.addWindowClickEventListener=()=>{try{this.windowClickEventListener||(this.windowClickEventListener=()=>{this.menuOpenedId&&(this.menuOpenedId=void 0)},window.addEventListener("click",this.windowClickEventListener))}catch(t){console.warn("Error in addWindowClickEventListener: ",t),ie("Error in addWindowClickEventListener: ",t)}},this.removeWindowClickEventListener=()=>{try{window.removeEventListener("click",this.windowClickEventListener),this.windowClickEventListener=void 0}catch(t){console.warn("Error in removeWindowClickEventListener: ",t),ie("Error in removeWindowClickEventListener: ",t)}},this.setWindowEventListner=()=>{try{window.addEventListener("locationchange",(()=>{this.checkUrl()}))}catch(t){console.warn("Error in setWindowEventListner: ",t),ie("Error in setWindowEventListner: ",t)}},this.urlChangeListener=()=>{try{const t=history.pushState;history.pushState=function(){const i=t.apply(this,arguments);return window.dispatchEvent(new Event("pushstate")),window.dispatchEvent(new Event("locationchange")),i};const i=history.replaceState;history.replaceState=function(){const t=i.apply(this,arguments);return window.dispatchEvent(new Event("replacestate")),window.dispatchEvent(new Event("locationchange")),t},window.addEventListener("popstate",(()=>{window.dispatchEvent(new Event("locationchange"))}))}catch(t){console.warn("Error in urlChangeListener: ",t),ie("Error in urlChangeListener: ",t)}},this.checkUrl=()=>{try{const t=new URL(document.location),i=t.searchParams;if((null==i?void 0:i.has(wt))&&!jo(wt)?this.showOnboardingModal=!0:this.showOnboardingModal=!1,null==i?void 0:i.has(gt))if(jo(gt,!1,"sessionStorage")){this.showLiveDemoModal=!1;const t=new URL(document.location);t.searchParams.delete(gt),window.history.replaceState({},null===document||void 0===document?void 0:document.title,t.toString())}else this.showLiveDemoModal=!0;else this.showLiveDemoModal=!1;if(i.has(dt)||i.has("snippyly_google_token")){if(i.has(dt)){const t=decodeURIComponent(i.get(dt)),e=Jo(t,Mt,Lt),n=e&&JSON.parse(e);if(n){const t={};t.userId=n.uid,t.name=n.displayName,t.email=n.email,t.photoUrl=null==n?void 0:n.photoURL;const i=JSON.stringify(t),e=qo(i,Mt,Lt);Ro(pt,e,!0)}}else if(i.has("snippyly_google_token")){const t=JSON.parse(atob(i.get("snippyly_google_token"))),e={};e.userId=t.uid,e.name=t.displayName,e.email=t.email,e.photoUrl=null==t?void 0:t.photoURL,Ro(ht,JSON.stringify(e),!0)}i.delete(dt),i.delete("snippyly_google_token"),window.history.replaceState({},document.title,t.href)}i.has(lt)?(Ro(lt,"true",!1),zo(at),"true"!==i.get(lt)&&(i.delete(lt),i.append(lt,"true"),window.history.replaceState({},document.title,t.href)),this.loadPluginUI()):i.has(at)||jo(lt,!1)&&(i.append(lt,"true"),window.history.replaceState({},document.title,t.href),this.loadPluginUI()),i.has(at)?(Ro(at,"true",!1),zo(lt),"true"!==i.get(at)&&(i.delete(at),i.append(at,"true"),window.history.replaceState({},document.title,t.href)),this.loadPluginUI()):i.has(lt)||jo(at,!1)&&(i.append(at,"true"),window.history.replaceState({},document.title,t.href),this.loadPluginUI()),this.setVersionInUrl()}catch(t){console.warn("Error in checkUrl: ",t),ie("Error in checkUrl: ",t)}},this.detectVersion=()=>{try{if(this.projectVersionKey){const t=new URL(document.location).searchParams;if(t.get(this.projectVersionKey))this.projectVersion=t.get(this.projectVersionKey);else if(window.snippylyInitialLoadUrl){const t=new URL(window.snippylyInitialLoadUrl).searchParams;t.get(this.projectVersionKey)&&(this.projectVersion=t.get(this.projectVersionKey))}this.projectVersion&&Ro(vt,this.projectVersion,!1,"sessionStorage")}else{const t=new URL(document.location).searchParams;(t.has(lt)||t.has(at))&&t.has(ft)&&(Ro(ut,ft,!1,"sessionStorage"),this.projectVersion=t.get(ft),this.projectVersion&&Ro(vt,this.projectVersion,!1,"sessionStorage"))}}catch(t){console.warn("Error in detectVersion: ",t),ie("Error in detectVersion: ",t)}},this.setVersionInUrl=()=>{try{const t=this.projectVersionKey||jo(ut,!1,"sessionStorage"),i=this.projectVersion||jo(vt,!1,"sessionStorage");if(t&&i){const e=new URL(document.location),n=e.searchParams;n.get(t)||(n.set(t,i),window.history.replaceState({},document.title,e.href))}}catch(t){console.warn("Error in setVersionInUrl: ",t),ie("Error in setVersionInUrl: ",t)}},this.loadPluginUI=()=>{try{if(!this.apiKey)return;if(this.loadPlugin)return this.generateLocation(),void this.setViewMode(this.viewMode);const t=Ko();if(t&&!(null==t?void 0:t.isAnonymous)&&(this.loading=!0),this.loadPlugin=!0,!document.querySelector(yt)){const t=document.createElement(yt);null==t||t.addEventListener("signIn",(()=>{this.loginWithGoogle()})),window.document.body.appendChild(t)}if(!document.querySelector(Ct)){const t=document.createElement(Ct);t.setAttribute(kt,"true"),window.document.body.appendChild(t)}if(!document.querySelector(mt)){const t=document.createElement(mt);window.document.body.appendChild(t)}if(!document.querySelector(bt)){const t=document.createElement(bt);window.document.body.appendChild(t)}if(!document.querySelector(xt)){const t=document.createElement(xt);window.document.body.appendChild(t)}if(!document.querySelector(Et)){const t=document.createElement(Et);window.document.body.appendChild(t)}if(!document.querySelector(St)){const t=document.createElement(St);window.document.body.appendChild(t)}this.initializeSnippyly()}catch(t){this.loading=!1,console.warn("Error in loadPluginUI: ",t),ie("Error in loadPluginUI: ",t)}},this.initializeSnippyly=async()=>{var t,n,o,s,r,l,a;try{await(l=this.apiKey,a={options:{staging:this.staging,version:"latest"}},i(void 0,void 0,void 0,(function(){var t,i;return e(this,(function(e){switch(e.label){case 0:return e.trys.push([0,6,,7]),[4,(n=null==a?void 0:a.options,new Promise((function(t,i){var e=document.getElementById("snippylyScript"),o=!1,s="latest";if(n&&(n.staging&&(o=n.staging),n.version&&(s=n.version)),(null==n?void 0:n.version)||(s="1.0.78"),e)t();else{var r=document.createElement("script");r.src="https://cdn.jsdelivr.net/npm/@snippyly/sdk".concat(o?"-staging":"","@").concat(s,"/snippyly.js"),r.id="snippylyScript",r.type="module",document.body.appendChild(r),r.onload=function(){t()},r.onerror=function(){i(new Error("Failed to load Snippyly script"))}}})))];case 1:return e.sent(),t=window.Snippyly,a?[4,t.init(l,a)]:[3,3];case 2:return e.sent(),[3,5];case 3:return[4,t.init(l)];case 4:e.sent(),e.label=5;case 5:return(null==t?void 0:t.st)&&(null==t||t.st("client")),[2,t];case 6:return i=e.sent(),console.error(i),[2,null];case 7:return[2]}var n}))}))),Snippyly&&(null===Snippyly||void 0===Snippyly||Snippyly.sf(!0)),Snippyly&&te({sdkVersion:null===Snippyly||void 0===Snippyly?void 0:Snippyly.version,sdkType:"client"}),this.documentId=((t,i=0)=>{try{let e=3735928559^i,n=1103547991^i;for(let i,o=0;o<t.length;o++)i=t.charCodeAt(o),e=Math.imul(e^i,2654435761),n=Math.imul(n^i,1597334677);return e=Math.imul(e^e>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(e^e>>>13,3266489909),4294967296*(2097151&n)+(e>>>0)}catch(t){return console.warn("Error in cyrb53: ",t),ie("Error in cyrb53: ",t),0}})((t=>{let i;return i=t.includes("http")?new URL(t):new URL("http://"+t),i.hostname.replace("www.","")})(window.location.origin))+"",this.projectId&&(this.documentId=this.projectId+""),await(null===Snippyly||void 0===Snippyly?void 0:Snippyly.setDocumentId(this.documentId+"")),this.generateLocation(),this.setLocation(),this.commentElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getCommentElement(),this.contactElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getContactElement(),this.rewriterElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getRewriterElement(),this.presenceElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getPresenceElement(),this.commentElement&&(this.commentElement.enableTextComments(!0),this.customLoginEnabledLocally||this.commentElement.enableSignInButton(!0),this.commentElement.enableAttachment(!0),this.commentElement.showScreenSizeInfo(!0),this.commentElement.showCommentIndex(!0),this.commentElement.addCommentModeChange&&this.commentElement.addCommentModeChange().subscribe((t=>{this.addCommentMode=t})),(null===(t=this.commentElement)||void 0===t?void 0:t.enableOrphanComments)&&this.commentElement.enableOrphanComments(),(null===(n=this.commentElement)||void 0===n?void 0:n.enableAutoCategorize)&&this.commentElement.enableAutoCategorize()),this.selectionElement=Snippyly.getSelectionElement(),this.selectionElement&&this.selectionElement.enableLiveSelection(!0),this.rewriterElement&&(null===(o=this.rewriterElement)||void 0===o||o.enableRewriter()),this.presenceElement&&(null===(s=this.presenceElement)||void 0===s?void 0:s.enableFlockMode)&&(null===(r=this.presenceElement)||void 0===r||r.enableFlockMode(!0)),this.identifySnippyly()}catch(t){this.loading=!1,console.warn("Error in initializeSnippyly: ",t),ie("Error in initializeSnippyly: ",t)}},this.generateLocation=()=>{try{const t=new URL(document.location).searchParams,i=new URL(document.location);i.searchParams.delete(lt),i.searchParams.delete(at),i.searchParams.delete(ct),i.searchParams.delete("scommentId"),i.searchParams.delete(wt),i.searchParams.delete(gt);const e=t.get(ft)||this.projectVersion;let n=(t=>{try{return t.replace(/#.*$/,"")}catch(i){return console.warn("Error in removeHashFromUrl: ",i),ie("Error in removeHashFromUrl: ",i),t}})(i.href);this.projectId&&(n=null==n?void 0:n.replace(window.location.origin,"")),this.location={url:n,version:e}}catch(t){console.warn("Error in generateLocation: ",t),ie("Error in generateLocation: ",t)}},this.setLocation=()=>{try{window.Snippyly&&(null===Snippyly||void 0===Snippyly?void 0:Snippyly.setLocation)&&(null===Snippyly||void 0===Snippyly||Snippyly.setLocation(JSON.parse(JSON.stringify(this.location))))}catch(t){console.warn("Error in setLocation: ",t),ie("Error in setLocation: ",t)}},this.identifySnippyly=async()=>{var t,i;try{this.invalidApiKey=!1;let i,e={name:"Anonymous User",email:"anonymous@snippyly.com",userId:"anonymous",isAnonymous:!0};i=this.customLoginEnabled&&this.providedUser?this.providedUser:Ko(),(null==i?void 0:i.email)&&(e=i),e.isAnonymous?delete e.groupId:e.groupId=Snippyly.getDocumentId()+"",this.customLoginEnabledLocally||(null===(t=null==e?void 0:e.contacts)||void 0===t?void 0:t.length)&&(e.contacts=[]),(null==e?void 0:e.isAnonymous)||(this.loading=!0),await Snippyly.identify(e),(null==e?void 0:e.isAnonymous)||(this.snippylyUser=JSON.parse(JSON.stringify(e))),Snippyly.getUserRole$().subscribe((t=>{var i,e;this.loading=!1,this.snippylyUserRole||"Admin"!==t||this.setViewMode("All"),this.snippylyUserRole=t,this.snippylyUserRole||this.setViewMode(null),"Admin"===this.snippylyUserRole?null===(i=this.commentElement)||void 0===i||i.enablePriority():null===(e=this.commentElement)||void 0===e||e.disablePriority()})),(null===Snippyly||void 0===Snippyly?void 0:Snippyly.isPlanExpired$)&&(null===Snippyly||void 0===Snippyly||Snippyly.isPlanExpired$().subscribe((t=>{this.isPlanExpired=t}),(t=>{this.isPlanExpired=!1,console.warn("Error in isPlanExpired$: ",t),ie("Error in isPlanExpired$: ",t)}))),te({clientUserId:null==e?void 0:e.userId}),this.getComments(),this.checkGlobalUserContact()}catch(t){this.loading=!1,this.signInError=!0,t&&"string"==typeof t&&(null===(i=null==t?void 0:t.toLowerCase())||void 0===i?void 0:i.includes("invalid"))&&(this.invalidApiKey=!0),console.warn("Error in identifySnippyly: ",t),ie("Error in identifySnippyly: ",t)}},this.getComments=()=>{try{this.commentElement&&(this.commentSubscription&&this.commentSubscription.unsubscribe(),this.commentSubscription=this.commentElement.getAllCommentAnnotations(this.documentId).subscribe((t=>{this.comments=null==t?void 0:t.filter((t=>["open","inProgress"].includes(null==t?void 0:t.status))),"All"!==this.viewMode&&(this.viewMode?this.comments=this.comments.filter((t=>{var i;return(null===(i=null==t?void 0:t.location)||void 0===i?void 0:i.view)===this.viewMode})):this.comments=this.comments.filter((t=>{var i;return!(null===(i=null==t?void 0:t.location)||void 0===i?void 0:i.view)})))})))}catch(t){console.warn("Error in getComments: ",t),ie("Error in getComments: ",t)}},this.checkGlobalUserContact=()=>{try{this.contactElement&&this.contactElement.isUserGlobalContact().subscribe((t=>{this.isUserGlobalContact=t}))}catch(t){console.warn("Error in checkGlobalUserContact: ",t),ie("Error in checkGlobalUserContact: ",t)}},this.toggleSnippylyPluginToolbar=()=>{try{this.expanded=!this.expanded}catch(t){console.warn("Error in toggleSnippylyPluginToolbar: ",t),ie("Error in toggleSnippylyPluginToolbar: ",t)}},this.loginWithGoogle=()=>{try{if(this.loading||this.customLoginEnabledLocally)return;window.open(`${$t}/signup?redirect_url=${encodeURIComponent(window.location.href)}&source=sf`,"_self")}catch(t){console.warn("Error in loginWithGoogle: ",t),ie("Error in loginWithGoogle: ",t)}},this.getQRCode=async()=>{try{const t=window.location.href;if(t){const i=qo(t,Mt,Lt),e=await fetch(`https://us-central1-snipply-sdk-staging.cloudfunctions.net/getQRCode?text=${encodeURIComponent(i)}`),n=await e.json();(null==n?void 0:n.qrcode)&&(this.qrCode=null==n?void 0:n.qrcode)}}catch(t){console.warn("Error in getQRCode: ",t),ie("Error in getQRCode: ",t)}},this.toggleQRCodeVisibility=async()=>{try{this.showQrCode=!this.showQrCode,this.showQrCode&&!this.qrCode&&await this.getQRCode()}catch(t){console.warn("Error in toggleQRCodeVisibility: ",t),ie("Error in toggleQRCodeVisibility: ",t)}},this.removeSnippyly=async()=>{try{this.exitReviewModeCalled=!0,zo(lt),zo(at),zo(ct),zo(ut,"sessionStorage"),zo(vt,"sessionStorage");const t=new URL(document.location),i=t.searchParams;i.delete(ct),i.delete(lt),i.delete(at),this.projectVersionKey&&i.delete(this.projectVersionKey),i.delete(ft),i.delete(wt),i.delete(gt),this.projectVersion=void 0,this.projectVersionKey=void 0,delete window.snippylyInitialLoadUrl,window.history.replaceState({},document.title,t.href),window.location.reload()}catch(t){console.warn("Error in removeSnippyly: ",t),ie("Error in removeSnippyly: ",t)}},this.signOutUser=async()=>{try{await Snippyly.signOutUser(),zo(ht),zo(pt),this.snippylyUser=void 0,window.open(`${$t}/signout?redirect_url=${encodeURIComponent(window.location.href)}&source=sf`,"_self")}catch(t){console.warn("Error in signOutUser: ",t),ie("Error in signOutUser: ",t)}},this.toggleMenu=(t,i)=>{try{t.stopPropagation(),this.menuOpenedId===i?this.menuOpenedId=void 0:this.menuOpenedId=i}catch(t){console.warn("Error in toggleMenu: ",t),ie("Error in toggleMenu: ",t)}},this.copyLink=()=>{try{navigator.clipboard.writeText(window.location.href),this.copyLinkTooltip="Link copied!",setTimeout((()=>{this.copyLinkTooltip="Copy Link"}),2e3)}catch(t){console.warn("Error in copyLink: ",t),ie("Error in copyLink: ",t)}},this.setViewMode=t=>{try{this.viewMode=t,t?this.location.view=t:delete this.location.view,this.setLocation(),this.getComments()}catch(t){console.warn("Error in setViewMode: ",t),ie("Error in setViewMode: ",t)}},this.goToAdminPortal=()=>{try{let t=`${$t}`;if(Snippyly&&(null===Snippyly||void 0===Snippyly?void 0:Snippyly.getDocumentId)){const i=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getDocumentId();i&&(t=`${$t}/dashboard/project/comment/${this.apiKey}/${i}`)}window.open(t,"_blank")}catch(t){console.warn("Error in goToAdminPortal: ",t),ie("Error in goToAdminPortal: ",t)}},this.joinCommunity=()=>{try{window.open("https://join.slack.com/t/superflowusers/shared_invite/zt-1q3jzsddt-NEb~uu9RXscLfxOIDGQXJw","_blank")}catch(t){console.warn("Error in joinCommunity: ",t),ie("Error in joinCommunity: ",t)}},this.onboardingNextClick=()=>{try{this.showOnboardingModal=!1,Ro(wt,"true");const t=new URL(document.location);t.searchParams.delete(wt),window.history.replaceState({},document.title,t.href)}catch(t){console.warn("Error in onboardingNextClick: ",t),ie("Error in onboardingNextClick: ",t)}},this.onLiveDemoModalNextClick=()=>{try{this.showLiveDemoModal=!1,Ro(gt,"true",!1,"sessionStorage");const t=new URL(document.location);t.searchParams.delete(gt),window.history.replaceState({},document.title,t.href)}catch(t){console.warn("Error in onLiveDemoModalNextClick: ",t),ie("Error in onLiveDemoModalNextClick: ",t)}},this.onUpgradePlanClick=()=>{try{window.open("https://snippyly-self-serve-platform.web.app/dashboard/billing","_blank")}catch(t){console.warn("Error in onUpgradePlanClick: ",t),ie("Error in onUpgradePlanClick: ",t)}},window.Superflow={enableCustomLogin:async()=>{this.customLoginEnabledLocally=!0,zo(pt),await this.checkCustomLoginEnabled()},identify:async t=>{this.providedUser=t,this.customLoginEnabled&&this.loginWithCustomUser()}},this.setAttribute("data-snippyly-comment-disabled","true"),this.style.zIndex="2147483577";try{this.expanded=!0,this.detectVersion(),this.setWindowEventListner(),this.urlChangeListener(),this.checkUrl(),console.log("*** Staging Mode ON! ***")}catch(t){console.warn("Error in constructor: ",t),ie("Error in constructor: ",t)}}get loadPlugin(){return this._loadPlugin}set loadPlugin(t){var i,e,n,o,s,r,l,a,c,h;this._loadPlugin=t,this.loadPlugin?(this.classList.add("visible"),null===(e=null===(i=null===document||void 0===document?void 0:document.body)||void 0===i?void 0:i.style)||void 0===e||e.setProperty("transform","none","important"),null===(s=null===(o=null===(n=null===document||void 0===document?void 0:document.body)||void 0===n?void 0:n.parentElement)||void 0===o?void 0:o.style)||void 0===s||s.setProperty("transform","none","important"),null===(l=null===(r=null===document||void 0===document?void 0:document.body)||void 0===r?void 0:r.style)||void 0===l||l.setProperty("perspective","none","important"),null===(h=null===(c=null===(a=null===document||void 0===document?void 0:document.body)||void 0===a?void 0:a.parentElement)||void 0===c?void 0:c.style)||void 0===h||h.setProperty("perspective","none","important")):this.classList.remove("visible")}get expanded(){return this._expanded}set expanded(t){this._expanded=t,this.expanded?this.classList.add("expanded"):this.classList.remove("expanded")}get apiKey(){return this._apiKey}set apiKey(t){this._apiKey=t,this.onApiKeyChange(),te({apiKey:this.apiKey}),this.checkUrl()}get projectVersionKey(){return this._projectVersionKey}set projectVersionKey(t){try{this._projectVersionKey=t,this.projectVersionKey&&Ro(ut,this.projectVersionKey,!1,"sessionStorage"),this.exitReviewModeCalled||this.detectVersion()}catch(t){console.warn("Error in set projectVersionKey: ",t),ie("Error in set projectVersionKey: ",t)}}get menuOpenedId(){return this._menuOpenedId}set menuOpenedId(t){this._menuOpenedId=t,this.menuOpenedId?this.addWindowClickEventListener():this.removeWindowClickEventListener()}render(){var t,i,e,n,o,s,r,l,a;return this.loadPlugin?!this.snippylyUser||this.loading||null===this.isPlanExpired?D`
1262
+ `;(()=>{try{const t=window.SUPERFLOW_TOOLBAR_API_KEY,i=!!window.SUPERFLOW_TOOLBAR_STAGING,e=window.SUPERFLOW_TOOLBAR_PROJECT_VERSION_KEY,n=window.SUPERFLOW_TOOLBAR_PROJECT_ID;if(t){(()=>{try{document.querySelectorAll("snippyly-plugin").forEach((t=>{t.remove()}))}catch(t){console.warn("Error in removeSuperflowToolbarTag: ",t)}})();const o={};o.apiKey=t,i&&(o.staging="true"),e&&(o.projectVersionKey=e),n&&(o.projectId=n),((t={})=>{try{const i=document.createElement("snippyly-plugin");Object.keys(t||{}).forEach((e=>{i.setAttribute(e,t[e])})),document.body.appendChild(i)}catch(t){console.warn("Error in loadSuperflowToolbarTag: ",t)}})(o)}}catch(t){console.warn("Error in initSuperflow: ",t)}})();var Yo=function(t,i,e,n){for(var o,s=arguments.length,r=s<3?i:null===n?n=Object.getOwnPropertyDescriptor(i,e):n,l=t.length-1;l>=0;l--)(o=t[l])&&(r=(s<3?o(r):s>3?o(i,e,r):o(i,e))||r);return s>3&&r&&Object.defineProperty(i,e,r),r};t.SnippylyPlugin=class extends Q{constructor(){super(),this._loadPlugin=!1,this.comments=[],this.addCommentMode=!1,this._expanded=!0,this.loading=!1,this.isPlanExpired=null,this.showOnboardingModal=!0,this.showLiveDemoModal=!1,this.staging=true,this.copyLinkTooltip="Copy Link",this.invalidApiKey=!1,this.isUserGlobalContact=!1,this.showQrCode=!1,this.customLoginEnabledLocally=null,this.customLoginEnabled=null,this.exitReviewModeCalled=!1,this.onApiKeyChange=()=>{try{this.apiKey&&(null===window||void 0===window?void 0:window.onSuperflowLoad)&&"function"==typeof window.onSuperflowLoad&&window.onSuperflowLoad()}catch(t){console.warn("Error in onApiKeyChange: ",t),ie("Error in onApiKeyChange: ",t)}},this.checkCustomLoginEnabled=async()=>{var t;try{const i=await(t=>{const i={apiKey:t};return Xi(Yi,"customLoginEnabled")(i)})(this.apiKey);this.customLoginEnabled=!!(null===(t=null==i?void 0:i.data)||void 0===t?void 0:t.customLoginEnabled),this.customLoginEnabled&&this.loginWithCustomUser()}catch(t){this.customLoginEnabled=!1,console.warn("Error in checkCustomLoginEnabled: ",t),ie("Error in checkCustomLoginEnabled: ",t)}},this.loginWithCustomUser=()=>{try{this.customLoginEnabled?(zo(pt),this.loadPlugin&&this.documentId&&this.identifySnippyly()):console.warn("Identify call not allowed.")}catch(t){console.warn("Error in loginWithCustomUser: ",t),ie("Error in loginWithCustomUser: ",t)}},this.addWindowClickEventListener=()=>{try{this.windowClickEventListener||(this.windowClickEventListener=()=>{this.menuOpenedId&&(this.menuOpenedId=void 0)},window.addEventListener("click",this.windowClickEventListener))}catch(t){console.warn("Error in addWindowClickEventListener: ",t),ie("Error in addWindowClickEventListener: ",t)}},this.removeWindowClickEventListener=()=>{try{window.removeEventListener("click",this.windowClickEventListener),this.windowClickEventListener=void 0}catch(t){console.warn("Error in removeWindowClickEventListener: ",t),ie("Error in removeWindowClickEventListener: ",t)}},this.setWindowEventListner=()=>{try{window.addEventListener("locationchange",(()=>{this.checkUrl()}))}catch(t){console.warn("Error in setWindowEventListner: ",t),ie("Error in setWindowEventListner: ",t)}},this.urlChangeListener=()=>{try{const t=history.pushState;history.pushState=function(){const i=t.apply(this,arguments);return window.dispatchEvent(new Event("pushstate")),window.dispatchEvent(new Event("locationchange")),i};const i=history.replaceState;history.replaceState=function(){const t=i.apply(this,arguments);return window.dispatchEvent(new Event("replacestate")),window.dispatchEvent(new Event("locationchange")),t},window.addEventListener("popstate",(()=>{window.dispatchEvent(new Event("locationchange"))}))}catch(t){console.warn("Error in urlChangeListener: ",t),ie("Error in urlChangeListener: ",t)}},this.checkUrl=()=>{try{const t=new URL(document.location),i=t.searchParams;if((null==i?void 0:i.has(wt))&&!jo(wt)?this.showOnboardingModal=!0:this.showOnboardingModal=!1,null==i?void 0:i.has(gt))if(jo(gt,!1,"sessionStorage")){this.showLiveDemoModal=!1;const t=new URL(document.location);t.searchParams.delete(gt),window.history.replaceState({},null===document||void 0===document?void 0:document.title,t.toString())}else this.showLiveDemoModal=!0;else this.showLiveDemoModal=!1;if(i.has(dt)||i.has("snippyly_google_token")){if(i.has(dt)){const t=decodeURIComponent(i.get(dt)),e=Jo(t,Mt,Lt),n=e&&JSON.parse(e);if(n){const t={};t.userId=n.uid,t.name=n.displayName,t.email=n.email,t.photoUrl=null==n?void 0:n.photoURL;const i=JSON.stringify(t),e=qo(i,Mt,Lt);Ro(pt,e,!0)}}else if(i.has("snippyly_google_token")){const t=JSON.parse(atob(i.get("snippyly_google_token"))),e={};e.userId=t.uid,e.name=t.displayName,e.email=t.email,e.photoUrl=null==t?void 0:t.photoURL,Ro(ht,JSON.stringify(e),!0)}i.delete(dt),i.delete("snippyly_google_token"),window.history.replaceState({},document.title,t.href)}i.has(lt)?(Ro(lt,"true",!1),zo(at),"true"!==i.get(lt)&&(i.delete(lt),i.append(lt,"true"),window.history.replaceState({},document.title,t.href)),this.loadPluginUI()):i.has(at)||jo(lt,!1)&&(i.append(lt,"true"),window.history.replaceState({},document.title,t.href),this.loadPluginUI()),i.has(at)?(Ro(at,"true",!1),zo(lt),"true"!==i.get(at)&&(i.delete(at),i.append(at,"true"),window.history.replaceState({},document.title,t.href)),this.loadPluginUI()):i.has(lt)||jo(at,!1)&&(i.append(at,"true"),window.history.replaceState({},document.title,t.href),this.loadPluginUI()),this.setVersionInUrl()}catch(t){console.warn("Error in checkUrl: ",t),ie("Error in checkUrl: ",t)}},this.detectVersion=()=>{try{if(this.projectVersionKey){const t=new URL(document.location).searchParams;if(t.get(this.projectVersionKey))this.projectVersion=t.get(this.projectVersionKey);else if(window.snippylyInitialLoadUrl){const t=new URL(window.snippylyInitialLoadUrl).searchParams;t.get(this.projectVersionKey)&&(this.projectVersion=t.get(this.projectVersionKey))}this.projectVersion&&Ro(vt,this.projectVersion,!1,"sessionStorage")}else{const t=new URL(document.location).searchParams;(t.has(lt)||t.has(at))&&t.has(ft)&&(Ro(ut,ft,!1,"sessionStorage"),this.projectVersion=t.get(ft),this.projectVersion&&Ro(vt,this.projectVersion,!1,"sessionStorage"))}}catch(t){console.warn("Error in detectVersion: ",t),ie("Error in detectVersion: ",t)}},this.setVersionInUrl=()=>{try{const t=this.projectVersionKey||jo(ut,!1,"sessionStorage"),i=this.projectVersion||jo(vt,!1,"sessionStorage");if(t&&i){const e=new URL(document.location),n=e.searchParams;n.get(t)||(n.set(t,i),window.history.replaceState({},document.title,e.href))}}catch(t){console.warn("Error in setVersionInUrl: ",t),ie("Error in setVersionInUrl: ",t)}},this.loadPluginUI=()=>{try{if(!this.apiKey)return;if(this.loadPlugin)return this.generateLocation(),void this.setViewMode(this.viewMode);const t=Ko();if(t&&!(null==t?void 0:t.isAnonymous)&&(this.loading=!0),this.loadPlugin=!0,!document.querySelector(yt)){const t=document.createElement(yt);null==t||t.addEventListener("signIn",(()=>{this.loginWithGoogle()})),window.document.body.appendChild(t)}if(!document.querySelector(Ct)){const t=document.createElement(Ct);t.setAttribute(kt,"true"),window.document.body.appendChild(t)}if(!document.querySelector(mt)){const t=document.createElement(mt);window.document.body.appendChild(t)}if(!document.querySelector(bt)){const t=document.createElement(bt);window.document.body.appendChild(t)}if(!document.querySelector(xt)){const t=document.createElement(xt);window.document.body.appendChild(t)}if(!document.querySelector(Et)){const t=document.createElement(Et);window.document.body.appendChild(t)}if(!document.querySelector(St)){const t=document.createElement(St);window.document.body.appendChild(t)}this.initializeSnippyly()}catch(t){this.loading=!1,console.warn("Error in loadPluginUI: ",t),ie("Error in loadPluginUI: ",t)}},this.initializeSnippyly=async()=>{var t,n,o,s,r,l,a,c,h;try{await(c=this.apiKey,h={options:{staging:this.staging,version:"latest"}},i(void 0,void 0,void 0,(function(){var t,i;return e(this,(function(e){switch(e.label){case 0:return e.trys.push([0,6,,7]),[4,(n=null==h?void 0:h.options,new Promise((function(t,i){var e=document.getElementById("snippylyScript"),o=!1,s="latest";if(n&&(n.staging&&(o=n.staging),n.version&&(s=n.version)),(null==n?void 0:n.version)||(s="1.0.78"),e)t();else{var r=document.createElement("script");r.src="https://cdn.jsdelivr.net/npm/@snippyly/sdk".concat(o?"-staging":"","@").concat(s,"/snippyly.js"),r.id="snippylyScript",r.type="module",document.body.appendChild(r),r.onload=function(){t()},r.onerror=function(){i(new Error("Failed to load Snippyly script"))}}})))];case 1:return e.sent(),t=window.Snippyly,h?[4,t.init(c,h)]:[3,3];case 2:return e.sent(),[3,5];case 3:return[4,t.init(c)];case 4:e.sent(),e.label=5;case 5:return(null==t?void 0:t.st)&&(null==t||t.st("client")),[2,t];case 6:return i=e.sent(),console.error(i),[2,null];case 7:return[2]}var n}))}))),Snippyly&&(null===Snippyly||void 0===Snippyly||Snippyly.sf(!0)),Snippyly&&te({sdkVersion:null===Snippyly||void 0===Snippyly?void 0:Snippyly.version,sdkType:"client"}),this.documentId=((t,i=0)=>{try{let e=3735928559^i,n=1103547991^i;for(let i,o=0;o<t.length;o++)i=t.charCodeAt(o),e=Math.imul(e^i,2654435761),n=Math.imul(n^i,1597334677);return e=Math.imul(e^e>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(e^e>>>13,3266489909),4294967296*(2097151&n)+(e>>>0)}catch(t){return console.warn("Error in cyrb53: ",t),ie("Error in cyrb53: ",t),0}})((t=>{let i;return i=t.includes("http")?new URL(t):new URL("http://"+t),i.hostname.replace("www.","")})(window.location.origin))+"",this.projectId&&(this.documentId=this.projectId+""),await(null===Snippyly||void 0===Snippyly?void 0:Snippyly.setDocumentId(this.documentId+"")),this.generateLocation(),this.setLocation(),this.commentElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getCommentElement(),this.contactElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getContactElement(),this.rewriterElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getRewriterElement(),this.presenceElement=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getPresenceElement(),this.commentElement&&(this.commentElement.enableTextComments(!0),this.customLoginEnabledLocally||this.commentElement.enableSignInButton(!0),this.commentElement.enableAttachment(!0),(null===(t=this.commentElement)||void 0===t?void 0:t.showScreenSizeInfo)&&this.commentElement.showScreenSizeInfo(!0),(null===(n=this.commentElement)||void 0===n?void 0:n.showDeviceInfo)&&this.commentElement.showDeviceInfo(!0),this.commentElement.showCommentIndex(!0),this.commentElement.addCommentModeChange&&this.commentElement.addCommentModeChange().subscribe((t=>{this.addCommentMode=t})),(null===(o=this.commentElement)||void 0===o?void 0:o.enableOrphanComments)&&this.commentElement.enableOrphanComments(),(null===(s=this.commentElement)||void 0===s?void 0:s.enableAutoCategorize)&&this.commentElement.enableAutoCategorize()),this.selectionElement=Snippyly.getSelectionElement(),this.selectionElement&&this.selectionElement.enableLiveSelection(!0),this.rewriterElement&&(null===(r=this.rewriterElement)||void 0===r||r.enableRewriter()),this.presenceElement&&(null===(l=this.presenceElement)||void 0===l?void 0:l.enableFlockMode)&&(null===(a=this.presenceElement)||void 0===a||a.enableFlockMode(!0)),this.identifySnippyly()}catch(t){this.loading=!1,console.warn("Error in initializeSnippyly: ",t),ie("Error in initializeSnippyly: ",t)}},this.generateLocation=()=>{try{const t=new URL(document.location).searchParams,i=new URL(document.location);i.searchParams.delete(lt),i.searchParams.delete(at),i.searchParams.delete(ct),i.searchParams.delete("scommentId"),i.searchParams.delete(wt),i.searchParams.delete(gt);const e=t.get(ft)||this.projectVersion;let n=(t=>{try{return t.replace(/#.*$/,"")}catch(i){return console.warn("Error in removeHashFromUrl: ",i),ie("Error in removeHashFromUrl: ",i),t}})(i.href);this.projectId&&(n=null==n?void 0:n.replace(window.location.origin,"")),this.location={url:n,version:e}}catch(t){console.warn("Error in generateLocation: ",t),ie("Error in generateLocation: ",t)}},this.setLocation=()=>{try{window.Snippyly&&(null===Snippyly||void 0===Snippyly?void 0:Snippyly.setLocation)&&(null===Snippyly||void 0===Snippyly||Snippyly.setLocation(JSON.parse(JSON.stringify(this.location))))}catch(t){console.warn("Error in setLocation: ",t),ie("Error in setLocation: ",t)}},this.identifySnippyly=async()=>{var t,i;try{this.invalidApiKey=!1;let i,e={name:"Anonymous User",email:"anonymous@snippyly.com",userId:"anonymous",isAnonymous:!0};i=this.customLoginEnabled&&this.providedUser?this.providedUser:Ko(),(null==i?void 0:i.email)&&(e=i),e.isAnonymous?delete e.groupId:e.groupId=Snippyly.getDocumentId()+"",this.customLoginEnabledLocally||(null===(t=null==e?void 0:e.contacts)||void 0===t?void 0:t.length)&&(e.contacts=[]),(null==e?void 0:e.isAnonymous)||(this.loading=!0),await Snippyly.identify(e),(null==e?void 0:e.isAnonymous)||(this.snippylyUser=JSON.parse(JSON.stringify(e))),Snippyly.getUserRole$().subscribe((t=>{var i,e;this.loading=!1,this.snippylyUserRole||"Admin"!==t||this.setViewMode("All"),this.snippylyUserRole=t,this.snippylyUserRole||this.setViewMode(null),"Admin"===this.snippylyUserRole?null===(i=this.commentElement)||void 0===i||i.enablePriority():null===(e=this.commentElement)||void 0===e||e.disablePriority()})),(null===Snippyly||void 0===Snippyly?void 0:Snippyly.isPlanExpired$)&&(null===Snippyly||void 0===Snippyly||Snippyly.isPlanExpired$().subscribe((t=>{this.isPlanExpired=t}),(t=>{this.isPlanExpired=!1,console.warn("Error in isPlanExpired$: ",t),ie("Error in isPlanExpired$: ",t)}))),te({clientUserId:null==e?void 0:e.userId}),this.getComments(),this.checkGlobalUserContact()}catch(t){this.loading=!1,this.signInError=!0,t&&"string"==typeof t&&(null===(i=null==t?void 0:t.toLowerCase())||void 0===i?void 0:i.includes("invalid"))&&(this.invalidApiKey=!0),console.warn("Error in identifySnippyly: ",t),ie("Error in identifySnippyly: ",t)}},this.getComments=()=>{try{this.commentElement&&(this.commentSubscription&&this.commentSubscription.unsubscribe(),this.commentSubscription=this.commentElement.getAllCommentAnnotations(this.documentId).subscribe((t=>{this.comments=null==t?void 0:t.filter((t=>["open","inProgress"].includes(null==t?void 0:t.status))),"All"!==this.viewMode&&(this.viewMode?this.comments=this.comments.filter((t=>{var i;return(null===(i=null==t?void 0:t.location)||void 0===i?void 0:i.view)===this.viewMode})):this.comments=this.comments.filter((t=>{var i;return!(null===(i=null==t?void 0:t.location)||void 0===i?void 0:i.view)})))})))}catch(t){console.warn("Error in getComments: ",t),ie("Error in getComments: ",t)}},this.checkGlobalUserContact=()=>{try{this.contactElement&&this.contactElement.isUserGlobalContact().subscribe((t=>{this.isUserGlobalContact=t}))}catch(t){console.warn("Error in checkGlobalUserContact: ",t),ie("Error in checkGlobalUserContact: ",t)}},this.toggleSnippylyPluginToolbar=()=>{try{this.expanded=!this.expanded}catch(t){console.warn("Error in toggleSnippylyPluginToolbar: ",t),ie("Error in toggleSnippylyPluginToolbar: ",t)}},this.loginWithGoogle=()=>{try{if(this.loading||this.customLoginEnabledLocally)return;window.open(`${$t}/signup?redirect_url=${encodeURIComponent(window.location.href)}&source=sf`,"_self")}catch(t){console.warn("Error in loginWithGoogle: ",t),ie("Error in loginWithGoogle: ",t)}},this.getQRCode=async()=>{try{const t=window.location.href;if(t){const i=qo(t,Mt,Lt),e=await fetch(`https://us-central1-snipply-sdk-staging.cloudfunctions.net/getQRCode?text=${encodeURIComponent(i)}`),n=await e.json();(null==n?void 0:n.qrcode)&&(this.qrCode=null==n?void 0:n.qrcode)}}catch(t){console.warn("Error in getQRCode: ",t),ie("Error in getQRCode: ",t)}},this.toggleQRCodeVisibility=async()=>{try{this.showQrCode=!this.showQrCode,this.showQrCode&&!this.qrCode&&await this.getQRCode()}catch(t){console.warn("Error in toggleQRCodeVisibility: ",t),ie("Error in toggleQRCodeVisibility: ",t)}},this.removeSnippyly=async()=>{try{this.exitReviewModeCalled=!0,zo(lt),zo(at),zo(ct),zo(ut,"sessionStorage"),zo(vt,"sessionStorage");const t=new URL(document.location),i=t.searchParams;i.delete(ct),i.delete(lt),i.delete(at),this.projectVersionKey&&i.delete(this.projectVersionKey),i.delete(ft),i.delete(wt),i.delete(gt),this.projectVersion=void 0,this.projectVersionKey=void 0,delete window.snippylyInitialLoadUrl,window.history.replaceState({},document.title,t.href),window.location.reload()}catch(t){console.warn("Error in removeSnippyly: ",t),ie("Error in removeSnippyly: ",t)}},this.signOutUser=async()=>{try{await Snippyly.signOutUser(),zo(ht),zo(pt),this.snippylyUser=void 0,window.open(`${$t}/signout?redirect_url=${encodeURIComponent(window.location.href)}&source=sf`,"_self")}catch(t){console.warn("Error in signOutUser: ",t),ie("Error in signOutUser: ",t)}},this.toggleMenu=(t,i)=>{try{t.stopPropagation(),this.menuOpenedId===i?this.menuOpenedId=void 0:this.menuOpenedId=i}catch(t){console.warn("Error in toggleMenu: ",t),ie("Error in toggleMenu: ",t)}},this.copyLink=()=>{try{navigator.clipboard.writeText(window.location.href),this.copyLinkTooltip="Link copied!",setTimeout((()=>{this.copyLinkTooltip="Copy Link"}),2e3)}catch(t){console.warn("Error in copyLink: ",t),ie("Error in copyLink: ",t)}},this.setViewMode=t=>{try{this.viewMode=t,t?this.location.view=t:delete this.location.view,this.setLocation(),this.getComments()}catch(t){console.warn("Error in setViewMode: ",t),ie("Error in setViewMode: ",t)}},this.goToAdminPortal=()=>{try{let t=`${$t}`;if(Snippyly&&(null===Snippyly||void 0===Snippyly?void 0:Snippyly.getDocumentId)){const i=null===Snippyly||void 0===Snippyly?void 0:Snippyly.getDocumentId();i&&(t=`${$t}/dashboard/project/comment/${this.apiKey}/${i}`)}window.open(t,"_blank")}catch(t){console.warn("Error in goToAdminPortal: ",t),ie("Error in goToAdminPortal: ",t)}},this.joinCommunity=()=>{try{window.open("https://join.slack.com/t/superflowusers/shared_invite/zt-1q3jzsddt-NEb~uu9RXscLfxOIDGQXJw","_blank")}catch(t){console.warn("Error in joinCommunity: ",t),ie("Error in joinCommunity: ",t)}},this.onboardingNextClick=()=>{try{this.showOnboardingModal=!1,Ro(wt,"true");const t=new URL(document.location);t.searchParams.delete(wt),window.history.replaceState({},document.title,t.href)}catch(t){console.warn("Error in onboardingNextClick: ",t),ie("Error in onboardingNextClick: ",t)}},this.onLiveDemoModalNextClick=()=>{try{this.showLiveDemoModal=!1,Ro(gt,"true",!1,"sessionStorage");const t=new URL(document.location);t.searchParams.delete(gt),window.history.replaceState({},document.title,t.href)}catch(t){console.warn("Error in onLiveDemoModalNextClick: ",t),ie("Error in onLiveDemoModalNextClick: ",t)}},this.onUpgradePlanClick=()=>{try{window.open("https://snippyly-self-serve-platform.web.app/dashboard/billing","_blank")}catch(t){console.warn("Error in onUpgradePlanClick: ",t),ie("Error in onUpgradePlanClick: ",t)}},window.Superflow={enableCustomLogin:async()=>{this.customLoginEnabledLocally=!0,zo(pt),await this.checkCustomLoginEnabled()},identify:async t=>{this.providedUser=t,this.customLoginEnabled&&this.loginWithCustomUser()}},this.setAttribute("data-snippyly-comment-disabled","true"),this.style.zIndex="2147483577";try{this.expanded=!0,this.detectVersion(),this.setWindowEventListner(),this.urlChangeListener(),this.checkUrl(),console.log("*** Staging Mode ON! ***")}catch(t){console.warn("Error in constructor: ",t),ie("Error in constructor: ",t)}}get loadPlugin(){return this._loadPlugin}set loadPlugin(t){var i,e,n,o,s,r,l,a,c,h;this._loadPlugin=t,this.loadPlugin?(this.classList.add("visible"),null===(e=null===(i=null===document||void 0===document?void 0:document.body)||void 0===i?void 0:i.style)||void 0===e||e.setProperty("transform","none","important"),null===(s=null===(o=null===(n=null===document||void 0===document?void 0:document.body)||void 0===n?void 0:n.parentElement)||void 0===o?void 0:o.style)||void 0===s||s.setProperty("transform","none","important"),null===(l=null===(r=null===document||void 0===document?void 0:document.body)||void 0===r?void 0:r.style)||void 0===l||l.setProperty("perspective","none","important"),null===(h=null===(c=null===(a=null===document||void 0===document?void 0:document.body)||void 0===a?void 0:a.parentElement)||void 0===c?void 0:c.style)||void 0===h||h.setProperty("perspective","none","important")):this.classList.remove("visible")}get expanded(){return this._expanded}set expanded(t){this._expanded=t,this.expanded?this.classList.add("expanded"):this.classList.remove("expanded")}get apiKey(){return this._apiKey}set apiKey(t){this._apiKey=t,this.onApiKeyChange(),te({apiKey:this.apiKey}),this.checkUrl()}get projectVersionKey(){return this._projectVersionKey}set projectVersionKey(t){try{this._projectVersionKey=t,this.projectVersionKey&&Ro(ut,this.projectVersionKey,!1,"sessionStorage"),this.exitReviewModeCalled||this.detectVersion()}catch(t){console.warn("Error in set projectVersionKey: ",t),ie("Error in set projectVersionKey: ",t)}}get menuOpenedId(){return this._menuOpenedId}set menuOpenedId(t){this._menuOpenedId=t,this.menuOpenedId?this.addWindowClickEventListener():this.removeWindowClickEventListener()}render(){var t,i,e,n,o,s,r,l,a;return this.loadPlugin?!this.snippylyUser||this.loading||null===this.isPlanExpired?D`
1263
1263
  <div class="snippyly-plugin-container">
1264
1264
  <div class="toolbar" id="smallToolbar">
1265
1265
  <!-- <div class="toolbar-section">
@@ -1571,7 +1571,7 @@ class Do extends Me{}Do.Encryptor=class extends Do{processBlock(t,i){const e=t,n
1571
1571
  <div class="action tooltip">
1572
1572
  <div class="tooltiptext">Comment</div>
1573
1573
  <snippyly-comment-tool class="custom-tool">
1574
- <div class="action">
1574
+ <div class="action" slot="button">
1575
1575
  <svg class="toolbar-icon ${rt({active:this.addCommentMode})}" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
1576
1576
  <path fill-rule="evenodd" clip-rule="evenodd"
1577
1577
  d="M17.7608 6.03888C21.6888 6.64595 24.7153 9.3481 25.7503 13.1722C26.0832 14.4028 26.0832 16.5981 25.7503 17.8287C24.8136 21.2897 22.3047 23.7986 18.8437 24.7353C18.1546 24.9217 17.6783 24.9695 16.5154 24.9685C14.9367 24.9672 14.1823 24.8254 12.8496 24.2792L12.1364 23.9869L9.93697 24.5342C7.8786 25.0464 7.71866 25.071 7.44436 24.917C6.90064 24.6118 6.90443 24.3818 7.49147 22.0353L8.03021 19.8823L7.73728 19.1677C7.19053 17.8336 7.04867 17.0796 7.04737 15.5005C7.0464 14.3376 7.09415 13.8613 7.28063 13.1722C8.21127 9.73361 10.737 7.1939 14.1308 6.28405C14.9298 6.06985 17.0392 5.92745 17.7608 6.03888ZM14.2233 8.05664C12.9452 8.46912 12.019 9.04056 11.0373 10.0223C9.57907 11.4805 8.85364 13.0991 8.75174 15.1214C8.68947 16.3572 8.85884 17.3544 9.31582 18.4435C9.47381 18.8201 9.65855 19.2624 9.72624 19.4266C9.82922 19.6761 9.78471 19.9865 9.45432 21.3204C9.23688 22.1979 9.06827 22.9251 9.07953 22.9364C9.09079 22.9476 9.81796 22.779 10.6955 22.5616C12.0294 22.2312 12.3398 22.1867 12.5893 22.2897C12.7535 22.3573 13.1958 22.5421 13.5724 22.7001C14.6615 23.1571 15.6587 23.3264 16.8945 23.2642C18.9168 23.1623 20.5354 22.4368 21.9936 20.9786C22.968 20.0042 23.5361 19.0878 23.9685 17.7926C24.2112 17.0656 24.2457 16.7805 24.2457 15.5005C24.2457 14.2204 24.2112 13.9353 23.9685 13.2083C23.5361 11.9132 22.968 10.9967 21.9936 10.0223C20.3414 8.37025 18.566 7.66777 16.2447 7.74769C15.3595 7.77823 14.8403 7.8575 14.2233 8.05664Z" />