UNPKG

zmp-sdk

Version:

Zalo Mini App SDK

2 lines (1 loc) 2.83 kB
import t from'./../external/@swc/helpers/src/_async_to_generator.mjs.js';import e from'./../external/@swc/helpers/src/_object_without_properties.mjs.js';import o from'./../external/@swc/helpers/src/_sliced_to_array.mjs.js';import n,{object as r,string as i}from'./../external/zod/lib/index.mjs.js';import s from"../appEnv/index.js";import a from"../common/notFound.js";import{functionHandler as c}from"../utils/decorator.js";import l from"../common/token.js";import{getAccessToken as u}from"./getAccessToken.js";import{__generator as d}from'./../external/tslib/tslib.es6.js';var m=[r({id:i(),type:i(),text:i(),color:i().optional(),disabled:n.boolean().optional(),onDataReceived:n.function().optional(),onError:n.function().optional()})];function p(t){return f.apply(this,arguments)}function f(){return f=t((function(n){return d(this,(function(r){return[2,c("showFunctionButtonWidget",m,[n],(i=t((function(n){var r,i,c,m,p,f,h;return d(this,(function(y){if(s.isMp){try{r=document.getElementById(n.id),i=n.onDataReceived,c=n.onError,m=e(n,["onDataReceived","onError"]),r&&(p=document.createElement("iframe"),f="iframeFunctionButtonWidget".concat(Date.now()),(h=new URL("https://h5.zalo.me/widgets/function_button_widget.html")).searchParams.set("id",f),Object.entries(m).forEach((function(t){var e=o(t,2),n=e[0],r=e[1];r&&h.searchParams.set("data-".concat(n),String(r))})),p.id=f,p.src=h.href,p.style.width="100%",p.style.height="100%",p.style.border="none",Object.entries(m).forEach((function(t){var e=o(t,2),n=e[0],r=e[1];r&&p.setAttribute("data-".concat(n),String(r))})),r.innerHTML=p.outerHTML,window.addEventListener("message",function(){var e=t((function(t){var e,o,n,r,s,a,p,y,v,g,j,w;return d(this,(function(d){switch(d.label){case 0:return e=t.data,t.origin.startsWith("https://h5.zalo.me")?(o=document.getElementById(f),n=e.type,(r=new URL(e.href)).origin!==h.origin||r.pathname!==h.pathname||e.id!==f?[3,4]:"buttonClicked"!==n?[3,3]:[4,l.jumpAndGetToken()]):[3,4];case 1:return d.sent(),y=null===(s=l.miniProgramConfig)||void 0===s?void 0:s.jwt,v=null===(a=l.miniProgramConfig)||void 0===a?void 0:a.encryptKey,[4,u()];case 2:return g=d.sent(),null==o||null===(p=o.contentWindow)||void 0===p||p.postMessage({type:n,payload:{jwt:y,encryptKey:v,accessToken:g}},"*"),[3,4];case 3:"onSuccess"===n?(null==(j=e.payload)?void 0:j.type)===m.type&&(null==i||i(null==j?void 0:j.data)):"onError"===n&&(null==(w=e.payload)?void 0:w.type)===m.type&&(null==c||c(null==w?void 0:w.data)),d.label=4;case 4:return[2]}}))}));return function(t){return e.apply(this,arguments)}}(),!1))}catch(t){console.log(t)}return[2,Promise.resolve()]}return s.isMpWeb?[2,Promise.resolve()]:[2,Promise.reject(a("openMiniApp",{}))]}))})),function(t){return i.apply(this,arguments)}))];var i}))})),f.apply(this,arguments)}export{p as showFunctionButtonWidget};