-export const webViewBridge: string = "class e{constructor(){this.t={}}onNativeEvent(e,t){const n=this.t[e];if(null==n?void 0:n.length)for(const e of n)if(!1===(null==e?void 0:e(t)))break}on(e,t){if(!t)return;let n=this.t[e];n||(n=this.t[e]=[]),n.push(t)}addEventListener(e,t){this.on(e,t)}off(e,t){if(!e)return void(this.t={});let n=this.t[e];n&&(t?(n=this.t[e]=n.filter((e=>e!==t)),0===n.length&&delete this.t[e]):delete this.t[e])}removeEventListener(e,t){return this.off(e,t)}emit(e,t){this.emitEvent(e,JSON.stringify(t))}async injectJavaScriptFile(e){const t=this.elementIdFromHref(e);if(!document.getElementById(t))return new Promise(((n,i)=>{const r=document.createElement(\"script\");r.async=!0,r.setAttribute(\"id\",t),r.addEventListener(\"error\",(e=>{i(this.serializeError(e)),r.parentElement&&r.parentElement.removeChild(r)})),r.addEventListener(\"load\",(function(){window.requestAnimationFrame((()=>{n()})),r.parentElement&&r.parentElement.removeChild(r)})),r.src=e,document.body.appendChild(r)}))}async injectJavaScript(e,t){if(!document.getElementById(e))return new Promise(((n,i)=>{const r=document.createElement(\"script\");r.setAttribute(\"id\",e),r.addEventListener(\"error\",(function(e){i(e),r.parentElement&&r.parentElement.removeChild(r)})),r.text=t,document.body.appendChild(r),window.requestAnimationFrame((()=>n()))}))}async injectStyleSheetFile(e,t){const n=this.elementIdFromHref(e);if(!document.getElementById(n))return new Promise(((i,r)=>{const o=document.createElement(\"link\");o.addEventListener(\"error\",(e=>{r(e),o.parentElement&&o.parentElement.removeChild(o)})),o.addEventListener(\"load\",(()=>{window.requestAnimationFrame((()=>{i()}))})),o.setAttribute(\"id\",n),o.setAttribute(\"rel\",\"stylesheet\"),o.setAttribute(\"type\",\"text/css\"),o.setAttribute(\"href\",e),document.head&&(t&&document.head.childElementCount>0?document.head.insertBefore(o,document.head.firstElementChild):document.head.appendChild(o))}))}async injectStyleSheet(e,t,n){if(!document.getElementById(e))return new Promise(((i,r)=>{var o;const s=document.createElement(\"style\");s.addEventListener(\"error\",r),s.textContent=t,s.setAttribute(\"id\",e);const d=null!==(o=document.head)&&void 0!==o?o:document.body;d?(n&&d.childElementCount>0?document.head.insertBefore(s,d.firstElementChild):document.head.appendChild(s),i()):r(new Error(\"Couldn't find parent element\"))}))}async executePromise(e,t){try{const n=await e;this.emit(t,{data:n})}catch(e){this.emitError(e,t)}}emitError(e,t=\"web-error\"){\"object\"==typeof e&&(null==e?void 0:e.message)?this.emit(t,{err:this.serializeError(e)}):this.emit(t,{err:e})}elementIdFromHref(e){return e.replace(/^[:]*:\\/\\//,\"\").replace(/[^a-z0-9]/g,\"\")}serializeError(e){const{name:t,message:n,stack:i,...r}=e;return Object.keys(r).reduce(((e,t)=>{const n=r[t];return n instanceof HTMLElement||(e[t]=n),e}),{name:t,message:n,stack:i})}}class t extends e{get androidWebViewBridge(){if(\"undefined\"!=typeof androidWebViewBridge)return androidWebViewBridge}emitEvent(e,t){this.androidWebViewBridge.emitEvent(e,t)}}const n=\"ns-bridge-ready\",i=window;if(!i.nsWebViewBridge){i.nsWebViewBridge=new t;for(const e of[n,\"ns-brige-ready\"])\"undefined\"!=typeof CustomEvent?window.dispatchEvent(new CustomEvent(e,{detail:i.nsWebViewBridge})):window.dispatchEvent(new Event(e))}";
0 commit comments