@coxwave/tap-sdk 0.0.10 → 0.0.11

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.
@@ -20,5 +20,5 @@ var TapSDK=(function(){'use strict';var je=Object.defineProperty;var Y=i=>{throw
20
20
  function gtag(){dataLayer.push(arguments);}
21
21
  gtag('js', new Date());
22
22
  gtag('config', '${e}');
23
- `,document.head.appendChild(n);}}handle(e){typeof window.gtag=="function"?window.gtag("event",e.action,{event_category:e.category,event_label:e.label,value:e.value,...e.customParams}):this.gaId&&console.warn("[GAMiddleware] gtag not available, event queued:",e);}},O=class{constructor(e=false){this.enabled=e;}handle(e){this.enabled&&console.log("[TapSDK Event]",e);}},P=class{constructor(){o(this,"middlewares",[]);}addMiddleware(e){this.middlewares.push(e);}removeMiddleware(e){let t=this.middlewares.indexOf(e);t>-1&&this.middlewares.splice(t,1);}log(e){this.middlewares.forEach(t=>{try{t.handle(e);}catch(n){console.warn("[EventLogger] Middleware error:",n);}});}logChatAction(e,t){this.log({action:`chat_${e}`,category:"engagement",customParams:{timestamp:Date.now(),...t}});}logButtonClick(e,t,n){let r={action:`${e}_button_clicked`,category:"user_interaction",customParams:{timestamp:Date.now(),...n}};t!==void 0&&(r.label=t),this.log(r);}logSDKInitialization(e,t,n){let r=Date.now()-t,s={action:"sdk_initialization",category:"system",label:e?"success":"failure",value:r,customParams:{timestamp:Date.now(),...n&&{error:n}}};this.log(s);}};var _e="_1mnmljf6",Ie="_1mnmljf7",Ce="_1mnmljf8";var Te="_1mnmljf9";var $e="_1mnmljfa";var S=15;function We({htmlString:i,callback:e,containerRect:t}){let n=document.createElement("div");n.className=Te;let r=document.createElement("div");if(r.className=$e,t){let c=t.left-S;r.style.top=`${t.top}px`,r.style.left="unset",r.style.bottom="unset",c<S?(r.style.left=`${t.right+S}px`,r.style.right="unset"):r.style.right=`${window.innerWidth-c}px`;}else r.style.top="50px",r.style.right=`${S+340+24}px`,r.style.left="unset",r.style.bottom="unset";r.style.maxHeight="calc(100vh - 116px)";let s=document.createElement("div");s.innerHTML=i,n.addEventListener("click",()=>{document.body.removeChild(n),document.body.removeChild(r),e();}),r.addEventListener("click",c=>{c.stopPropagation();}),r.appendChild(s),document.body.appendChild(n),document.body.appendChild(r);let u=document.querySelector(`.${_e}`),a=document.querySelector(".cw-plugin-code-block"),l=document.querySelector(`.${Ce}`),p=document.querySelector(`.${Ie}`);u&&a&&l&&p&&u.addEventListener("click",()=>{navigator.clipboard.writeText(a.textContent??""),l.style.display="none",p.textContent="\uBCF5\uC0AC\uB428",setTimeout(()=>{p.textContent="\uBCF5\uC0AC",l.style.display="inline";},1e3);});}var Ae=We;var K=class{constructor({apiKey:e}){o(this,"apiKey");o(this,"iframeBridge");o(this,"events");o(this,"eventLogger");o(this,"container");o(this,"button");o(this,"alarm");o(this,"containerVisible");o(this,"isPdfOpen");o(this,"_isInitialized",false);this.apiKey=e,this.eventLogger=new P,this.setupEventLogger(),this.iframeBridge=new A({hostOrigin:window.location.origin,apiKey:this.apiKey,eventLogger:this.eventLogger}),this.events=new j(this.iframeBridge),this.button=new ee,this.alarm=new me,this.container=new N,this.containerVisible="closed",this.isPdfOpen=false;}get isOpen(){return this.containerVisible==="open"}get isInitialized(){return this._isInitialized}async init({buttonId:e,course:t,container:n}){if(this._isInitialized){this.eventLogger.log({action:"sdk_already_initialized",category:"warning",customParams:{timestamp:Date.now()}});return}let r=Date.now();try{await this.validateEnvironment(),await this.setupContainer(n),await Promise.all([this.setupButton(e),this.iframeBridge.ensureIframe(this.container.element)]),this.setupEventListeners(n),await this.iframeBridge.performHandshake({course:t,...n&&{container:n}}),this._isInitialized=!0,this.eventLogger.logSDKInitialization(!0,r);}catch(s){let u=s instanceof Error?s.message:"Unknown error";throw this.eventLogger.logSDKInitialization(false,r,u),s}}destroy(){if(!this._isInitialized){this.eventLogger.log({action:"sdk_destroy_not_initialized",category:"warning",customParams:{timestamp:Date.now()}});return}N.resetInstance(),this.alarm.remove(),this.iframeBridge.removeIframe(),this.containerVisible="closed",this._isInitialized=false;}setupEventLogger(){if(typeof window>"u"||typeof localStorage>"u")return;localStorage.getItem("tap-environment")==="local"?this.eventLogger.addMiddleware(new O(true)):this.eventLogger.addMiddleware(new D);}toggleChatOpen(){let e=this.containerVisible==="open"?"chat:close":"chat:open";try{this.iframeBridge.postToTap({type:e})||this.eventLogger.log({action:"chat_message_send_failed",category:"error",label:e,customParams:{timestamp:Date.now()}});}catch(t){this.eventLogger.log({action:"chat_message_send_error",category:"error",customParams:{messageType:e,error:t instanceof Error?t.message:"Unknown error",timestamp:Date.now()}});}}async validateEnvironment(){if(typeof window>"u"||typeof document>"u")throw new Error("Not running in client environment: window is not defined")}async setupContainer(e){if(this.container.element)this.updateContainerStyles(e);else if(!this.container.createContainer({...e&&{customContainer:e}}))throw new Error("Failed to create container")}updateContainerStyles(e){e&&this.container.updateStyles(e);}async setupButton(e){let t=this.button.create(e);this.button.onClick(async()=>{await this.iframeBridge.ensureIframe(this.container.element);let n=this.containerVisible==="open"?"open":"closed";this.eventLogger.logButtonClick("toggle",n),this.toggleChatOpen();}),this.alarm.render({rootElement:t}),this.alarm.onAlarmClick(n=>{this.eventLogger.logButtonClick("alarm"),this.iframeBridge.postToTap({type:"chat:open",isAlarm:true}),this.iframeBridge.postToTap({type:"alarm:click",messageInfo:n});});}setupEventListeners(e){this.iframeBridge.listenToTap("chat:opened",()=>{this.containerVisible="open",this.container.toggleVisibility(this.containerVisible==="open"),this.alarm.remove(),this.eventLogger.logChatAction("opened");}),this.iframeBridge.listenToTap("chat:closed",()=>{this.containerVisible="closed",this.container.toggleVisibility(false),this.eventLogger.logChatAction("closed");}),this.iframeBridge.listenToTap("alarm:fadeIn",t=>{this.containerVisible!=="open"&&this.alarm.fadeIn(t.messageInfo);}),this.iframeBridge.listenToTap("popUp:open",t=>{let n=this.container.getBoundingClientRect();Ae({htmlString:t.popUpInfo.html,callback:()=>this.iframeBridge.postToTap({type:"popUp:close"}),containerRect:n});}),this.iframeBridge.listenToTap("pdf:open",()=>{this.isPdfOpen=true,this.container.resizeContainer(this.isPdfOpen,e);}),this.iframeBridge.listenToTap("pdf:close",()=>{this.isPdfOpen=false,this.container.resizeContainer(this.isPdfOpen,e);});}updateStyles(e){if(!this._isInitialized){console.warn("SDK not initialized. Call init() first.");return}this.updateContainerStyles(e);}setContainerSize(e,t){if(!this._isInitialized){console.warn("SDK not initialized. Call init() first.");return}this.container.setDynamicSize(e,t);}animateContainerResize(e,t,n){if(!this._isInitialized){console.warn("SDK not initialized. Call init() first.");return}this.container.animateResize(e,t,n);}setResponsiveMode(e){if(!this._isInitialized){console.warn("SDK not initialized. Call init() first.");return}this.container.setResponsiveMode(e);}async initChat(e){return this.init(e)}postChatInfo({clipId:e,clipPlayHead:t}){this.events.seekTimeline({clipId:e,clipPlayHead:t});}getTimelineInfo({callback:e}){this.events.onTimelineSeek(e);}},Kt=K;return Kt;})();//# sourceMappingURL=index.global.js.map
23
+ `,document.head.appendChild(n);}}handle(e){typeof window.gtag=="function"?window.gtag("event",e.action,{event_category:e.category,event_label:e.label,value:e.value,...e.customParams}):this.gaId&&console.warn("[GAMiddleware] gtag not available, event queued:",e);}},O=class{constructor(e=false){this.enabled=e;}handle(e){this.enabled&&console.log("[TapSDK Event]",e);}},P=class{constructor(){o(this,"middlewares",[]);}addMiddleware(e){this.middlewares.push(e);}removeMiddleware(e){let t=this.middlewares.indexOf(e);t>-1&&this.middlewares.splice(t,1);}log(e){this.middlewares.forEach(t=>{try{t.handle(e);}catch(n){console.warn("[EventLogger] Middleware error:",n);}});}logChatAction(e,t){this.log({action:`chat_${e}`,category:"engagement",customParams:{timestamp:Date.now(),...t}});}logButtonClick(e,t,n){let r={action:`${e}_button_clicked`,category:"user_interaction",customParams:{timestamp:Date.now(),...n}};t!==void 0&&(r.label=t),this.log(r);}logSDKInitialization(e,t,n){let r=Date.now()-t,s={action:"sdk_initialization",category:"system",label:e?"success":"failure",value:r,customParams:{timestamp:Date.now(),...n&&{error:n}}};this.log(s);}};var _e="_1mnmljf6",Ie="_1mnmljf7",Ce="_1mnmljf8";var Te="_1mnmljf9";var $e="_1mnmljfa";var S=15;function We({htmlString:i,callback:e,containerRect:t}){let n=document.createElement("div");n.className=Te;let r=document.createElement("div");if(r.className=$e,t){let c=t.left-S;r.style.top=`${t.top}px`,r.style.left="unset",r.style.bottom="unset",c<S?(r.style.left=`${t.right+S}px`,r.style.right="unset"):r.style.right=`${window.innerWidth-c}px`;}else r.style.top="50px",r.style.right=`${S+340+24}px`,r.style.left="unset",r.style.bottom="unset";r.style.maxHeight="calc(100vh - 116px)";let s=document.createElement("div");s.innerHTML=i,n.addEventListener("click",()=>{document.body.removeChild(n),document.body.removeChild(r),e();}),r.addEventListener("click",c=>{c.stopPropagation();}),r.appendChild(s),document.body.appendChild(n),document.body.appendChild(r);let u=document.querySelector(`.${_e}`),a=document.querySelector(".cw-plugin-code-block"),l=document.querySelector(`.${Ce}`),p=document.querySelector(`.${Ie}`);u&&a&&l&&p&&u.addEventListener("click",()=>{navigator.clipboard.writeText(a.textContent??""),l.style.display="none",p.textContent="\uBCF5\uC0AC\uB428",setTimeout(()=>{p.textContent="\uBCF5\uC0AC",l.style.display="inline";},1e3);});}var Ae=We;var K=class{constructor({apiKey:e}){o(this,"apiKey");o(this,"iframeBridge");o(this,"events");o(this,"eventLogger");o(this,"container");o(this,"button");o(this,"alarm");o(this,"containerVisible");o(this,"isPdfOpen");o(this,"_isInitialized",false);this.apiKey=e,this.eventLogger=new P,this.setupEventLogger(),this.iframeBridge=new A({hostOrigin:window.location.origin,apiKey:this.apiKey,eventLogger:this.eventLogger}),this.events=new j(this.iframeBridge),this.button=new ee,this.alarm=new me,this.container=new N,this.containerVisible="closed",this.isPdfOpen=false;}get isOpen(){return this.containerVisible==="open"}get isInitialized(){return this._isInitialized}async init({buttonId:e,course:t,container:n}){if(this._isInitialized){this.eventLogger.log({action:"sdk_already_initialized",category:"warning",customParams:{timestamp:Date.now()}});return}let r=Date.now();try{await this.validateEnvironment(),await this.setupContainer(n),await Promise.all([this.setupButton(e),this.iframeBridge.ensureIframe(this.container.element)]),this.setupEventListeners(n),await this.iframeBridge.performHandshake({course:t,...n&&{container:n}}),this._isInitialized=!0,this.eventLogger.logSDKInitialization(!0,r);}catch(s){let u=s instanceof Error?s.message:"Unknown error";throw this.eventLogger.logSDKInitialization(false,r,u),s}}destroy(){if(!this._isInitialized){this.eventLogger.log({action:"sdk_destroy_not_initialized",category:"warning",customParams:{timestamp:Date.now()}});return}N.resetInstance(),this.alarm.remove(),this.iframeBridge.removeIframe(),this.containerVisible="closed",this._isInitialized=false;}setupEventLogger(){if(typeof window>"u"||typeof localStorage>"u")return;localStorage.getItem("tap-environment")==="local"?this.eventLogger.addMiddleware(new O(true)):this.eventLogger.addMiddleware(new D);}toggleChatOpen(){let e=this.containerVisible==="open"?"chat:close":"chat:open";try{this.iframeBridge.postToTap({type:e})||this.eventLogger.log({action:"chat_message_send_failed",category:"error",label:e,customParams:{timestamp:Date.now()}});}catch(t){this.eventLogger.log({action:"chat_message_send_error",category:"error",customParams:{messageType:e,error:t instanceof Error?t.message:"Unknown error",timestamp:Date.now()}});}}async validateEnvironment(){if(typeof window>"u"||typeof document>"u")throw new Error("Not running in client environment: window is not defined")}async setupContainer(e){if(this.container.element)this.updateContainerStyles(e);else if(!this.container.createContainer({...e&&{customContainer:e}}))throw new Error("Failed to create container")}updateContainerStyles(e){e&&this.container.updateStyles(e);}async setupButton(e){let t=this.button.create(e);this.button.onClick(async()=>{await this.iframeBridge.ensureIframe(this.container.element);let n=this.containerVisible==="open"?"open":"closed";this.eventLogger.logButtonClick("toggle",n),this.toggleChatOpen();}),this.alarm.render({rootElement:t}),this.alarm.onAlarmClick(n=>{this.eventLogger.logButtonClick("alarm"),this.iframeBridge.postToTap({type:"chat:open",isAlarm:true}),this.iframeBridge.postToTap({type:"alarm:click",messageInfo:n});});}setupEventListeners(e){this.iframeBridge.listenToTap("chat:opened",()=>{this.containerVisible="open",this.container.toggleVisibility(this.containerVisible==="open"),this.alarm.remove(),this.eventLogger.logChatAction("opened");}),this.iframeBridge.listenToTap("chat:closed",()=>{this.containerVisible="closed",this.container.toggleVisibility(false),this.eventLogger.logChatAction("closed");}),this.iframeBridge.listenToTap("alarm:fadeIn",t=>{this.containerVisible!=="open"&&this.alarm.fadeIn(t.messageInfo);}),this.iframeBridge.listenToTap("popUp:open",t=>{let n=this.container.getBoundingClientRect();Ae({htmlString:t.popUpInfo.html,callback:()=>this.iframeBridge.postToTap({type:"popUp:close"}),containerRect:n});}),this.iframeBridge.listenToTap("pdf:open",()=>{this.isPdfOpen=true,this.container.resizeContainer(this.isPdfOpen,e),this.iframeBridge.postToTap({type:"pdf:enlarged"});}),this.iframeBridge.listenToTap("pdf:close",()=>{this.isPdfOpen=false,this.container.resizeContainer(this.isPdfOpen,e),this.iframeBridge.postToTap({type:"pdf:shrinked"});});}updateStyles(e){if(!this._isInitialized){console.warn("SDK not initialized. Call init() first.");return}this.updateContainerStyles(e);}setContainerSize(e,t){if(!this._isInitialized){console.warn("SDK not initialized. Call init() first.");return}this.container.setDynamicSize(e,t);}animateContainerResize(e,t,n){if(!this._isInitialized){console.warn("SDK not initialized. Call init() first.");return}this.container.animateResize(e,t,n);}setResponsiveMode(e){if(!this._isInitialized){console.warn("SDK not initialized. Call init() first.");return}this.container.setResponsiveMode(e);}async initChat(e){return this.init(e)}postChatInfo({clipId:e,clipPlayHead:t}){this.events.seekTimeline({clipId:e,clipPlayHead:t});}getTimelineInfo({callback:e}){this.events.onTimelineSeek(e);}},Kt=K;return Kt;})();//# sourceMappingURL=index.global.js.map
24
24
  //# sourceMappingURL=index.global.js.map