@jolibox/implement 1.1.12 → 1.1.13-beta.10

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.
Files changed (85) hide show
  1. package/.rush/temp/package-deps_build.json +35 -41
  2. package/.rush/temp/shrinkwrap-deps.json +1 -1
  3. package/dist/common/ads/anti-cheating.d.ts +5 -0
  4. package/dist/common/context/index.d.ts +5 -0
  5. package/dist/common/context/url-parse.d.ts +8 -1
  6. package/dist/common/rewards/__tests__/can-use-jolicoin.test.d.ts +1 -0
  7. package/dist/common/rewards/fetch-reward.d.ts +2 -0
  8. package/dist/common/rewards/index.d.ts +18 -0
  9. package/dist/common/rewards/registers/use-ads.d.ts +3 -0
  10. package/dist/common/rewards/registers/use-jolicoin.d.ts +9 -0
  11. package/dist/common/rewards/registers/utils/index.d.ts +2 -0
  12. package/dist/common/rewards/reward-helper.d.ts +14 -0
  13. package/dist/common/rewards/type.d.ts +23 -0
  14. package/dist/common/utils/index.d.ts +7 -0
  15. package/dist/index.js +3 -3
  16. package/dist/index.native.js +131 -4
  17. package/dist/native/api/index.d.ts +1 -0
  18. package/dist/native/api/keyboard.d.ts +1 -1
  19. package/dist/native/api/navigate.d.ts +1 -0
  20. package/dist/native/network/create-fetch.d.ts +1 -0
  21. package/dist/native/ui/retention.d.ts +1 -0
  22. package/implement.build.log +2 -2
  23. package/package.json +5 -3
  24. package/src/common/ads/anti-cheating.test.ts +4 -2
  25. package/src/common/ads/anti-cheating.ts +12 -4
  26. package/src/common/ads/index.ts +51 -33
  27. package/src/common/context/index.ts +22 -3
  28. package/src/common/context/url-parse.ts +24 -1
  29. package/src/common/rewards/__tests__/can-use-jolicoin.test.ts +94 -0
  30. package/src/common/rewards/fetch-reward.ts +33 -0
  31. package/src/common/rewards/index.ts +20 -0
  32. package/src/common/rewards/registers/use-ads.ts +9 -0
  33. package/src/common/rewards/registers/use-jolicoin.ts +89 -0
  34. package/src/common/rewards/registers/utils/index.ts +11 -0
  35. package/src/common/rewards/reward-helper.ts +56 -0
  36. package/src/common/rewards/type.ts +25 -0
  37. package/src/common/utils/index.ts +7 -0
  38. package/src/h5/api/ads.ts +20 -1
  39. package/src/h5/api/get-system-info.ts +1 -1
  40. package/src/h5/http/utils/__tests__/xua.test.ts +1 -1
  41. package/src/native/api/ads.ts +31 -3
  42. package/src/native/api/get-system-info.ts +2 -2
  43. package/src/native/api/index.ts +1 -0
  44. package/src/native/api/keyboard.ts +1 -1
  45. package/src/native/api/lifecycle.ts +16 -4
  46. package/src/native/api/login.ts +1 -1
  47. package/src/native/api/navigate.ts +61 -0
  48. package/src/native/api/request.ts +19 -10
  49. package/src/native/api/storage.ts +1 -1
  50. package/src/native/bootstrap/index.ts +111 -27
  51. package/src/native/network/create-fetch.ts +7 -2
  52. package/src/native/network/utils.ts +13 -6
  53. package/src/native/report/errors/index.ts +1 -1
  54. package/src/native/report/index.ts +1 -1
  55. package/src/native/report/task-tracker.ts +1 -1
  56. package/src/native/ui/retention.ts +153 -0
  57. package/dist/native/bootstrap/bridge.d.ts +0 -4
  58. package/dist/native/js-bridge/const.d.ts +0 -5
  59. package/dist/native/js-bridge/index.d.ts +0 -2
  60. package/dist/native/js-bridge/invoke.d.ts +0 -21
  61. package/dist/native/js-bridge/js-bridge.d.ts +0 -6
  62. package/dist/native/js-bridge/report.d.ts +0 -63
  63. package/dist/native/js-bridge/subscribe.d.ts +0 -8
  64. package/dist/native/js-bridge/types.d.ts +0 -14
  65. package/dist/native/js-bridge/utils.d.ts +0 -17
  66. package/dist/native/js-core/index.d.ts +0 -3
  67. package/dist/native/js-core/jolibox-js-core.d.ts +0 -45
  68. package/dist/native/js-core/message-port.d.ts +0 -12
  69. package/dist/native/js-core/utils.d.ts +0 -7
  70. package/src/native/bootstrap/bridge.ts +0 -59
  71. package/src/native/js-bridge/const.ts +0 -11
  72. package/src/native/js-bridge/index.ts +0 -2
  73. package/src/native/js-bridge/invoke.ts +0 -208
  74. package/src/native/js-bridge/js-bridge.ts +0 -23
  75. package/src/native/js-bridge/report.ts +0 -311
  76. package/src/native/js-bridge/subscribe.ts +0 -50
  77. package/src/native/js-bridge/types.ts +0 -26
  78. package/src/native/js-bridge/utils.ts +0 -116
  79. package/src/native/js-core/index.ts +0 -4
  80. package/src/native/js-core/jolibox-js-core.ts +0 -188
  81. package/src/native/js-core/message-port.ts +0 -52
  82. package/src/native/js-core/utils.ts +0 -9
  83. package/src/native/types/global.d.ts +0 -26
  84. package/src/native/types/native-method-map.d.ts +0 -300
  85. package/src/native/types/native-method.d.ts +0 -30
@@ -1,4 +1,4 @@
1
- var lo=Object.create;var Ae=Object.defineProperty,uo=Object.defineProperties,mo=Object.getOwnPropertyDescriptor,po=Object.getOwnPropertyDescriptors,fo=Object.getOwnPropertyNames,Re=Object.getOwnPropertySymbols,ho=Object.getPrototypeOf,vt=Object.prototype.hasOwnProperty,ar=Object.prototype.propertyIsEnumerable;var ir=(e,t,r)=>t in e?Ae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,y=(e,t)=>{for(var r in t||(t={}))vt.call(t,r)&&ir(e,r,t[r]);if(Re)for(var r of Re(t))ar.call(t,r)&&ir(e,r,t[r]);return e},x=(e,t)=>uo(e,po(t));var ae=(e,t)=>{var r={};for(var n in e)vt.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Re)for(var n of Re(e))t.indexOf(n)<0&&ar.call(e,n)&&(r[n]=e[n]);return r};var g=(e,t)=>()=>(e&&(t=e(e=0)),t);var cr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),lr=(e,t)=>{for(var r in t)Ae(e,r,{get:t[r],enumerable:!0})},go=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of fo(t))!vt.call(e,o)&&o!==r&&Ae(e,o,{get:()=>t[o],enumerable:!(n=mo(t,o))||n.enumerable});return e};var dr=(e,t,r)=>(r=e!=null?lo(ho(e)):{},go(t||!e||!e.__esModule?Ae(r,"default",{value:e,enumerable:!0}):r,e));var b=(e,t,r)=>new Promise((n,o)=>{var s=l=>{try{a(r.next(l))}catch(d){o(d)}},i=l=>{try{a(r.throw(l))}catch(d){o(d)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,i);a((r=r.apply(e,t)).next())});function yo(e){return!!(e!=null&&e.__nativeBuffers__)}function ke(e){if(typeof e=="string")try{e=JSON.parse(e)}catch(r){return{}}if(typeof e!="object"||e===null)return{};if(!yo(e))return e;let t=e.__nativeBuffers__;if(delete e.__nativeBuffers__,t)for(let r=0;r<t.length;r++){let n=t[r];if(n){let o;n.value?o=n.value:n.base64&&(o=vo(n.base64)),typeof o!="undefined"&&o instanceof ArrayBuffer&&(e[n.key]=o)}}return e}function ur(e={},t=!1){let r=e,n=[];for(let[o,s]of Object.entries(r))if(s!==void 0&&s instanceof ArrayBuffer&&s.byteLength!==void 0){let i=t?{value:s,key:o}:{base64:bo(s),key:o};n.push(i),delete r[o]}return n.length>0&&(r.__nativeBuffers__=n),r}var vo,bo,bt=g(()=>{"use strict";vo=e=>{let t=atob(e),r=t.length,n=new Uint8Array(r);for(let o=0;o<r;o++)n[o]=t.charCodeAt(o);return n.buffer};bo=e=>{let t="",r=new Uint8Array(e),n=r.byteLength;for(let o=0;o<n;o++)t+=String.fromCharCode(r[o]);return btoa(t)}});function Eo(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function ce(e){return typeof e=="string"}function M(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function hr(e){return typeof e=="object"&&Array.isArray(e)}function gr(e){return e===!0||e===!1}function So(e){return typeof e>"u"}function Io(e){return So(e)||e===null}function yr(e){return typeof e=="function"}function vr(e){return M(e)&&yr(e.then)}function br(e){let t=e,r=null,n=function(...o){return r||(r=new t(...o)),r};return n.prototype=t.prototype,n}function kr(e,t,r){if(typeof r!="function")throw new Error("[Jolibox SDK]Customizer must be a function");function n(o,s){for(let i in s)if(Object.prototype.hasOwnProperty.call(s,i)){let a=o[i],l=s[i],d=r(a,l,i,o,s);d!==void 0?o[i]=d:mr(l)&&mr(a)?o[i]=n(y({},a),l):Array.isArray(l)&&Array.isArray(a)?o[i]=[...a,...l]:o[i]=l}return o}return n(e,t)}function mr(e){return e&&typeof e=="object"&&e.constructor===Object}function Tr(e,t){if(Array.isArray(e))return e.concat(t)}function Se(e,t,r={}){let n=null,o,s,i,{leading:a=!1,trailing:l=!0}=r,d=()=>(i=e.apply(s,o),o=void 0,s=void 0,i),c=function(...m){o=m,s=this;let p=a&&!n;if(n&&clearTimeout(n),n=setTimeout(()=>{n=null,l&&!p&&d()},t),p)return d()};return c.cancel=()=>{n&&clearTimeout(n),n=null,o=s=void 0},c.flush=()=>{if(n)return clearTimeout(n),n=null,d()},c}function Ro(e,t){return(...r)=>t(e,...r)}function Oe(e){return t=>Ro(t,function(r,...n){if(typeof r=="function")try{return r.apply(this,n)}catch(o){e(new _o(`${o}`))}})}function Te(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}function Ho(e){return new Promise(t=>Nr(e)(t))}function Nr(e){return(t,r=null)=>{let n=!1;return e(o=>{if(!n)return n=!0,t.call(r,o)},null)}}function Jo(e,t){return(r=>{let n,o={onWillAddFirstListener(){n=r(s.fire,s)}},s=new Ee(o);return s.event})((r,n=null)=>e(o=>t(o)&&r.call(n,o),null))}function $o(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)Ko(e[n],t[n])}function Ko(e,t){if(ce(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(yr(t)){try{if(e instanceof t)return}catch(r){}if(!Io(e)&&e.constructor===t||t.length===1&&t.call(void 0,e)===!0)return;throw new Error("[Jolibox SDK]argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function O(){if(globalThis[Tt])return globalThis[Tt];let e=new Pe,t=new St,r={registerCommand(n,o,s){e.registerCommand({id:n,handler:o,metadata:s})},executeCommand(n,...o){return t.executeCommand(n,...o)},excuteCommandSync(n,...o){return t.executeCommandThowErr(n,...o)}};return globalThis[Tt]=r,r}var pr,ko,To,fr,ne,wo,It,le,Er,Sr,_o,Ir,wr,_r,Rr,Ar,Ie,Ne,wt,j,xr,Ao,_t,xo,Rt,Co,Po,xe,No,Oo,Do,Cr,At,Fo,Uo,Mo,Pr,X,R,Lo,Bo,Ce,Ee,z,Et,jo,kt,Vo,Z,Pe,St,Tt,S=g(()=>{"use strict";pr=Object.defineProperty,ko=Object.getOwnPropertyDescriptor,To=(e,t)=>{for(var r in t)pr(e,r,{get:t[r],enumerable:!0})},fr=(e,t,r,n)=>{for(var o=n>1?void 0:n?ko(t,r):t,s=e.length-1,i;s>=0;s--)(i=e[s])&&(o=(n?i(t,r,o):i(o))||o);return n&&o&&pr(t,r,o),o};ne=class{constructor(){this.state="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.state==="pending"&&(this.state="fulfilled",e(r))},this.reject=r=>{this.state==="pending"&&(this.state="rejected",t(r))}})}};wo=(e=>(e[e.DEVELOPER_FILE_NOT_FOUND=0]="DEVELOPER_FILE_NOT_FOUND",e[e.INTERNAL_IOS_CAN_NOT_FOUND_PKG=1]="INTERNAL_IOS_CAN_NOT_FOUND_PKG",e[e.USER_IOS_LOAD_TIMEOUT=2]="USER_IOS_LOAD_TIMEOUT",e[e.INTERNAL_IOS_PKG_LOAD_ERROR=3]="INTERNAL_IOS_PKG_LOAD_ERROR",e[e.INTERNAL_IOS_PKG_PARSE_FAIL=4]="INTERNAL_IOS_PKG_PARSE_FAIL",e[e.USER_IOS_GET_EMPTY_DATA=5]="USER_IOS_GET_EMPTY_DATA",e[e.USER_ANDROID_GET_PKG_FAIL=6]="USER_ANDROID_GET_PKG_FAIL",e[e.DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE=7]="DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE",e))(wo||{}),It=class extends Error{constructor(e){if(typeof e=="string"){super(e),this.priority="P1";return}super(e.message),this.priority="P1",this.stack=e.stack,this.raw=e}},le=class extends It{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}},Er=class extends It{constructor(){super(...arguments),this.kind="USER_ERROR"}},Sr=class extends Er{constructor(){super(...arguments),this.name="USER_VALIDATE_ERROR"}},_o=class extends Er{constructor(e,t,r){super(e),this.message=e,this.errNo=t,this.name="USER_CUSTOM_ERROR",this.errMsg=e,r&&(this.extra=Object.assign({},this.extra,r))}},Ir=class extends le{constructor(){super(...arguments),this.name="INTERNAL_SCHEMA_PARSE_ERROR",this.priority="P0"}},wr=class extends le{constructor(){super(...arguments),this.name="INTERNAL_INVOKE_NATIVE_ERROR"}},_r=class extends le{constructor(e,t,r,n){super(e),this.errNo=t,this.name="INTERNAL_APPLY_NATIVE_ERROR",this.errorType=r,this.errorCode=n}},Rr=class extends le{constructor(){super(...arguments),this.name="INTERNAL_JSCORE_ERROR",this.priority="P0"}},Ar=class extends le{constructor(){super(...arguments),this.name="INTERNAL_GLOBAL_JS_ERROR",this.priority="P1"}},Ie=class extends It{constructor(e,t,r,n,o){super(e),this.message=e,this.code=t,this.kind="API_ERROR",this.name="API_ERROR",r&&(this.errorType=r),n!==void 0&&(this.stack=n),o&&(this.priority=o)}toJSON(){return{message:this.message,stack:this.stack,name:this.name,code:this.code,errorType:this.errorType}}},Ne=class extends le{constructor(){super(...arguments),this.name="INTERNAL_METRIC_REPORT_ERROR"}},wt=class extends le{constructor(){super(...arguments),this.name="INTERNAL_REPORTER_ERROR"}};j={log:Te("log"),warn:Te("warn"),info:Te("info"),error:Te("error"),debug:Te("debug")};Object.assign(globalThis,{logger:j});xr=Symbol.for("Jolibox.canIUseMap"),Ao={};globalThis[xr]=Ao;_t={get config(){return globalThis[xr]}},xo=(e=>(e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(xo||{}),Rt=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(Rt||{}),Co=(e=>(e[e.App=0]="App",e[e.H5=1]="H5",e[e.Weapp=2]="Weapp",e[e.Alipay=3]="Alipay",e[e.Gcash=4]="Gcash",e[e.Dana=5]="Dana",e[e.Umma=6]="Umma",e[e.WebSDK=1e3]="WebSDK",e[e.AppSDK=1001]="AppSDK",e[e.Other=9999]="Other",e))(Co||{}),Po=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)}),xe={isiOS:navigator.userAgent.includes("iPhone")||navigator.userAgent.includes("iPod")||navigator.userAgent.includes("iPad")||navigator.userAgent.includes("iPhone OS"),iosVersion:()=>{let e=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);return[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3]||"0",10)]},isAndroid:navigator.userAgent.includes("Android"),isMac:navigator.userAgent.includes("Mac"),isFacebook:navigator.userAgent.includes("FB_IAB"),isPC:!navigator.userAgent.includes("iPhone")&&!navigator.userAgent.includes("Android")},No=()=>xe.isiOS?"iOS":xe.isAndroid?"Android":xe.isMac?"Mac":xe.isFacebook?"Facebook":"PC",Oo="device_id",Do="advertising_id",Cr=e=>(localStorage.getItem(e)||localStorage.setItem(e,Po()),localStorage.getItem(e)),At=()=>Cr(Oo),Fo=()=>Cr(Do),Uo=e=>e.charAt(0).toUpperCase()+e.slice(1),Mo=()=>{var t;let e=new URLSearchParams(window.location.search);return Uo((t=e.get("utm_source"))!=null?t:"")||"JoliboxSDK"},Pr=e=>{let t="JoliboxWebSDK",r=No(),n=navigator.language,o=At(),s=Fo();return`${t} (${Mo()}${r}; UnknownModel; UnknownSystemVersion; ${n}) uuid/${o} adid/${s} version/${e||""}`},R=(X=class{constructor(t){this.element=t,this.next=X.Undefined,this.prev=X.Undefined}},X.Undefined=new X(void 0),X),Lo=class{constructor(){this._first=R.Undefined,this._last=R.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===R.Undefined}clear(){let e=this._first;for(;e!==R.Undefined;){let t=e.next;e.prev=R.Undefined,e.next=R.Undefined,e=t}this._first=R.Undefined,this._last=R.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new R(e);if(this._first===R.Undefined)this._first=r,this._last=r;else if(t){let o=this._last;this._last=r,r.prev=o,o.next=r}else{let o=this._first;this._first=r,r.next=o,o.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==R.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==R.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==R.Undefined&&e.next!==R.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===R.Undefined&&e.next===R.Undefined?(this._first=R.Undefined,this._last=R.Undefined):e.next===R.Undefined?(this._last=this._last.prev,this._last.next=R.Undefined):e.prev===R.Undefined&&(this._first=this._first.next,this._first.prev=R.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==R.Undefined;)yield e.element,e=e.next}},Bo=0,Ce=class{constructor(e){this.value=e,this.id=Bo++}},Ee=class{constructor(e){this.options=e,this._size=0}dispose(e){var t,r;this._disposed||(this._disposed=!0,this._listeners&&(e?(this._listeners instanceof Ce&&(this._listeners=[this._listeners]),this._listeners=this._listeners.filter(n=>(n==null?void 0:n.value)===e)):(this._listeners=void 0,this._size=0)),(r=(t=this.options)==null?void 0:t.onDidRemoveLastListener)==null||r.call(t))}get event(){var e;return(e=this._event)!=null||(this._event=(t,r)=>{var o,s,i,a,l,d;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let n=new Ce(t);this._listeners?this._listeners instanceof Ce?this._listeners=[this._listeners,n]:this._listeners.push(n):((s=(o=this.options)==null?void 0:o.onWillAddFirstListener)==null||s.call(o,this),this._listeners=n,(a=(i=this.options)==null?void 0:i.onDidFirstListener)==null||a.call(i,this)),(d=(l=this.options)==null?void 0:l.onDidAddListener)==null||d.call(l,this),this._size++}),this._event}_deliver(e,t){var n;if(!e)return;let r=((n=this.options)==null?void 0:n.onListenerError)||Error.constructor;if(!r){e.value(t);return}try{e.value(t)}catch(o){r(o)}}fire(e){this._listeners&&(this._listeners instanceof Ce?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},z=class{constructor(){this.listeners=new Map,this.listerHandlerMap=new WeakMap,this.cachedEventQueue=new Map}on(e,t){var s;let r=(s=this.listeners.get(e))!=null?s:new Ee,n=i=>t(...i.args);this.listerHandlerMap.set(t,n),r.event(n),this.listeners.set(e,r);let o=this.cachedEventQueue.get(e);if(o)for(;o.size>0;)r.fire(y({event:e},o.shift()))}off(e,t){let r=this.listeners.get(e);if(r){let n=this.listerHandlerMap.get(t);r.dispose(n)}}emit(e,...t){let r=this.listeners.get(e);if(r)r.fire({event:e,args:t});else{let n=this.cachedEventQueue.get(e);n||(n=new Lo,this.cachedEventQueue.set(e,n)),n.push({args:t})}}},Et={};To(Et,{None:()=>jo,filter:()=>Jo,once:()=>Nr,toPromise:()=>Ho});jo=()=>{console.log("[Jolibox SDK] None Event")};kt=Symbol.for("Jolibox.hostEmitter"),Vo=()=>{let e=new z;return globalThis[kt]||(globalThis[kt]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e)}),globalThis[kt]},Z=Vo();Pe=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new Ee,this.onDidRegisterCommand=this._onDidRegisterCommand.event,console.log("[Jolibox SDK] command registry")}registerCommand(e){if(!e)throw new Error("invalid command");if(e.metadata&&Array.isArray(e.metadata.args)){let r=[];for(let o of e.metadata.args)r.push(o.constraint);let n=e.handler;e.handler=function(...o){return $o(o,r),n(...o)}}let{id:t}=e;this._commands.get(t)&&console.info(`[Jolibox SDK] duplicated command is registered ${t}`),this._commands.set(t,e),this._onDidRegisterCommand.fire(t)}getCommand(e){return this._commands.get(e)}getCommands(){let e=new Map;for(let t of this._commands.keys()){let r=this.getCommand(t);r&&e.set(t,r)}return e}};Pe=fr([br],Pe);St=class{constructor(){this._onWillExecuteCommand=new Ee,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new Ee,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new Pe,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=Eo(3e4)),this._starActivation}executeCommand(e,...t){return b(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),Et.toPromise(Et.filter(this.registry.onDidRegisterCommand,r=>r===e))])]),this._tryExecuteCommand(e,t))})}executeCommandThowErr(e,...t){if(!this.registry.getCommand(e))throw new Error(`command '${e}' not found`);let r=this.registry.getCommand(e);this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),n}_tryExecuteCommand(e,t){let r=this.registry.getCommand(e);if(!r)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(n)}catch(n){return Promise.reject(n)}}invokeFunction(e,...t){let r=!1;try{return e(...t)}finally{r=!0}}};St=fr([br],St);Tt=Symbol.for("Jolibox.commands")});function F(e,t={}){xt.emit("ERROR_REPORT",{error:e,options:t})}var xt,de,$=g(()=>{"use strict";S();S();xt=new z,de=new z;F.debounce=Se(F,50,{leading:!0})});function De(e,t){return`[${e}]:${t}`}var ue,Ct,oe=g(()=>{"use strict";$();S();$();ue=(e,t)=>{var r,n;return new Ie((n=(r=t==null?void 0:t.errMsg)!=null?r:e.msg)!=null?n:"",e.code,e.type)},Ct=e=>new Sr(e)});var Or,Dr,Fr,Ur=g(()=>{"use strict";Or=[],Dr=[],Fr=["env","createRequestTask","login"]});function Lr(e,t){Mr||(Pt=new me({eventName:"jolibox_invoke",tagNameOrder:["status","method","errNo","errMsg","isForeground"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),Nt=new me({eventName:"jolibox_invoke_js2native",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),Ot=new me({eventName:"jolibox_invoke_native2js",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),t("onJoliboxEnterBackground",()=>{Pt.flush(),Nt.flush(),Ot.flush()}),Mr=!0);function r(o){var v,f;let{method:s,args:i,startTime:a,isForeground:l,errMsg:d=`${s}:fail no errMsg`,errNo:c=0,__timing:m={receiveJSInvoke:0,invokeCallback:0}}=o,{receiveJSInvoke:p,invokeCallback:T}=m,w=(f=(v=d.match(/\S:(\S+)\s?/))==null?void 0:v[1])!=null?f:"fail";Pt.report({status:w,method:n(s,i),errNo:`${c}`,errMsg:d,isForeground:l,duration:Date.now()-a}),a&&p&&T&&(Nt.report({status:w,method:s,isForeground:l,duration:Number((p-a).toFixed(3))}),Ot.report({status:w,method:s,isForeground:l,duration:Number((Date.now()-T).toFixed(3))}))}function n(o,s){return(o==="callHostMethod"||o==="callHostMethodSync")&&s!=null&&s.method?`${o}-${s.method}`:o}return r}var qo,me,Mr,Pt,Nt,Ot,Dt=g(()=>{"use strict";S();qo=e=>e==="pv"?e:"default",me=class{constructor(t){this.interval=30;this.lastReportTime=0;this.cache={};let{reporter:r,interval:n=30,eventName:o,tagNameOrder:s,metricName:i,type:a}=t;this.reporter=r,this.interval=n,this.eventName=o,this.tagNameOrder=s,this.metricName=i,this.type=qo(a)}report(t){this.type==="pv"?this.addPVPoint(t):this.addPoint(t),this.tryReport(!1)}flush(){this.tryReport(!0)}tryReport(t){if(Object.keys(this.cache).length){if(t){this.reporter(this.processPoints(this.cache)),this.clearPoints();return}this.lastReportTime=this.lastReportTime||Date.now(),Date.now()-this.lastReportTime>=this.interval*1e3&&(this.reporter(this.processPoints(this.cache)),this.clearPoints(),this.lastReportTime=Date.now())}}addPoint(t){let r=(n,o,s,i)=>{let a=o.shift();if(a){let l=i[a];n[l]||(n[l]={}),r(n[l],o,s,i)}else n[s]||(n[s]=[]),n[s].push(i[s])};r(this.cache,[...this.tagNameOrder],this.metricName,t)}addPVPoint(t){let r=(o,s,i,a)=>{let l=s.shift();if(!l&&M(a))throw new Ne(`report value failed to match tagNameOrder, ${JSON.stringify(n)}`);if(l){let d=[];if(M(a))d.push(...Object.keys(a));else if(ce(a)){if(s.length>0)throw new Ne(`report value failed to match tagNameOrder, ${JSON.stringify(n)}`);d.push(a)}else throw new Ne(`expected metric value to be a string, but got a(n) ${typeof a}, ${JSON.stringify(n)}`);d.forEach(c=>{o[c]||(o[c]={});let m=M(a)?a[c]:a;r(o[c],[...s],i,m)})}else o[i]?o[i]++:o[i]=1},n={point:t,metricName:this.metricName,tagNameOrder:this.tagNameOrder};r(this.cache,[...this.tagNameOrder],this.metricName,t)}processPoints(t){return{eventName:this.eventName,tagNameOrder:this.tagNameOrder,metricName:this.metricName,metricAggregateType:this.type==="pv"?"itoa":"arr",data:t}}clearPoints(){this.cache={}}},Mr=!1});function jr(e,t){let r=0,n=!0,o=new Map,s=Lr(e,t);t("onJoliboxEnterBackground",()=>{n=!1}),t("onJoliboxEnterForeground",()=>{n=!0,Ft.forEach(p=>b(this,[p],function*({method:d,args:c,resolve:m}){let T=yield a(d,c);m(T)})),Ft.length=0});let i=(d,c)=>{let m=o.get(Number(d));if(!m)return;let p=ke(c);m(p),o.delete(Number(d))},a=(d,c)=>{var A,fe;let m=Date.now(),p=`${n}`;r+=1;let T=new ne;if(o.set(r,T.resolve),!n&&Dr.includes(d))return new Promise(U=>{Ft.push({method:d,args:c,resolve:U})});let v=x(y({},{method:d,startTime:m,args:c,isForeground:p}),{invokeType:"js-bridge"}),f=!Go&&Or.includes(d),k=ur(c,f),_=f?k:JSON.stringify(k),h;if(d.endsWith("Sync")||Fr.includes(d)?h=(A=e.call)==null?void 0:A.call(e,d,k,r):typeof _=="string"?h=e.invoke(d,_,r):h=(fe=e.call)==null?void 0:fe.call(e,d,_,r),h){try{typeof h=="string"&&(h=JSON.parse(h)),h=ke(h)}catch(U){j.error(U)}return o.delete(r),h.errorCode&&(h.errorCode=De(d,h.errorCode)),s(y(y({},v),h)),h}return d.endsWith("Sync")&&o.delete(r),T.promise.then(U=>(U.errorCode&&(U.errorCode=De(d,U.errorCode)),s(y(y({},v),U)),U))};return{invokeNative:a,applyNative:(d,c)=>{let m=a(d,c);return vr(m)?m.then(p=>Br(d,p)):Br(d,m)},invokeHandler:i}}function Br(e,t){if(!M(t)){j.warn(`[Jolibox SDK]${e} no response value`);return}let a=t,{errMsg:r,errNo:n,errorType:o,errorCode:s}=a,i=ae(a,["errMsg","errNo","errorType","errorCode"]);if(r&&r!==`${e}:ok`)throw new _r(r,n,o,s);return i}var Ft,Go,Hr=g(()=>{"use strict";bt();S();oe();Ur();Dt();Ft=[],Go=!1});function Jr(e){let t=new z,r=new me({eventName:"jolibox_publish",tagNameOrder:["type","event"],metricName:"duration",reporter(n){e.invoke("track",JSON.stringify({event:"reportMetrics",data:n}),-1)}});return t.on("onJoliboxEnterBackground",()=>{r.flush()}),{onNative:t.on.bind(t),offNative:t.off.bind(t),subscribeHandler(n,o,s){let i=ke(o),a;if(i.__extra){a=i.params;let{type:l,startTime:d}=i.__extra;r.report({type:l,event:n,duration:Date.now()-d})}else a=i;t.emit(n,a,s)}}}var Vr=g(()=>{"use strict";S();bt();Dt()});function Ut(e){let{subscribeHandler:t,onNative:r,offNative:n}=Jr(e),{invokeNative:o,invokeHandler:s,applyNative:i}=jr(e,r);return{invokeHandler:s,subscribeHandler:t,applyNative:i,invokeNative:o,onNative:r,offNative:n}}var $r=g(()=>{"use strict";Hr();Vr()});var Kr=g(()=>{"use strict"});var qr=g(()=>{"use strict";$r();Kr()});var se,K,Gr,zr=g(()=>{"use strict";S();$();K={trigger(){},exit(){return!1},onReady(e){K.trigger=e},doExit(e){K.exit=e}},Gr=()=>{let e=window.prompt("invoke",JSON.stringify({event:"envSync",paramsString:JSON.stringify({})}));if(!e)F(new wr("native env failed"));else{let{data:t}=JSON.parse(e);return t!=null?t:void 0}};if(window.webkit){let e=window.webkit.messageHandlers,t=(o="")=>{K.trigger(),e.onDocumentReady.postMessage({path:o})};se={onDocumentReady:t,doExit:o=>{let s=K.exit();e.doExit.postMessage({uuid:o,shouldInterrupt:s})},invoke(o,s,i){e.invoke.postMessage({event:o,paramsString:s,callbackId:i})},call(o,s,i){let a=window.prompt("invoke",JSON.stringify({event:o,paramsString:JSON.stringify(s),callbackId:i}));if(a)return JSON.parse(a)}};let n={onDocumentReady:t,env:Gr};globalThis.joliboxJSCore=y({},n)}if(window.JoliAndroidSDKBridge){let e=window.JoliAndroidSDKBridge,t=(o="")=>{K.trigger(),e.onDocumentReady(JSON.stringify({path:o}))};se={onDocumentReady:t,invoke(o,s,i){e.invoke(JSON.stringify({event:o,paramsString:s,callbackId:i}))},doExit:o=>{let s=K.exit();e.doExit(JSON.stringify({uuid:o,shouldInterrupt:s}))},call(o,s,i){let a=window.prompt("invoke",JSON.stringify({event:o,paramsString:JSON.stringify(s),callbackId:i}));if(a)return JSON.parse(a)}};let n={onDocumentReady:t,env:Gr};globalThis.joliboxJSCore=y({},n)}});function Mt(e,t){return{params:e,__extra:{startTime:Date.now(),type:t}}}var Lt=g(()=>{"use strict"});function Bt(){globalThis.onmessage=function(e){e.data==="msg:setup"&&([he]=e.ports,he.onmessage=function(t){let r=JSON.parse(t.data);r[0]==="publish"?globalThis.ttJSBridge.subscribeHandler(r[1],r[2]):r[0]==="invoke"&&globalThis.ttJSBridge.invokeHandler(r[1],r[2])},he.publish=function(t,r){let n=Mt(r,"messagePort");he.postMessage(JSON.stringify(["publish",t,JSON.stringify(n)]))},he.postMessage("msg:setup:ok"))}}var he,Wr=g(()=>{"use strict";Lt()});var Fe=g(()=>{"use strict";zr();Wr();Lt()});var Qr,zo,Xr,Yr,H,C,W,ka,Wo,V=g(()=>{"use strict";qr();Fe();oe();S();Fe();Qr=se;if(!Qr)throw new Rr("No joliboxJScore is found, native bridge not found.");Bt();zo=y({},Qr),Xr=Ut(zo),{invokeHandler:Yr}=Xr,{applyNative:H,invokeNative:C,onNative:W,offNative:ka,subscribeHandler:Wo}=Xr;globalThis.joliboxJSBridge={callHandler:Yr,invokeHandler:Yr,subscribeHandler:Wo}});var jt,Zr,en=g(()=>{"use strict";S();$();jt=e=>{let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=t.length%4===0?"":"=".repeat(4-t.length%4),n=atob(t+r);try{return JSON.parse(n)}catch(o){return{}}},Zr=e=>{var t;try{let o=(t=new URL(e).searchParams.get("joliSource"))==null?void 0:t.split(".");if(o!=null&&o.length){let[s,i,a]=o;return{headerJson:jt(s),payloadJson:jt(i),signature:jt(a)}}else throw"joli_source is missing"}catch(r){return F(new Ir(`${e} not a valid schema: ${r}`)),{headerJson:{},payloadJson:{},signature:{}}}}});var Yo,Ue,tn,Ht=g(()=>{"use strict";S();Yo="1.1.12",Ue=()=>Yo,tn=()=>{let e=Ue();return`${Pr(e)}`}});var Qo,rn,Jt,nn,L,Xo,E,q=g(()=>{"use strict";S();en();Ht();S();Qo={deviceInfo:{brand:"UnknownBrand",model:"UnknownModel",did:At(),pixelRatio:window.devicePixelRatio||1,platform:"h5",system:"UnknownSystemVersion",lang:"zh"},sdkInfo:{nativeSDKVersion:"",jssdkVersion:Ue()},schema:window.location.href,platform:"h5"},Jt=(rn=globalThis.joliboxJSCore)==null?void 0:rn.env,L=Object.assign({},(nn=Jt==null?void 0:Jt())!=null?nn:Qo),Xo=()=>{var m,p,T,w,v,f,k,_;let{payloadJson:e,headerJson:t}=L.schema.length?Zr(L.schema):{},r=`${L.deviceInfo.did}-${new Date().getTime()}`,o=new URL(L.schema.length?L.schema:window.location.href).searchParams,s=(T=(p=(m=o.get("mpId"))!=null?m:o.get("appId"))!=null?p:o.get("gameId"))!=null?T:"",i=(v=(w=e==null?void 0:e.sessionId)!=null?w:o.get("sessionId"))!=null?v:r,a=!!((f=e==null?void 0:e.testAdsMode)!=null?f:o.get("testAdsMode")==="true"),l=(_=(k=e==null?void 0:e.joliboxEnv)!=null?k:o.get("joliboxEnv"))!=null?_:"production",d=l==="staging",c=t==null?void 0:t.channel;return{get testMode(){return d},get testAdsMode(){return a},get joliboxEnv(){return l},get joliSource(){var h;return(h=o.get("joliSource"))!=null?h:null},get mpId(){var h;return(h=s!=null?s:e==null?void 0:e.id)!=null?h:""},get mpVersion(){var h;return(h=t==null?void 0:t.ver)!=null?h:Ue()},get mpType(){var h,A;return(A=(h=t==null?void 0:t.__mpType)!=null?h:e==null?void 0:e.__mpType)!=null?A:"game"},get platform(){var h;return(h=L.platform)!=null?h:L.deviceInfo.platform},get deviceInfo(){return L.deviceInfo},get sdkInfo(){return L.sdkInfo},get hostInfo(){return L.hostInfo},get hostUserInfo(){return L.hostUserInfo},get sessionId(){var h,A;return(A=(h=L.clientSessionId)!=null?h:i)!=null?A:r},get channel(){return c},get webviewId(){var h;return(h=L.webviewId)!=null?h:-1},onEnvConfigChanged:h=>{kr(L,h,Tr)}}},E=Xo()});var Vt,sn,Zo,es,on,ts,an=g(()=>{"use strict";S();$();q();S();Vt=!1,sn=(e,t)=>e==null?!1:t in e,Zo=e=>sn(e,"kind"),es=e=>{let t=e.toLowerCase().split("_");return t[0]+t.slice(1).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")},on=(e,t={},r)=>{var s,i,a;let n={user_id:(i=(s=E.hostUserInfo)==null?void 0:s.uid)!=null?i:"",device_id:(a=E.deviceInfo.did)!=null?a:"",timestamp:Date.now(),tag:es(e.name)},o=x(y({},n),{env:t.environment,isFromUser:r});r?de.emit("GLOBAL_USER_ERROR",e,o):de.emit("GLOBAL_ERROR",e,o)},ts=e=>sn(e,"kind")&&e.kind==="USER_ERROR";xt.on("ERROR_REPORT",({error:e,options:t})=>{if(Vt)return;Vt=!0;let r=Zo(e)&&e.raw?e.raw:e;try{let n=ts(e);on(e,t,n)}catch(n){let o=n instanceof Error?n.message:String(n),s=new wt(`${o}, origin error: ${r.message}`);j.error(s),on(new wt(s.message),{environment:t.environment},!1)}finally{Vt=!1}})});var cn=g(()=>{"use strict";an();oe();S();V();de.on("GLOBAL_ERROR",(e,t)=>{var n;let r={message:e.message,stack:(n=e.stack)!=null?n:"",errorType:e.name,source:0};C("trackAsync",{event:"reportJsError",data:r})});de.on("GLOBAL_USER_ERROR",(e,t)=>{j.log("UserError",e,t)})});var $t=g(()=>{"use strict"});function ln(e,t){let r=(n,o,s)=>{let i=x(y({tag:n},t),{extra:y({},o)});n=="globalJsError"?F(new Ar(JSON.stringify(i))):e("systemLog",i,s)};return r.debounce=Se(r,500,{leading:!0}),r}function dn(e){let t=(r,n,o)=>{var a;let s=(a=o&&JSON.stringify(o))!=null?a:0,i={speed_value_type:r,total_duration:n};s&&Object.assign(i,{extra:s}),e("joliboxSpeedAnalysis",i)};return t.debounce=Se(t,500,{leading:!0}),t}var un=g(()=>{"use strict";S();S();$()});function mn(e,t){let r=ln(e,t),n=dn(r);return{track:r,trackPerformance:n}}var pn=g(()=>{"use strict";un()});var fn=g(()=>{"use strict";q();S();S()});var hn=g(()=>{"use strict";pn();$t();fn()});var Me,gn=g(()=>{"use strict";Me=class{constructor(t,r){this.eventEmitter=t;this.lastReportTime=0;this.visible=!0;this.timer=this.createRAFTimer(t=>{this.reporter({event:"PLAY_GAME",params:{duration:t}}),this.tracker("PlayGame",{duration:t})});this.interval=r!=null?r:5*1e3,t.on("visible",n=>{this.visible=n})}start(t){this.reporter({event:"OPEN_GAME",params:{timestamp:Date.now(),duration:t!=null?t:0}}),this.tracker("OpenGame",{duration:t!=null?t:0}),this.timer.start()}close(t){this.reporter({event:"CLOSE_GAME",params:{timestamp:Date.now(),duration:t}}),this.tracker("CloseGame",{duration:t}),this.timer.stop()}createRAFTimer(t){let r=Date.now(),n,o,s=!1,i=0,a=()=>{if(!s)return;let T=Date.now(),w=T-r;w>=this.interval&&(this.visible&&(i+=w,t(i)),r=T),n=requestAnimationFrame(a)},l=()=>{c(),r=Date.now(),o=window.setInterval(()=>{if(!s)return;let T=Date.now();T-r>=this.interval&&(r=T)},this.interval)},d=()=>{m(),r=Date.now(),n=requestAnimationFrame(a)},c=()=>{n&&(cancelAnimationFrame(n),n=0)},m=()=>{o&&(clearInterval(o),o=0)};this.eventEmitter.on("visible",T=>{s&&(console.log("visible",T),T?d():l())});let p=this.visible;return{start(){s||(s=!0,p?d():l())},stop(){s=!1,c(),m()}}}}});var Kt=g(()=>{"use strict"});function vn(e,t,r){let{response:n,startTime:o,endTime:s,requestFrom:i}=r,{errMsg:a="",profile:l={}}=n,c={duration:s-o,request_type:e,url:t.split("?")[0],result:r.state,error_msg:r.state==="fail"?a:"",socket_reused:l.socketReused?1:0,request_from:i};(i==="public"&&yn<ns||i==="inner")&&(c.joli_request_number=yn++,setTimeout(()=>{J("joliboxNetRequestResult",c)},500))}var yn,ns,bn=g(()=>{"use strict";Kt();ie();yn=0,ns=10});function Le(e,t,r){var l,d,c;let n=new Map,o=(l=r==null?void 0:r.baseUrl)!=null?l:"https://api.jolibox.com",s=(d=r==null?void 0:r.type)!=null?d:"public",i=(c=r==null?void 0:r.defaultHeaders)!=null?c:{};return W("onRequestTaskStateChange",m=>{if(typeof m.requestTaskId!="string")return;let p=n.get(m.requestTaskId);if(p)if(m.state==="success"){let T=m,{requestTaskId:v,state:f}=T,k=ae(T,["requestTaskId","state"]);p.resolve(k),n.delete(v)}else if(m.state==="fail"){let w=m,{requestTaskId:v,state:f}=w,k=ae(w,["requestTaskId","state"]);p.reject(k),n.delete(v)}else j.warn("onRequestTaskStateChange unknown event",m)}),Z.on("onLoginComplete",({isLogin:m,token:p})=>{m&&p&&(i["X-JOLI-TOKEN"]=p)}),(T,...w)=>b(this,[T,...w],function*(m,p={}){let v=Date.now(),f=os(m,x(y({},p),{baseUrl:o})),{method:k="GET",responseType:_="text",dataType:h="json",timeout:A,enableCache:fe=!1,appendHostCookie:U=!0}=p,be=Object.assign({"content-type":"application/json"},i,p.header),re={url:f,method:k,header:be,enableCache:fe,responseType:_,appendHostCookie:U};if(k=="POST"||k=="PUT"){let G=is(p.data,be["content-type"]);re.data=G}A&&Object.assign(re,{timeout:A});let{data:{requestTaskId:yt}}=C(e,re);if(typeof yt!="string")throw ue({code:-1,msg:"requestTaskId is not a string"});let sr=(G,Q)=>{vn("request",f,{state:G,startTime:v,endTime:Date.now(),params:re,response:Q,requestId:yt,requestFrom:s=="public"?"public":"inner"})},{resolve:no,reject:oo,promise:so}=new ne;n.set(yt,{resolve:no,reject:oo});try{let G=yield so;sr("success",G);let{data:Q}=G;return h==="json"&&typeof Q=="string"&&(Q=ss(Q)),{url:f,timeout:A,method:k,response:x(y({},G),{data:Q})}}catch(G){let Q=G;if(M(Q)){let{errMsg:_e,prefetchDetail:io,isPrefetch:ao,errNo:co}=Q;ce(_e)&&(sr("fail",{errMsg:_e,isPrefetch:ao,prefetchDetail:io}),F(ue({code:-1,msg:_e},{errNo:co,errMsg:_e})))}throw G}})}function ss(e){try{return JSON.parse(e.trim())}catch(t){return e}}function is(e,t="application/json"){let r=t.toLowerCase();return e===void 0?"":typeof e=="string"||e instanceof ArrayBuffer?e:r.includes("application/x-www-form-urlencoded")||r.includes("application/json")||typeof e=="object"?JSON.stringify(e):String(e)}var os,qt=g(()=>{"use strict";S();bn();Kt();V();$();oe();os=(e,t)=>{if(/^https?:\/\//.test(e))return e;let r=t==null?void 0:t.query,o=new URLSearchParams(r).toString();return t!=null&&t.baseUrl?`${t.baseUrl}${e}${o?`?${o}`:""}`:`${e}${o?`?${o}`:""}`}});var Gt,kn,Y,Be=g(()=>{"use strict";Ht();qt();q();Gt={"x-user-agent":tn()};(kn=E.hostUserInfo)!=null&&kn.token&&(Gt["x-joli-token"]=E.hostUserInfo.token);E.joliSource&&(Gt["x-joli-source"]=E.joliSource);Y=Le("createRequestTaskSync","operateRequestTaskSync",{type:"inner",baseUrl:E.testMode?"https://stg-api.jolibox.com":"https://api.jolibox.com",defaultHeaders:Gt})});var je,Tn=g(()=>{"use strict";q();gn();Be();V();je=class extends Me{constructor(t,r,n){super(r,n),this.gameId=E.mpId,this.sessionId=E.sessionId,this.track=t}reporter(t){return b(this,null,function*(){let{event:r,params:n}=t,o=[];o.push(Y("/api/base/app-event",{method:"POST",data:{eventType:r,gameInfo:y({gameId:this.gameId,sessionId:this.sessionId},n)}})),yield Promise.all(o)})}reportToNative(t){return b(this,null,function*(){let{event:r,params:n}=t;yield H("userTrackAsync",{event:r,params:y({},n),gameId:this.gameId})})}tracker(t,r=null){this.track(t,r)}}});var _n={};lr(_n,{nativeTaskEmitter:()=>we,taskTracker:()=>B,track:()=>J,trackPerformance:()=>In});var as,En,Sn,J,In,wn,we,B,ie=g(()=>{"use strict";cn();S();$t();hn();q();Tn();V();as=(e,t,r)=>{var i,a;let n=t,o=M(n.extra)?n.extra:ce(n.extra)?JSON.parse(n.extra):{},s=x(y({},o),{mp_id:(i=n.mp_id)!=null?i:"",mp_version:(a=n.mp_version)!=null?a:""});C("trackAsync",{event:e,data:s,webviewId:r})},{track:J,trackPerformance:In}=mn(as,{type:Rt.AppSDK,platform:"native",jssdk_version:(Sn=(En=E.sdkInfo)==null?void 0:En.jssdkVersion)!=null?Sn:"1.0.0",mp_id:E.mpId,mp_version:E.mpVersion}),wn=O();wn.registerCommand("ReportSDK.traceSystemTimeline",({event:e,duration:t,extra:r})=>{In(e,t,r)});wn.registerCommand("ReportSDK.traceSystem",({event:e,info:t})=>{J(e,t)});we=new z,B=new je(J,we)});function Rn(){let e=null,t=window.fetch,r=()=>{e=document.createElement("style"),e.setAttribute("data-jolibox-sdk","default-styles");let s=`
1
+ var ws=Object.create;var Ze=Object.defineProperty,Es=Object.defineProperties,ks=Object.getOwnPropertyDescriptor,xs=Object.getOwnPropertyDescriptors,Ss=Object.getOwnPropertyNames,Xe=Object.getOwnPropertySymbols,Ts=Object.getPrototypeOf,tr=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable;var _n=(e,t,r)=>t in e?Ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,w=(e,t)=>{for(var r in t||(t={}))tr.call(t,r)&&_n(e,r,t[r]);if(Xe)for(var r of Xe(t))gn.call(t,r)&&_n(e,r,t[r]);return e},O=(e,t)=>Es(e,xs(t));var Z=(e,t)=>{var r={};for(var n in e)tr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Xe)for(var n of Xe(e))t.indexOf(n)<0&&gn.call(e,n)&&(r[n]=e[n]);return r};var x=(e,t)=>()=>(e&&(t=e(e=0)),t);var vn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),yn=(e,t)=>{for(var r in t)Ze(e,r,{get:t[r],enumerable:!0})},Is=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ss(t))!tr.call(e,o)&&o!==r&&Ze(e,o,{get:()=>t[o],enumerable:!(n=ks(t,o))||n.enumerable});return e};var bn=(e,t,r)=>(r=e!=null?ws(Ts(e)):{},Is(t||!e||!e.__esModule?Ze(r,"default",{value:e,enumerable:!0}):r,e));var y=(e,t,r)=>new Promise((n,o)=>{var i=l=>{try{a(r.next(l))}catch(c){o(c)}},s=l=>{try{a(r.throw(l))}catch(c){o(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(i,s);a((r=r.apply(e,t)).next())});function Ns(e){return!!(e!=null&&e.__nativeBuffers__)}function lr(e){if(typeof e=="string")try{e=JSON.parse(e)}catch(r){return{}}if(typeof e!="object"||e===null)return{};if(!Ns(e))return e;let t=e.__nativeBuffers__;if(delete e.__nativeBuffers__,t)for(let r=0;r<t.length;r++){let n=t[r];if(n){let o;n.value?o=n.value:n.base64&&(o=Ds(n.base64)),typeof o!="undefined"&&o instanceof ArrayBuffer&&(e[n.key]=o)}}return e}function Us(e={},t=!1){let r=e,n=[];for(let[o,i]of Object.entries(r))if(i!==void 0&&i instanceof ArrayBuffer&&i.byteLength!==void 0){let s=t?{value:i,key:o}:{base64:Ls(i),key:o};n.push(s),delete r[o]}return n.length>0&&(r.__nativeBuffers__=n),r}function Js(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function On(e){return typeof e=="string"}function Ue(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function Vs(e){return typeof e=="undefined"}function Gs(e){return Vs(e)||e===null}function Nn(e){return typeof e=="function"}function qs(e){return Ue(e)&&Nn(e.then)}function Dn(e){let t=e,r=null,n=function(...o){return r||(r=new t(...o)),r};return n.prototype=t.prototype,n}function Le(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}function oa(){try{if(window.__joliboxLocalStorage__)return window.__joliboxLocalStorage__;let e=Object.getOwnPropertyDescriptor(window,"localStorage");if(e&&e.get){let n=e.get.call(window);return window.__joliboxLocalStorage__=n,n}if(e=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(window),"localStorage"),e&&e.get)return e.get.call(window);let t=Window.prototype,r=Object.getOwnPropertyDescriptor(t,"localStorage");if(r&&r.get){let n=r.get.call(window);return window.__joliboxLocalStorage__=n,n}return localStorage}catch(e){return console.warn("Failed to get original localStorage, fallback to default implementation",e),localStorage}}function la(e){return new Promise(t=>Ln(e)(t))}function Ln(e){return(t,r=null)=>{let n=!1;return e(o=>{if(!n)return n=!0,t.call(r,o)},null)}}function ca(e,t){return(r=>{let n,o={onWillAddFirstListener(){n=r(i.fire,i)}},i=new je(o);return i.event})((r,n=null)=>e(o=>t(o)&&r.call(n,o),null))}function da(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)pa(e[n],t[n])}function pa(e,t){if(On(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(Nn(t)){try{if(e instanceof t)return}catch(r){}if(!Gs(e)&&e.constructor===t||t.length===1&&t.call(void 0,e)===!0)return;throw new Error("[Jolibox SDK]argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function Sn(e,t){return`[${e}]:${t}`}function ga(e,t){Tn||(or=new tt({eventName:"jolibox_invoke",tagNameOrder:["status","method","errNo","errMsg","isForeground"],metricName:"duration",reporter(o){e.invoke("trackAsync",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),ir=new tt({eventName:"jolibox_invoke_js2native",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(o){e.invoke("trackAsync",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),sr=new tt({eventName:"jolibox_invoke_native2js",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(o){e.invoke("trackAsync",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),t("onJoliboxEnterBackground",()=>{or.flush(),ir.flush(),sr.flush()}),Tn=!0);function r(o){var i,s;let{method:a,args:l,startTime:c,isForeground:d,errMsg:u=`${a}:fail no errMsg`,errNo:p=0,__timing:m={receiveJSInvoke:0,invokeCallback:0}}=o,{receiveJSInvoke:v,invokeCallback:E}=m,h=(s=(i=u.match(/\S:(\S+)\s?/))==null?void 0:i[1])!=null?s:"fail";or.report({status:h,method:n(a,l),errNo:`${p}`,errMsg:u,isForeground:d,duration:Date.now()-c}),c&&v&&E&&(ir.report({status:h,method:a,isForeground:d,duration:Number((v-c).toFixed(3))}),sr.report({status:h,method:a,isForeground:d,duration:Number((Date.now()-E).toFixed(3))}))}function n(o,i){return(o==="callHostMethod"||o==="callHostMethodSync")&&i!=null&&i.method?`${o}-${i.method}`:o}return r}function ya(e,t){let r=0,n=!0,o=new Map,i=ga(e,t);t("onJoliboxEnterBackground",()=>{n=!1}),t("onJoliboxEnterForeground",()=>{n=!0,ar.forEach(l=>fr(this,[l],function*({method:c,args:d,resolve:u}){let p=yield a(c,d);u(p)})),ar.length=0});let s=(l,c)=>{let d=o.get(Number(l));if(!d)return;let u=lr(c);d(u),o.delete(Number(l))},a=(l,c)=>{var d,u;let p=Date.now(),m=`${n}`;r+=1;let v=new Ks;if(o.set(r,v.resolve),!n&&fa.includes(l))return new Promise(A=>{ar.push({method:l,args:c,resolve:A})});let E=Ps(fe({},{method:l,startTime:p,args:c,isForeground:m}),{invokeType:"js-bridge"}),h=!va&&ma.includes(l),_=Us(c,h),b=h?_:JSON.stringify(_),T;if(l.endsWith("Sync")||ha.includes(l)?T=(d=e.call)==null?void 0:d.call(e,l,_,r):typeof b=="string"?T=e.invoke(l,b,r):T=(u=e.call)==null?void 0:u.call(e,l,b,r),T){try{typeof T=="string"&&(T=JSON.parse(T)),T=lr(T)}catch(A){_r.error(A)}return o.delete(r),T.errorCode&&(T.errorCode=Sn(l,T.errorCode)),i(fe(fe({},E),T)),T}return l.endsWith("Sync")&&o.delete(r),v.promise.then(A=>(A.errorCode&&(A.errorCode=Sn(l,A.errorCode)),i(fe(fe({},E),A)),A))};return{invokeNative:a,applyNative:(l,c)=>{let d=a(l,c);return qs(d)?d.then(u=>In(l,u)):In(l,d)},invokeHandler:s}}function In(e,t){if(!Ue(t)){_r.warn(`[Jolibox SDK]${e} no response value`);return}let r=t,{errMsg:n,errNo:o,errorType:i,errorCode:s}=r,a=Os(r,["errMsg","errNo","errorType","errorCode"]);if(n&&n!==`${e}:ok`)throw new Qs(n,o,i,s);return a}function ba(e){let t=new dr,r=new dr,n=new tt({eventName:"jolibox_publish",tagNameOrder:["type","event"],metricName:"duration",reporter(o){e.invoke("trackAsync",JSON.stringify({event:"reportMetrics",data:o}),-1)}});return t.on("onJoliboxEnterBackground",()=>{n.flush()}),{onNative:t.on.bind(t),offNative:t.off.bind(t),subscribe:r.on.bind(r),unsubscribe:r.off.bind(r),subscribeHandler(o,i,s){let a=lr(i),l;if(a.__extra){l=a.params;let{type:c,startTime:d}=a.__extra;n.report({type:c,event:o,duration:Date.now()-d})}else l=a;if(o===Un){l.forEach(c=>{let[d,u]=c;try{r.emit(d.slice(Fe.length),u,s)}catch(p){}});return}if(o.startsWith(Fe)){r.emit(o.slice(Fe.length),l,s);return}t.emit(o,l,s)}}}function wa(e){let t=new Map,r;return(n,o,i,s)=>{if(s){let l=i?[i]:"*";e.publish(`${Fe}${n}`,o,l);return}r||(r=Promise.resolve().then(()=>{t.forEach((l,c)=>{try{let d=c?[c]:"*";e.publish(Un,l,d)}catch(d){}}),r=void 0,t.clear()}));let a=t.get(i);a||(a=[],t.set(i,a)),a.push([`${Fe}${n}`,o])}}function Ea(e){let{subscribeHandler:t,onNative:r,offNative:n,subscribe:o,unsubscribe:i}=ba(e),{invokeNative:s,invokeHandler:a,applyNative:l}=ya(e,r),c=wa(e);return{invokeHandler:a,subscribeHandler:t,applyNative:l,invokeNative:s,onNative:r,offNative:n,publish:c,subscribe:o,unsubscribe:i}}function Fn(e,t){return{params:e,__extra:{startTime:Date.now(),type:t}}}var Rs,As,Cs,rt,An,Cn,wn,fe,Ps,Os,fr,Ds,Ls,hr,Fs,En,js,Ms,kn,Bs,Hs,Pn,$s,Ks,Ws,zs,nt,Ys,Qs,Xs,rr,_r,Zs,ea,ta,ra,na,su,cr,L,ia,sa,et,je,dr,pr,aa,nr,ua,au,mr,xn,lu,Fe,ma,fa,ha,Un,_a,tt,Tn,or,ir,sr,ar,va,gr,ce,jn,Mn,ka,Bn,Rn,Y,N,re,cu,xa,Hn,uu,du,G=x(()=>{"use strict";Rs=Object.defineProperty,As=Object.defineProperties,Cs=Object.getOwnPropertyDescriptors,rt=Object.getOwnPropertySymbols,An=Object.prototype.hasOwnProperty,Cn=Object.prototype.propertyIsEnumerable,wn=(e,t,r)=>t in e?Rs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,fe=(e,t)=>{for(var r in t||(t={}))An.call(t,r)&&wn(e,r,t[r]);if(rt)for(var r of rt(t))Cn.call(t,r)&&wn(e,r,t[r]);return e},Ps=(e,t)=>As(e,Cs(t)),Os=(e,t)=>{var r={};for(var n in e)An.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&rt)for(var n of rt(e))t.indexOf(n)<0&&Cn.call(e,n)&&(r[n]=e[n]);return r},fr=(e,t,r)=>new Promise((n,o)=>{var i=l=>{try{a(r.next(l))}catch(c){o(c)}},s=l=>{try{a(r.throw(l))}catch(c){o(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(i,s);a((r=r.apply(e,t)).next())});Ds=e=>{let t=atob(e),r=t.length,n=new Uint8Array(r);for(let o=0;o<r;o++)n[o]=t.charCodeAt(o);return n.buffer};Ls=e=>{let t="",r=new Uint8Array(e),n=r.byteLength;for(let o=0;o<n;o++)t+=String.fromCharCode(r[o]);return btoa(t)};hr=Object.defineProperty,Fs=Object.getOwnPropertyDescriptor,En=Object.getOwnPropertySymbols,js=Object.prototype.hasOwnProperty,Ms=Object.prototype.propertyIsEnumerable,kn=(e,t,r)=>t in e?hr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Bs=(e,t)=>{for(var r in t||(t={}))js.call(t,r)&&kn(e,r,t[r]);if(En)for(var r of En(t))Ms.call(t,r)&&kn(e,r,t[r]);return e},Hs=(e,t)=>{for(var r in t)hr(e,r,{get:t[r],enumerable:!0})},Pn=(e,t,r,n)=>{for(var o=n>1?void 0:n?Fs(t,r):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(n?s(t,r,o):s(o))||o);return n&&o&&hr(t,r,o),o},$s=(e,t,r)=>new Promise((n,o)=>{var i=l=>{try{a(r.next(l))}catch(c){o(c)}},s=l=>{try{a(r.throw(l))}catch(c){o(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(i,s);a((r=r.apply(e,t)).next())});if(typeof window!="undefined"&&!window.AbortController){let e=function(){this.signal=new t};e.prototype.abort=function(){this.signal._aborted=!0,typeof this.signal.onabort=="function"&&this.signal.onabort(new Event("abort"));let r=new Event("abort");this.signal.dispatchEvent(r)};let t=function(){this._aborted=!1,this.aborted=!1,this.onabort=null,this._eventListeners={}};Object.defineProperty(t.prototype,"aborted",{get:function(){return this._aborted}}),t.prototype.addEventListener=function(r,n){this._eventListeners[r]||(this._eventListeners[r]=[]),this._eventListeners[r].push(n)},t.prototype.removeEventListener=function(r,n){if(!this._eventListeners[r])return;let o=this._eventListeners[r].indexOf(n);o!==-1&&this._eventListeners[r].splice(o,1)},t.prototype.dispatchEvent=function(r){if(this._eventListeners[r.type])for(let n of this._eventListeners[r.type])n.call(this,r)},window.AbortController=e,window.AbortSignal=t}Ks=class{constructor(){this.state="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.state==="pending"&&(this.state="fulfilled",e(r))},this.reject=r=>{this.state==="pending"&&(this.state="rejected",t(r))}})}};Ws=(e=>(e[e.DEVELOPER_FILE_NOT_FOUND=0]="DEVELOPER_FILE_NOT_FOUND",e[e.INTERNAL_IOS_CAN_NOT_FOUND_PKG=1]="INTERNAL_IOS_CAN_NOT_FOUND_PKG",e[e.USER_IOS_LOAD_TIMEOUT=2]="USER_IOS_LOAD_TIMEOUT",e[e.INTERNAL_IOS_PKG_LOAD_ERROR=3]="INTERNAL_IOS_PKG_LOAD_ERROR",e[e.INTERNAL_IOS_PKG_PARSE_FAIL=4]="INTERNAL_IOS_PKG_PARSE_FAIL",e[e.USER_IOS_GET_EMPTY_DATA=5]="USER_IOS_GET_EMPTY_DATA",e[e.USER_ANDROID_GET_PKG_FAIL=6]="USER_ANDROID_GET_PKG_FAIL",e[e.DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE=7]="DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE",e))(Ws||{}),zs=class extends Error{constructor(e){if(typeof e=="string"){super(e),this.priority="P1";return}super(e.message),this.priority="P1",this.stack=e.stack,this.raw=e}},nt=class extends zs{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}},Ys=class extends nt{constructor(){super(...arguments),this.name="INTERNAL_INVOKE_NATIVE_ERROR"}},Qs=class extends nt{constructor(e,t,r,n){super(e),this.errNo=t,this.name="INTERNAL_APPLY_NATIVE_ERROR",this.errorType=r,this.errorCode=n}},Xs=class extends nt{constructor(){super(...arguments),this.name="INTERNAL_JSCORE_ERROR",this.priority="P0"}},rr=class extends nt{constructor(){super(...arguments),this.name="INTERNAL_METRIC_REPORT_ERROR"}};_r={log:Le("log"),warn:Le("warn"),info:Le("info"),error:Le("error"),debug:Le("debug")};Object.assign(globalThis,{logger:_r});Zs=Symbol.for("Jolibox.canIUseMap"),ea={};globalThis[Zs]=ea;ta=(e=>(e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(ta||{}),ra=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(ra||{}),na=(e=>(e[e.App=0]="App",e[e.H5=1]="H5",e[e.Weapp=2]="Weapp",e[e.Alipay=3]="Alipay",e[e.Gcash=4]="Gcash",e[e.Dana=5]="Dana",e[e.Umma=6]="Umma",e[e.WebSDK=1e3]="WebSDK",e[e.AppSDK=1001]="AppSDK",e[e.Other=9999]="Other",e))(na||{});oa();su={isiOS:navigator.userAgent.includes("iPhone")||navigator.userAgent.includes("iPod")||navigator.userAgent.includes("iPad")||navigator.userAgent.includes("iPhone OS"),iosVersion:()=>{let e=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);return[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3]||"0",10)]},isAndroid:navigator.userAgent.includes("Android"),isMac:navigator.userAgent.includes("Mac"),isFacebook:navigator.userAgent.includes("FB_IAB"),isPC:!navigator.userAgent.includes("iPhone")&&!navigator.userAgent.includes("Android")},cr=class ur{constructor(t){this.element=t,this.next=ur.Undefined,this.prev=ur.Undefined}};cr.Undefined=new cr(void 0);L=cr,ia=class{constructor(){this._first=L.Undefined,this._last=L.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===L.Undefined}clear(){let e=this._first;for(;e!==L.Undefined;){let t=e.next;e.prev=L.Undefined,e.next=L.Undefined,e=t}this._first=L.Undefined,this._last=L.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new L(e);if(this._first===L.Undefined)this._first=r,this._last=r;else if(t){let o=this._last;this._last=r,r.prev=o,o.next=r}else{let o=this._first;this._first=r,r.next=o,o.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==L.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==L.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==L.Undefined&&e.next!==L.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===L.Undefined&&e.next===L.Undefined?(this._first=L.Undefined,this._last=L.Undefined):e.next===L.Undefined?(this._last=this._last.prev,this._last.next=L.Undefined):e.prev===L.Undefined&&(this._first=this._first.next,this._first.prev=L.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==L.Undefined;)yield e.element,e=e.next}},sa=0,et=class{constructor(e){this.value=e,this.id=sa++}},je=class{constructor(e){this.options=e,this._size=0}dispose(e){var t,r;this._disposed||(this._disposed=!0,this._listeners&&(e?(this._listeners instanceof et&&(this._listeners=[this._listeners]),this._listeners=this._listeners.filter(n=>(n==null?void 0:n.value)===e)):(this._listeners=void 0,this._size=0)),(r=(t=this.options)==null?void 0:t.onDidRemoveLastListener)==null||r.call(t))}get event(){var e;return(e=this._event)!=null||(this._event=(t,r)=>{var n,o,i,s,a,l;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let c=new et(t);this._listeners?this._listeners instanceof et?this._listeners=[this._listeners,c]:this._listeners.push(c):((o=(n=this.options)==null?void 0:n.onWillAddFirstListener)==null||o.call(n,this),this._listeners=c,(s=(i=this.options)==null?void 0:i.onDidFirstListener)==null||s.call(i,this)),(l=(a=this.options)==null?void 0:a.onDidAddListener)==null||l.call(a,this),this._size++}),this._event}_deliver(e,t){var r;if(!e)return;let n=((r=this.options)==null?void 0:r.onListenerError)||Error.constructor;if(!n){e.value(t);return}try{e.value(t)}catch(o){n(o)}}fire(e){this._listeners&&(this._listeners instanceof et?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},dr=class{constructor(){this.listeners=new Map,this.listerHandlerMap=new WeakMap,this.cachedEventQueue=new Map}on(e,t){var r;let n=(r=this.listeners.get(e))!=null?r:new je,o=s=>t(...s.args);this.listerHandlerMap.set(t,o),n.event(o),this.listeners.set(e,n);let i=this.cachedEventQueue.get(e);if(i)for(;i.size>0;)n.fire(Bs({event:e},i.shift()))}off(e,t){let r=this.listeners.get(e);if(r){let n=this.listerHandlerMap.get(t);r.dispose(n)}}emit(e,...t){let r=this.listeners.get(e);if(r)r.fire({event:e,args:t});else{let n=this.cachedEventQueue.get(e);n||(n=new ia,this.cachedEventQueue.set(e,n)),n.push({args:t})}}},pr={};Hs(pr,{None:()=>aa,filter:()=>ca,once:()=>Ln,toPromise:()=>la});aa=()=>{console.log("[Jolibox SDK] None Event")};nr=Symbol.for("Jolibox.hostEmitter"),ua=()=>{let e=new dr;return globalThis[nr]||(globalThis[nr]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e)}),globalThis[nr]},au=ua();mr=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new je,this.onDidRegisterCommand=this._onDidRegisterCommand.event,console.log("[Jolibox SDK] command registry")}registerCommand(e){if(!e)throw new Error("invalid command");if(e.metadata&&Array.isArray(e.metadata.args)){let r=[];for(let o of e.metadata.args)r.push(o.constraint);let n=e.handler;e.handler=function(...o){return da(o,r),n(...o)}}let{id:t}=e;this._commands.get(t)&&console.info(`[Jolibox SDK] duplicated command is registered ${t}`),this._commands.set(t,e),this._onDidRegisterCommand.fire(t)}getCommand(e){return this._commands.get(e)}getCommands(){let e=new Map;for(let t of this._commands.keys()){let r=this.getCommand(t);r&&e.set(t,r)}return e}};mr=Pn([Dn],mr);xn=class{constructor(){this._onWillExecuteCommand=new je,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new je,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new mr,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=Js(3e4)),this._starActivation}executeCommand(e,...t){return $s(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),pr.toPromise(pr.filter(this.registry.onDidRegisterCommand,r=>r===e))])]),this._tryExecuteCommand(e,t))})}executeCommandThowErr(e,...t){if(!this.registry.getCommand(e))throw new Error(`command '${e}' not found`);let r=this.registry.getCommand(e);this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),n}_tryExecuteCommand(e,t){let r=this.registry.getCommand(e);if(!r)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(n)}catch(n){return Promise.reject(n)}}invokeFunction(e,...t){let r=!1;try{return e(...t)}finally{r=!0}}};xn=Pn([Dn],xn);lu=Symbol.for("Jolibox.commands");Fe="custom_event_",ma=[],fa=[],ha=["env","createRequestTask","login"],Un="__batch_event__",_a=e=>e==="pv"?e:"default",tt=class{constructor(e){this.interval=30,this.lastReportTime=0,this.cache={};let{reporter:t,interval:r=30,eventName:n,tagNameOrder:o,metricName:i,type:s}=e;this.reporter=t,this.interval=r,this.eventName=n,this.tagNameOrder=o,this.metricName=i,this.type=_a(s)}report(e){this.type==="pv"?this.addPVPoint(e):this.addPoint(e),this.tryReport(!1)}flush(){this.tryReport(!0)}tryReport(e){if(Object.keys(this.cache).length){if(e){this.reporter(this.processPoints(this.cache)),this.clearPoints();return}this.lastReportTime=this.lastReportTime||Date.now(),Date.now()-this.lastReportTime>=this.interval*1e3&&(this.reporter(this.processPoints(this.cache)),this.clearPoints(),this.lastReportTime=Date.now())}}addPoint(e){let t=(r,n,o,i)=>{let s=n.shift();if(s){let a=i[s];r[a]||(r[a]={}),t(r[a],n,o,i)}else r[o]||(r[o]=[]),r[o].push(i[o])};t(this.cache,[...this.tagNameOrder],this.metricName,e)}addPVPoint(e){let t=(n,o,i,s)=>{let a=o.shift();if(!a&&Ue(s))throw new rr(`report value failed to match tagNameOrder, ${JSON.stringify(r)}`);if(a){let l=[];if(Ue(s))l.push(...Object.keys(s));else if(On(s)){if(o.length>0)throw new rr(`report value failed to match tagNameOrder, ${JSON.stringify(r)}`);l.push(s)}else throw new rr(`expected metric value to be a string, but got a(n) ${typeof s}, ${JSON.stringify(r)}`);l.forEach(c=>{n[c]||(n[c]={});let d=Ue(s)?s[c]:s;t(n[c],[...o],i,d)})}else n[i]?n[i]++:n[i]=1},r={point:e,metricName:this.metricName,tagNameOrder:this.tagNameOrder};t(this.cache,[...this.tagNameOrder],this.metricName,e)}processPoints(e){return{eventName:this.eventName,tagNameOrder:this.tagNameOrder,metricName:this.metricName,metricAggregateType:this.type==="pv"?"itoa":"arr",data:e}}clearPoints(){this.cache={}}},Tn=!1;ar=[],va=!1;ce={trigger(){},exit(){return Promise.resolve(!1)},onReady(e){ce.trigger=e},onDoExit(e){ce.exit=e}},jn=e=>{let t=window.prompt("invoke",JSON.stringify({event:"envSync",paramsString:JSON.stringify({})}));if(!t)e.onError(new Ys("native env failed"));else{let{data:r}=JSON.parse(t);return r!=null?r:void 0}};if(window.webkit){let e=window.webkit.messageHandlers,t=(o="")=>{ce.trigger(),e.onDocumentReady.postMessage({path:o})},r=o=>fr(void 0,null,function*(){let i=yield ce.exit();e.doExit.postMessage({uuid:o,shouldInterrupt:i})});gr={onDocumentReady:t,doExit:r,invoke(o,i,s){e.invoke.postMessage({event:o,paramsString:i,callbackId:s})},publish(o,i,s){let a=Fn(i,"joliboxJSCore");window.prompt("publish",JSON.stringify({event:o,paramsString:JSON.stringify(a),webviewIds:s}))},call(o,i,s){let a=window.prompt("invoke",JSON.stringify({event:o,paramsString:JSON.stringify(i),callbackId:s}));if(a)return JSON.parse(a)}};let n={onDocumentReady:t,env:jn,doExit:r};globalThis.joliboxJSCore=fe({},n)}if(window.JoliAndroidSDKBridge){let e=window.JoliAndroidSDKBridge,t=(o="")=>{ce.trigger(),e.onDocumentReady(JSON.stringify({path:o}))},r=o=>fr(void 0,null,function*(){let i=yield ce.exit();e.doExit(JSON.stringify({uuid:o,shouldInterrupt:i}))});gr={onDocumentReady:t,invoke(o,i,s){e.invoke(JSON.stringify({event:o,paramsString:i,callbackId:s}))},doExit:r,publish(o,i,s){let a=Fn(i,"joliboxJSCore");e.publish({event:o,paramsString:JSON.stringify(a),webviewIds:s})},call(o,i,s){let a=window.prompt("invoke",JSON.stringify({event:o,paramsString:JSON.stringify(i),callbackId:s}));if(a)return JSON.parse(a)}};let n={onDocumentReady:t,env:jn,doExit:r};globalThis.joliboxJSCore=fe({},n)}Mn=gr;if(!Mn)throw new Xs("No joliboxJScore is found, native bridge not found.");ka=fe({},Mn),Bn=Ea(ka),{invokeHandler:Rn}=Bn,{applyNative:Y,invokeNative:N,onNative:re,offNative:cu,subscribeHandler:xa,publish:Hn,subscribe:uu,unsubscribe:du}=Bn;globalThis.joliboxJSBridge={callHandler:Rn,invokeHandler:Rn,subscribeHandler:xa}});function Ca(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function He(e){return typeof e=="string"}function ye(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function qn(e){return typeof e=="object"&&Array.isArray(e)}function $e(e){return e===!0||e===!1}function Pa(e){return typeof e=="undefined"}function Oa(e){return Pa(e)||e===null}function Na(e){return typeof e=="function"}function Wn(e){let t=e,r=null,n=function(...o){return r||(r=new t(...o)),r};return n.prototype=t.prototype,n}function zn(e,t,r){if(typeof r!="function")throw new Error("[Jolibox SDK]Customizer must be a function");function n(o,i){for(let s in i)if(Object.prototype.hasOwnProperty.call(i,s)){let a=o[s],l=i[s],c=r(a,l,s,o,i);c!==void 0?o[s]=c:Kn(l)&&Kn(a)?o[s]=n(Vn({},a),l):Array.isArray(l)&&Array.isArray(a)?o[s]=[...a,...l]:o[s]=l}return o}return n(e,t)}function Kn(e){return e&&typeof e=="object"&&e.constructor===Object}function Yn(e,t){if(Array.isArray(e))return e.concat(t)}function Je(e,t,r={}){let n=null,o,i,s,{leading:a=!1,trailing:l=!0}=r,c=()=>(s=e.apply(i,o),o=void 0,i=void 0,s),d=function(...u){o=u,i=this;let p=a&&!n;if(n&&clearTimeout(n),n=setTimeout(()=>{n=null,l&&!p&&c()},t),p)return c()};return d.cancel=()=>{n&&clearTimeout(n),n=null,o=i=void 0},d.flush=()=>{if(n)return clearTimeout(n),n=null,c()},d}function La(e,t){return(...r)=>t(e,...r)}function at(e){return t=>La(t,function(r,...n){if(typeof r=="function")try{return r.apply(this,n)}catch(o){e(new Ke(`${o}`))}})}function Me(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}function Cr(){try{if(window.__joliboxLocalStorage__)return window.__joliboxLocalStorage__;let e=Object.getOwnPropertyDescriptor(window,"localStorage");if(e&&e.get){let n=e.get.call(window);return window.__joliboxLocalStorage__=n,n}if(e=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(window),"localStorage"),e&&e.get)return e.get.call(window);let t=Window.prototype,r=Object.getOwnPropertyDescriptor(t,"localStorage");if(r&&r.get){let n=r.get.call(window);return window.__joliboxLocalStorage__=n,n}return localStorage}catch(e){return console.warn("Failed to get original localStorage, fallback to default implementation",e),localStorage}}function Wa(e){return new Promise(t=>oo(e)(t))}function oo(e){return(t,r=null)=>{let n=!1;return e(o=>{if(!n)return n=!0,t.call(r,o)},null)}}function za(e,t){return(r=>{let n,o={onWillAddFirstListener(){n=r(i.fire,i)}},i=new Be(o);return i.event})((r,n=null)=>e(o=>t(o)&&r.call(n,o),null))}function Qa(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)Xa(e[n],t[n])}function Xa(e,t){if(He(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(Na(t)){try{if(e instanceof t)return}catch(r){}if(!Oa(e)&&e.constructor===t||t.length===1&&t.call(void 0,e)===!0)return;throw new Error("[Jolibox SDK]argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function Za(){return typeof globalThis!="undefined"?globalThis[io]:void 0}function el(e){typeof globalThis!="undefined"&&(globalThis[io]=e)}function j(){let e=Za();if(e)return e;let t=new st,r=new Er,n={registerCommand(o,i,s){t.registerCommand({id:o,handler:i,metadata:s})},executeCommand(o,...i){return r.executeCommand(o,...i)},excuteCommandSync(o,...i){return r.executeCommandThowErr(o,...i)}};return el(n),n}var kr,Sa,$n,Ta,Ia,Jn,Vn,Ra,Gn,Aa,he,Da,xr,Sr,Qn,Xn,Ke,Zn,eo,Ve,Tr,ne,to,Ua,Ir,Fa,Rr,ja,Ar,ot,Ma,Ba,Ha,ro,Pr,$a,Ja,Ka,no,yr,U,Va,Ga,it,Be,oe,wr,qa,vr,Ya,ue,st,Er,io,P=x(()=>{"use strict";kr=Object.defineProperty,Sa=Object.getOwnPropertyDescriptor,$n=Object.getOwnPropertySymbols,Ta=Object.prototype.hasOwnProperty,Ia=Object.prototype.propertyIsEnumerable,Jn=(e,t,r)=>t in e?kr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Vn=(e,t)=>{for(var r in t||(t={}))Ta.call(t,r)&&Jn(e,r,t[r]);if($n)for(var r of $n(t))Ia.call(t,r)&&Jn(e,r,t[r]);return e},Ra=(e,t)=>{for(var r in t)kr(e,r,{get:t[r],enumerable:!0})},Gn=(e,t,r,n)=>{for(var o=n>1?void 0:n?Sa(t,r):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(n?s(t,r,o):s(o))||o);return n&&o&&kr(t,r,o),o},Aa=(e,t,r)=>new Promise((n,o)=>{var i=l=>{try{a(r.next(l))}catch(c){o(c)}},s=l=>{try{a(r.throw(l))}catch(c){o(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(i,s);a((r=r.apply(e,t)).next())});if(typeof window!="undefined"&&!window.AbortController){let e=function(){this.signal=new t};e.prototype.abort=function(){this.signal._aborted=!0,typeof this.signal.onabort=="function"&&this.signal.onabort(new Event("abort"));let r=new Event("abort");this.signal.dispatchEvent(r)};let t=function(){this._aborted=!1,this.aborted=!1,this.onabort=null,this._eventListeners={}};Object.defineProperty(t.prototype,"aborted",{get:function(){return this._aborted}}),t.prototype.addEventListener=function(r,n){this._eventListeners[r]||(this._eventListeners[r]=[]),this._eventListeners[r].push(n)},t.prototype.removeEventListener=function(r,n){if(!this._eventListeners[r])return;let o=this._eventListeners[r].indexOf(n);o!==-1&&this._eventListeners[r].splice(o,1)},t.prototype.dispatchEvent=function(r){if(this._eventListeners[r.type])for(let n of this._eventListeners[r.type])n.call(this,r)},window.AbortController=e,window.AbortSignal=t}he=class{constructor(){this.state="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.state==="pending"&&(this.state="fulfilled",e(r))},this.reject=r=>{this.state==="pending"&&(this.state="rejected",t(r))}})}};Da=(e=>(e[e.DEVELOPER_FILE_NOT_FOUND=0]="DEVELOPER_FILE_NOT_FOUND",e[e.INTERNAL_IOS_CAN_NOT_FOUND_PKG=1]="INTERNAL_IOS_CAN_NOT_FOUND_PKG",e[e.USER_IOS_LOAD_TIMEOUT=2]="USER_IOS_LOAD_TIMEOUT",e[e.INTERNAL_IOS_PKG_LOAD_ERROR=3]="INTERNAL_IOS_PKG_LOAD_ERROR",e[e.INTERNAL_IOS_PKG_PARSE_FAIL=4]="INTERNAL_IOS_PKG_PARSE_FAIL",e[e.USER_IOS_GET_EMPTY_DATA=5]="USER_IOS_GET_EMPTY_DATA",e[e.USER_ANDROID_GET_PKG_FAIL=6]="USER_ANDROID_GET_PKG_FAIL",e[e.DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE=7]="DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE",e))(Da||{}),xr=class extends Error{constructor(e){if(typeof e=="string"){super(e),this.priority="P1";return}super(e.message),this.priority="P1",this.stack=e.stack,this.raw=e}},Sr=class extends xr{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}},Qn=class extends xr{constructor(){super(...arguments),this.kind="USER_ERROR"}},Xn=class extends Qn{constructor(){super(...arguments),this.name="USER_VALIDATE_ERROR"}},Ke=class extends Qn{constructor(e,t,r){super(e),this.message=e,this.errNo=t,this.name="USER_CUSTOM_ERROR",this.errMsg=e,r&&(this.extra=Object.assign({},this.extra,r))}},Zn=class extends Sr{constructor(){super(...arguments),this.name="INTERNAL_SCHEMA_PARSE_ERROR",this.priority="P0"}},eo=class extends Sr{constructor(){super(...arguments),this.name="INTERNAL_GLOBAL_JS_ERROR",this.priority="P1"}},Ve=class extends xr{constructor(e,t,r,n,o){super(e),this.message=e,this.code=t,this.kind="API_ERROR",this.name="API_ERROR",r&&(this.errorType=r),n!==void 0&&(this.stack=n),o&&(this.priority=o)}toJSON(){return{message:this.message,stack:this.stack,name:this.name,code:this.code,errorType:this.errorType}}},Tr=class extends Sr{constructor(){super(...arguments),this.name="INTERNAL_REPORTER_ERROR"}};ne={log:Me("log"),warn:Me("warn"),info:Me("info"),error:Me("error"),debug:Me("debug")};Object.assign(globalThis,{logger:ne});to=Symbol.for("Jolibox.canIUseMap"),Ua={};globalThis[to]=Ua;Ir={get config(){return globalThis[to]}},Fa=(e=>(e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(Fa||{}),Rr=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(Rr||{}),ja=(e=>(e[e.App=0]="App",e[e.H5=1]="H5",e[e.Weapp=2]="Weapp",e[e.Alipay=3]="Alipay",e[e.Gcash=4]="Gcash",e[e.Dana=5]="Dana",e[e.Umma=6]="Umma",e[e.WebSDK=1e3]="WebSDK",e[e.AppSDK=1001]="AppSDK",e[e.Other=9999]="Other",e))(ja||{}),Ar=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)});Cr();ot={isiOS:navigator.userAgent.includes("iPhone")||navigator.userAgent.includes("iPod")||navigator.userAgent.includes("iPad")||navigator.userAgent.includes("iPhone OS"),iosVersion:()=>{let e=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);return[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3]||"0",10)]},isAndroid:navigator.userAgent.includes("Android"),isMac:navigator.userAgent.includes("Mac"),isFacebook:navigator.userAgent.includes("FB_IAB"),isPC:!navigator.userAgent.includes("iPhone")&&!navigator.userAgent.includes("Android")},Ma=()=>ot.isiOS?"iOS":ot.isAndroid?"Android":ot.isMac?"Mac":ot.isFacebook?"Facebook":"PC",Ba="device_id",Ha="advertising_id",ro=e=>(window.__joliboxLocalStorage__.getItem(e)||window.__joliboxLocalStorage__.setItem(e,Ar()),window.__joliboxLocalStorage__.getItem(e)),Pr=()=>new URLSearchParams(window.location.search).get("deviceId")||ro(Ba),$a=()=>ro(Ha),Ja=e=>e.charAt(0).toUpperCase()+e.slice(1),Ka=()=>{var e;let t=new URLSearchParams(window.location.search);return Ja((e=t.get("utm_source"))!=null?e:"")||"JoliboxSDK"},no=e=>{let t="JoliboxWebSDK",r=Ma(),n=navigator.language,o=Pr(),i=$a();return`${t} (${Ka()}${r}; UnknownModel; UnknownSystemVersion; ${n}) uuid/${o} adid/${i} version/${e||""}`},yr=class br{constructor(t){this.element=t,this.next=br.Undefined,this.prev=br.Undefined}};yr.Undefined=new yr(void 0);U=yr,Va=class{constructor(){this._first=U.Undefined,this._last=U.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===U.Undefined}clear(){let e=this._first;for(;e!==U.Undefined;){let t=e.next;e.prev=U.Undefined,e.next=U.Undefined,e=t}this._first=U.Undefined,this._last=U.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new U(e);if(this._first===U.Undefined)this._first=r,this._last=r;else if(t){let o=this._last;this._last=r,r.prev=o,o.next=r}else{let o=this._first;this._first=r,r.next=o,o.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==U.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==U.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==U.Undefined&&e.next!==U.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===U.Undefined&&e.next===U.Undefined?(this._first=U.Undefined,this._last=U.Undefined):e.next===U.Undefined?(this._last=this._last.prev,this._last.next=U.Undefined):e.prev===U.Undefined&&(this._first=this._first.next,this._first.prev=U.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==U.Undefined;)yield e.element,e=e.next}},Ga=0,it=class{constructor(e){this.value=e,this.id=Ga++}},Be=class{constructor(e){this.options=e,this._size=0}dispose(e){var t,r;this._disposed||(this._disposed=!0,this._listeners&&(e?(this._listeners instanceof it&&(this._listeners=[this._listeners]),this._listeners=this._listeners.filter(n=>(n==null?void 0:n.value)===e)):(this._listeners=void 0,this._size=0)),(r=(t=this.options)==null?void 0:t.onDidRemoveLastListener)==null||r.call(t))}get event(){var e;return(e=this._event)!=null||(this._event=(t,r)=>{var n,o,i,s,a,l;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let c=new it(t);this._listeners?this._listeners instanceof it?this._listeners=[this._listeners,c]:this._listeners.push(c):((o=(n=this.options)==null?void 0:n.onWillAddFirstListener)==null||o.call(n,this),this._listeners=c,(s=(i=this.options)==null?void 0:i.onDidFirstListener)==null||s.call(i,this)),(l=(a=this.options)==null?void 0:a.onDidAddListener)==null||l.call(a,this),this._size++}),this._event}_deliver(e,t){var r;if(!e)return;let n=((r=this.options)==null?void 0:r.onListenerError)||Error.constructor;if(!n){e.value(t);return}try{e.value(t)}catch(o){n(o)}}fire(e){this._listeners&&(this._listeners instanceof it?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},oe=class{constructor(){this.listeners=new Map,this.listerHandlerMap=new WeakMap,this.cachedEventQueue=new Map}on(e,t){var r;let n=(r=this.listeners.get(e))!=null?r:new Be,o=s=>t(...s.args);this.listerHandlerMap.set(t,o),n.event(o),this.listeners.set(e,n);let i=this.cachedEventQueue.get(e);if(i)for(;i.size>0;)n.fire(Vn({event:e},i.shift()))}off(e,t){let r=this.listeners.get(e);if(r){let n=this.listerHandlerMap.get(t);r.dispose(n)}}emit(e,...t){let r=this.listeners.get(e);if(r)r.fire({event:e,args:t});else{let n=this.cachedEventQueue.get(e);n||(n=new Va,this.cachedEventQueue.set(e,n)),n.push({args:t})}}},wr={};Ra(wr,{None:()=>qa,filter:()=>za,once:()=>oo,toPromise:()=>Wa});qa=()=>{console.log("[Jolibox SDK] None Event")};vr=Symbol.for("Jolibox.hostEmitter"),Ya=()=>{let e=new oe;return globalThis[vr]||(globalThis[vr]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e)}),globalThis[vr]},ue=Ya();st=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new Be,this.onDidRegisterCommand=this._onDidRegisterCommand.event,console.log("[Jolibox SDK] command registry")}registerCommand(e){if(!e)throw new Error("invalid command");if(e.metadata&&Array.isArray(e.metadata.args)){let r=[];for(let o of e.metadata.args)r.push(o.constraint);let n=e.handler;e.handler=function(...o){return Qa(o,r),n(...o)}}let{id:t}=e;this._commands.get(t)&&console.info(`[Jolibox SDK] duplicated command is registered ${t}`),this._commands.set(t,e),this._onDidRegisterCommand.fire(t)}getCommand(e){return this._commands.get(e)}getCommands(){let e=new Map;for(let t of this._commands.keys()){let r=this.getCommand(t);r&&e.set(t,r)}return e}};st=Gn([Wn],st);Er=class{constructor(){this._onWillExecuteCommand=new Be,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new Be,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new st,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=Ca(3e4)),this._starActivation}executeCommand(e,...t){return Aa(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),wr.toPromise(wr.filter(this.registry.onDidRegisterCommand,r=>r===e))])]),this._tryExecuteCommand(e,t))})}executeCommandThowErr(e,...t){if(!this.registry.getCommand(e))throw new Error(`command '${e}' not found`);let r=this.registry.getCommand(e);this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),n}_tryExecuteCommand(e,t){let r=this.registry.getCommand(e);if(!r)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(n)}catch(n){return Promise.reject(n)}}invokeFunction(e,...t){let r=!1;try{return e(...t)}finally{r=!0}}};Er=Gn([Wn],Er);io=Symbol.for("Jolibox.commands")});function K(e,t={}){Or.emit("ERROR_REPORT",{error:e,options:t})}var Or,be,ie=x(()=>{"use strict";P();P();Or=new oe,be=new oe;K.debounce=Je(K,50,{leading:!0})});var Nr,tl,so,ao,lo=x(()=>{"use strict";P();ie();Nr=e=>{let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=t.length%4===0?"":"=".repeat(4-t.length%4),n=atob(t+r);try{return JSON.parse(n)}catch(o){return{}}},tl=e=>{let t=JSON.stringify(e);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")},so=e=>{var t;try{let o=(t=new URL(e).searchParams.get("joliSource"))==null?void 0:t.split(".");if(o!=null&&o.length){let[i,s,a]=o;return{headerJson:Nr(i),payloadJson:Nr(s),signature:Nr(a)}}else throw"joli_source is missing"}catch(r){return K(new Zn(`${e} not a valid schema: ${r}`)),{headerJson:{},payloadJson:{},signature:{}}}},ao=(e,t)=>{let r=t.split(".");if(r&&r.length===3){let n=r[0],o=tl(e),i=r[2];return`${n}.${o}.${i}`}return t}});var rl,lt,co,Dr=x(()=>{"use strict";P();rl="1.1.13-beta.10",lt=()=>rl,co=()=>{let e=lt();return`${no(e)}`}});var nl,uo,Lr,po,V,ol,g,J=x(()=>{"use strict";P();lo();Dr();P();nl={deviceInfo:{brand:"UnknownBrand",model:"UnknownModel",did:Pr(),pixelRatio:window.devicePixelRatio||1,platform:"h5",system:"UnknownSystemVersion",lang:"zh"},sdkInfo:{nativeSDKVersion:"",jssdkVersion:lt()},schema:window.location.href,platform:"h5"},Lr=(uo=globalThis.joliboxJSCore)==null?void 0:uo.env,V=Object.assign({},(po=Lr==null?void 0:Lr())!=null?po:nl),ol=()=>{var p,m,v,E,h,_,b,T,A;let{payloadJson:e,headerJson:t,signature:r}=V.schema.length?so(V.schema):{},n=`${V.deviceInfo.did}-${new Date().getTime()}`,i=new URL(V.schema.length?V.schema:window.location.href).searchParams,s=(v=(m=(p=i.get("mpId"))!=null?p:i.get("appId"))!=null?m:i.get("gameId"))!=null?v:"",a=(_=(h=(E=V.clientSessionId)!=null?E:e==null?void 0:e.sessionId)!=null?h:i.get("sessionId"))!=null?_:n,l=!!((b=e==null?void 0:e.testAdsMode)!=null?b:i.get("testAdsMode")==="true"),c=(A=(T=e==null?void 0:e.joliboxEnv)!=null?T:i.get("joliboxEnv"))!=null?A:"production",d=c==="staging",u=t==null?void 0:t.channel;return{get testMode(){return d},get testAdsMode(){return l},get joliboxEnv(){return c},get joliSource(){var C;return(C=i.get("joliSource"))!=null?C:null},get mpId(){var C;return(C=s!=null?s:e==null?void 0:e.id)!=null?C:""},get mpVersion(){var C;return(C=t==null?void 0:t.ver)!=null?C:lt()},get mpType(){var C,k;return(k=(C=t==null?void 0:t.__mpType)!=null?C:e==null?void 0:e.__mpType)!=null?k:"game"},get platform(){var C;return(C=V.platform)!=null?C:V.deviceInfo.platform},get deviceInfo(){return V.deviceInfo},get sdkInfo(){return V.sdkInfo},get hostInfo(){return V.hostInfo},get hostUserInfo(){return V.hostUserInfo},get sessionId(){var C,k;return(k=(C=V.clientSessionId)!=null?C:a)!=null?k:n},get channel(){return u},get webviewId(){var C;return(C=V.webviewId)!=null?C:-1},get shouldInterupt(){return e==null?void 0:e.__shouldInterupt},get from(){return e==null?void 0:e.__from},get baseApiHost(){return d?"https://stg-api.jolibox.com":"https://api.jolibox.com"},onEnvConfigChanged:C=>{zn(V,C,Yn)},encodeJoliSourceQuery:C=>{var k,$;return t&&r?ao(w(w({},e),C),(k=i.get("joliSource"))!=null?k:""):($=i.get("joliSource"))!=null?$:""}}},g=ol()});var Ur,fo,il,sl,mo,al,ho=x(()=>{"use strict";P();ie();J();P();Ur=!1,fo=(e,t)=>e==null?!1:t in e,il=e=>fo(e,"kind"),sl=e=>{let t=e.toLowerCase().split("_");return t[0]+t.slice(1).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")},mo=(e,t={},r)=>{var i,s,a;let n={user_id:(s=(i=g.hostUserInfo)==null?void 0:i.uid)!=null?s:"",device_id:(a=g.deviceInfo.did)!=null?a:"",timestamp:Date.now(),tag:sl(e.name)},o=O(w({},n),{env:t.environment,isFromUser:r});r?be.emit("GLOBAL_USER_ERROR",e,o):be.emit("GLOBAL_ERROR",e,o)},al=e=>fo(e,"kind")&&e.kind==="USER_ERROR";Or.on("ERROR_REPORT",({error:e,options:t})=>{if(Ur)return;Ur=!0;let r=il(e)&&e.raw?e.raw:e;try{let n=al(e);mo(e,t,n)}catch(n){let o=n instanceof Error?n.message:String(n),i=new Tr(`${o}, origin error: ${r.message}`);ne.error(i),mo(new Tr(i.message),{environment:t.environment},!1)}finally{Ur=!1}})});var _e,Fr,Re=x(()=>{"use strict";ie();P();ie();_e=(e,t)=>{var r,n;return new Ve((n=(r=t==null?void 0:t.errMsg)!=null?r:e.msg)!=null?n:"",e.code,e.type)},Fr=e=>new Xn(e)});var _o=x(()=>{"use strict";ho();Re();P();G();be.on("GLOBAL_ERROR",(e,t)=>{var n;let r={message:e.message,stack:(n=e.stack)!=null?n:"",errorType:e.name,source:0};N("trackAsync",{event:"reportJsError",data:r})});be.on("GLOBAL_USER_ERROR",(e,t)=>{ne.log("UserError",e,t)})});var jr=x(()=>{"use strict"});function go(e,t){let r=(n,o,i)=>{let s=O(w({tag:n},t),{extra:w({},o)});n=="globalJsError"?K(new eo(JSON.stringify(s))):e("systemLog",s,i)};return r.debounce=Je(r,500,{leading:!0}),r}function vo(e){let t=(r,n,o)=>{var a;let i=(a=o&&JSON.stringify(o))!=null?a:0,s={speed_value_type:r,total_duration:n};i&&Object.assign(s,{extra:i}),e("joliboxSpeedAnalysis",s)};return t.debounce=Je(t,500,{leading:!0}),t}var yo=x(()=>{"use strict";P();P();ie()});function bo(e,t){let r=go(e,t),n=vo(r);return{track:r,trackPerformance:n}}var wo=x(()=>{"use strict";yo()});var Eo=x(()=>{"use strict";J();P();P()});var ko=x(()=>{"use strict";wo();jr();Eo()});var ct,xo=x(()=>{"use strict";ct=class{constructor(t,r){this.eventEmitter=t;this.lastReportTime=0;this.visible=!0;this.timer=this.createRAFTimer(t=>{this.reporter({event:"PLAY_GAME",params:{duration:t}}),this.tracker("PlayGame",{duration:t})});this.interval=r!=null?r:5*1e3,t.on("visible",n=>{this.visible=n})}start(t){this.reporter({event:"OPEN_GAME",params:{timestamp:Date.now(),duration:t!=null?t:0}}),this.tracker("OpenGame",{duration:t!=null?t:0}),this.timer.start()}close(t){this.reporter({event:"CLOSE_GAME",params:{timestamp:Date.now(),duration:t}}),this.tracker("CloseGame",{duration:t}),this.timer.stop()}createRAFTimer(t){let r=Date.now(),n,o,i=!1,s=0,a=()=>{if(!i)return;let m=Date.now(),v=m-r;v>=this.interval&&(this.visible&&(s+=v,t(s)),r=m),n=requestAnimationFrame(a)},l=()=>{d(),r=Date.now(),o=window.setInterval(()=>{if(!i)return;let m=Date.now();m-r>=this.interval&&(r=m)},this.interval)},c=()=>{u(),r=Date.now(),n=requestAnimationFrame(a)},d=()=>{n&&(cancelAnimationFrame(n),n=0)},u=()=>{o&&(clearInterval(o),o=0)};this.eventEmitter.on("visible",m=>{i&&(console.log("visible",m),m?c():l())});let p=this.visible;return{start(){i||(i=!0,p?c():l())},stop(){i=!1,d(),u()}}}}});var Mr=x(()=>{"use strict"});function To(e,t,r){let{response:n,startTime:o,endTime:i,requestFrom:s}=r,{errMsg:a="",profile:l={}}=n,d={duration:i-o,request_type:e,url:t.split("?")[0],result:r.state,error_msg:r.state==="fail"?a:"",socket_reused:l.socketReused?1:0,request_from:s};(s==="public"&&So<cl||s==="inner")&&(d.joli_request_number=So++,setTimeout(()=>{Q("joliboxNetRequestResult",d)},500))}var So,cl,Io=x(()=>{"use strict";Mr();ge();So=0,cl=10});function ut(e,t,r){var l,c,d;let n=new Map,o=(l=r==null?void 0:r.baseUrl)!=null?l:"https://api.jolibox.com",i=(c=r==null?void 0:r.type)!=null?c:"public",s=(d=r==null?void 0:r.defaultHeaders)!=null?d:{};return re("onRequestTaskStateChange",u=>{if(typeof u.requestTaskId!="string")return;let p=n.get(u.requestTaskId);if(p)if(u.state==="success"){let m=u,{requestTaskId:E,state:h}=m,_=Z(m,["requestTaskId","state"]);u.statusCode===200?p.resolve(_):p.reject(_),n.delete(E)}else if(u.state==="fail"){let v=u,{requestTaskId:E,state:h}=v,_=Z(v,["requestTaskId","state"]);p.reject(_),n.delete(E)}else ne.warn("onRequestTaskStateChange unknown event",u)}),ue.on("onLoginComplete",({isLogin:u,token:p})=>{u&&p&&(s["X-JOLI-TOKEN"]=p)}),(m,...v)=>y(this,[m,...v],function*(u,p={}){let E=Date.now(),h=ul(u,O(w({},p),{baseUrl:o})),{method:_="GET",responseType:b="text",dataType:T="json",timeout:A,enableCache:C=!1,appendHostCookie:k=!0}=p,$=Object.assign({"content-type":"application/json"},s,p.header),z={url:h,method:_,header:$,enableCache:C,responseType:b,appendHostCookie:k};if(_=="POST"||_=="PUT"){let te=pl(p.data,$["content-type"]);z.data=te}A&&Object.assign(z,{timeout:A});let{data:{requestTaskId:ae}}=N(e,z);if(typeof ae!="string")throw _e({code:-1,msg:"requestTaskId is not a string"});let Ie=(te,le)=>{To("request",h,{state:te,startTime:E,endTime:Date.now(),params:z,response:le,requestId:ae,requestFrom:i=="public"?"public":"inner"})},{resolve:X,reject:ve,promise:gs}=new he;n.set(ae,{resolve:X,reject:ve});try{let te=yield gs;Ie("success",te);let{data:le}=te;return T==="json"&&typeof le=="string"&&(le=dl(le)),{url:h,timeout:A,method:_,response:O(w({},te),{data:le})}}catch(te){let le=te;if(ye(le)){let{errMsg:Qe,prefetchDetail:vs,isPrefetch:ys,errNo:bs}=le;He(Qe)&&(Ie("fail",{errMsg:Qe,isPrefetch:ys,prefetchDetail:vs}),K(_e({code:-1,msg:Qe},{errNo:bs,errMsg:Qe})))}throw te}})}function dl(e){try{return JSON.parse(e.trim())}catch(t){return e}}function pl(e,t="application/json"){let r=t.toLowerCase();return e===void 0?"":typeof e=="string"||e instanceof ArrayBuffer?e:r.includes("application/x-www-form-urlencoded")||r.includes("application/json")||typeof e=="object"?JSON.stringify(e):String(e)}var ul,Br=x(()=>{"use strict";P();Io();Mr();G();ie();Re();ul=(e,t)=>{if(/^https?:\/\//.test(e))return e;let r=t==null?void 0:t.query,o=new URLSearchParams(r).toString();return t!=null&&t.baseUrl?`${t.baseUrl}${e}${o?`?${o}`:""}`:`${e}${o?`?${o}`:""}`}});var Hr,Ro,q,Ae=x(()=>{"use strict";Dr();Br();J();Hr={"x-user-agent":co()};(Ro=g.hostUserInfo)!=null&&Ro.token&&(Hr["x-joli-token"]=g.hostUserInfo.token);g.joliSource&&(Hr["x-joli-source"]=g.joliSource);q=ut("createRequestTaskSync","operateRequestTaskSync",{type:"inner",baseUrl:g.testMode?"https://stg-api.jolibox.com":"https://api.jolibox.com",defaultHeaders:Hr})});var dt,Ao=x(()=>{"use strict";J();xo();Ae();G();dt=class extends ct{constructor(t,r,n){super(r,n),this.gameId=g.mpId,this.sessionId=g.sessionId,this.track=t}reporter(t){return y(this,null,function*(){let{event:r,params:n}=t,o=[];o.push(q("/api/base/app-event",{method:"POST",data:{eventType:r,gameInfo:w({gameId:this.gameId,sessionId:this.sessionId},n)}})),yield Promise.all(o)})}reportToNative(t){return y(this,null,function*(){let{event:r,params:n}=t;yield Y("userTrackAsync",{event:r,params:w({},n),gameId:this.gameId})})}tracker(t,r=null){this.track(t,r)}}});var Do={};yn(Do,{nativeTaskEmitter:()=>Ge,taskTracker:()=>W,track:()=>Q,trackPerformance:()=>Oo});var ml,Co,Po,Q,Oo,No,Ge,W,ge=x(()=>{"use strict";_o();P();jr();ko();J();Ao();G();ml=(e,t,r)=>{var s,a;let n=t,o=ye(n.extra)?n.extra:He(n.extra)?JSON.parse(n.extra):{},i=O(w({},o),{mp_id:(s=n.mp_id)!=null?s:"",mp_version:(a=n.mp_version)!=null?a:""});N("trackAsync",{event:e,data:i,webviewId:r})},{track:Q,trackPerformance:Oo}=bo(ml,{type:Rr.AppSDK,platform:"native",jssdk_version:(Po=(Co=g.sdkInfo)==null?void 0:Co.jssdkVersion)!=null?Po:"1.0.0",mp_id:g.mpId,mp_version:g.mpVersion}),No=j();No.registerCommand("ReportSDK.traceSystemTimeline",({event:e,duration:t,extra:r})=>{Oo(e,t,r)});No.registerCommand("ReportSDK.traceSystem",({event:e,info:t})=>{Q(e,t)});Ge=new oe,W=new dt(Q,Ge)});function Lo(){let e=null,t=window.fetch,r=()=>{e=document.createElement("style"),e.setAttribute("data-jolibox-sdk","default-styles");let i=`
2
2
  html[data-jolibox-root] {
3
3
  height: 100%;
4
4
  margin: 0;
@@ -16,6 +16,133 @@ var lo=Object.create;var Ae=Object.defineProperty,uo=Object.defineProperties,mo=
16
16
  min-height: 100dvh;
17
17
  }
18
18
  }
19
- `;e.textContent=s;let i=document.head||document.getElementsByTagName("head")[0];i.insertBefore(e,i.firstChild),document.documentElement.setAttribute("data-jolibox-root","")},n=()=>{function s(a){return b(this,null,function*(){let l=a instanceof URL?a.href:a,d=new Promise((c,m)=>{let p=new XMLHttpRequest;p.open("GET",l),p.responseType="arraybuffer",p.addEventListener("load",()=>c(p.response)),p.addEventListener("error",m),p.send()});try{let c=yield d;return new Response(c,{headers:new Headers([["Content-Type","application/wasm"]])}).clone()}catch(c){throw console.error("Failed to load wasm:",c),c}})}let i=window.fetch;window.fetch=(a,l)=>{let d=a instanceof URL?a.href:a.toString();return d.endsWith(".wasm")?s(d):i(a,l)}},o=()=>{e!=null&&e.parentNode&&(e.parentNode.removeChild(e),e=null),document.documentElement.removeAttribute("data-jolibox-root"),window.fetch=t};return r(),n(),o}var An=g(()=>{"use strict"});var He,xn=g(()=>{"use strict";He=class{constructor(t){this.track=t;this.adBreakIsShowing=!1;this.reportPageJumpOut=()=>{this.track("AdBreakJumpOut",{context:"AdsActionDetection"})};this.reportPageHide=()=>{this.track("AdBreakHide",{context:"AdsActionDetection"})};window.addEventListener("visibilitychange",()=>{document.hidden&&this.adBreakIsShowing&&this.reportPageHide()}),window.addEventListener("beforeunload",r=>{this.adBreakIsShowing&&this.reportPageJumpOut()})}}});var Je,cs,ls,ds,us,Cn=g(()=>{"use strict";Je=class{constructor(t,r,n,o){this.track=t;this.httpClient=r;this.checkNetwork=n;this.checkAdsDisplayPermission=t=>{if(!this.checkNetwork())return{reason:"NETWORK_NOT_OK"};let r=this.checkShouldBanInitial();if(r)return{reason:r};let n=this.checkShouldBanForSession(t);if(n)return{reason:n};let o=this.checkShouldBanHighFreq(t);if(o)return o;let s=this.checkShouldBanForTime(t);return s?{reason:s}:{reason:"ALLOWED"}};var p,T,w,v,f,k,_;let s=(p=o==null?void 0:o.maxAllowedAdsForTime)!=null?p:8,i=(T=o==null?void 0:o.banForTimeThreshold)!=null?T:6e4,a=(w=o==null?void 0:o.bannedReleaseTime)!=null?w:6e4,l=(v=o==null?void 0:o.maxAllowedAdsForSession)!=null?v:200,d=(f=o==null?void 0:o.banForSessionThreshold)!=null?f:6e5,c=(k=o==null?void 0:o.initialThreshold)!=null?k:2e3,m=(_=o==null?void 0:o.highFreqThreshold)!=null?_:2e3;this.checkShouldBanInitial=ds(c),this.checkShouldBanHighFreq=us(m),this.checkShouldBanForTime=ls(s,i,a),this.checkShouldBanForSession=cs(l,d)}report(t,r){let n=r?{reason:t,count:r}:{reason:t};this.track("PreventAdsCheating",n),this.httpClient.post("/api/base/app-event",{data:{eventType:"PREVENT_ADS_CHEATING",adsInfo:n}})}},cs=(e,t)=>{let r=!1,n=[];return s=>{if(r)return"BANNED_FOR_SESSION";let i=Date.now();if(n=n.concat({timestamp:i,type:s}),n.length!==1&&(n.length>e&&(n=n.slice(-e)),n.length===e&&i-n[0].timestamp<=t))return r=!0,"BANNED_FOR_SESSION"}},ls=(e,t,r)=>{let n=null,o=c=>{n&&(window.clearTimeout(n),n=null),n=window.setTimeout(()=>{l.value=!1,n=null},c)},s="jolibox-sdk-ads-callbreak-timestamps",i="jolibox-sdk-ads-ban-for-time",a={_records:[],init(){var c;try{let m=JSON.parse((c=window.localStorage.getItem(s))!=null?c:"[]");Array.isArray(m)?this._records=m:this._records=[]}catch(m){this._records=[]}},get values(){return this._records},set values(c){try{window.localStorage.setItem(s,JSON.stringify(c))}catch(m){}this._records=c}},l={_record:!1,init(){var c;try{let m=JSON.parse((c=window.localStorage.getItem(i))!=null?c:"false");typeof m=="boolean"&&(this._record=m)}catch(m){this._record=!1}if(this._record){let m=a.values[a.values.length-1],p=m?Date.now()-m.timestamp:r;p<=r&&p>0?o(p):this._record=!1}},get value(){return this._record},set value(c){try{window.localStorage.setItem(i,JSON.stringify(c))}catch(m){}this._record=c}};return a.init(),l.init(),c=>{if(l.value)return"WAITING_BANNED_RELEASE";let m=Date.now();if(a.values=a.values.concat({timestamp:m,type:c}),a.values.length!==1&&(a.values.length>e&&(a.values=a.values.slice(-e)),a.values.length===e&&m-a.values[0].timestamp<=t))return l.value=!0,o(r),"BANNED_FOR_TIME"}},ds=e=>{let t=Date.now();return()=>{if(Date.now()-t<=e)return"BLOCK_INITIAL"}},us=(e=2e3)=>{let t=0,r=null;return o=>{if(o==="reward"){if(r)return t+=1,{reason:"HOLDING_HIGH_FREQ",info:{count:t}};r=window.setTimeout(()=>{r&&(window.clearTimeout(r),r=0,t=0)},e)}}}});var Ve,Pn=g(()=>{"use strict";q();Ve=class{constructor(t){this.httpClient=t;this.configs=null;this.firstRun=!0;this.init()}init(){return b(this,null,function*(){try{this.configs=yield this.httpClient.get("/api/fe-configs/js-sdk/ads-channel-config")}catch(t){}})}shouldBypassCallingInterstitial(){var r,n;let t;if(!this.configs)this.init(),t=!this.firstRun;else{let o=(r=E.channel)!=null?r:"",s=this.configs[o],i=(n=s==null?void 0:s.interstitialRate)!=null?n:1;t=Math.random()<i}return this.firstRun=!1,t}}});var ge,$e,zt=g(()=>{"use strict";xn();Cn();q();Pn();S();ge=new z,$e=class{constructor(t,r,n){this.track=t;this.httpClient=r;this.checkNetwork=n;this.configured=!1;this.config={};this.getGameId=()=>E.mpId;this.getTestAdsMode=()=>E.testAdsMode;this.asyncLoad=()=>b(this,null,function*(){var i,a,l,d,c;let t="ca-pub-7171363994453626",r,n,o=window.encodeURIComponent(window.btoa((i=this.getGameId())!=null?i:"")),s=(a=this.getTestAdsMode())!=null?a:!1;try{let m=yield this.httpClient.get("/public/ads",{query:{objectId:o,testAdsMode:`${s}`}});t=(l=m.data)==null?void 0:l.clientId,r=(d=m.data)==null?void 0:d.channelId,n=(c=m.data)==null?void 0:c.unitId}catch(m){console.error("Failed to fetch client info",m)}this.clientId=t,this.channelId=r,this.unitId=n});this.asyncInit=t=>b(this,null,function*(){var o;if(typeof window=="undefined")return;yield this.asyncLoad();let r="google-adsense",n=(o=this.getTestAdsMode())!=null?o:!1;if(!document.getElementById(r)&&this.clientId){let s=document.createElement("script");s.id=r,s.async=!0,s.crossOrigin="anonymous",s.src=`https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=${this.clientId}`,n&&s.setAttribute("data-adbreak-test","on"),this.channelId&&s.setAttribute("data-ad-channel",this.channelId),document.head.appendChild(s),this.track("LoadAdsenseCompleted",null)}});this.push=(t={})=>{window.adsbygoogle.push(t)};this.wrapAdBreakParams=t=>{if((n=>n.type==="preroll")(t)){ge.emit("isAdShowing",!0);let n=t.adBreakDone,o=s=>{ge.emit("isAdShowing",!1),n&&n(s)};return x(y({},t),{adBreakDone:o})}else{let n=t.beforeAd,o=t.afterAd,s=()=>{var a;ge.emit("isAdShowing",!0),this.track("CallBeforeAd",{type:t.type,name:(a=t.name)!=null?a:""}),n&&n()},i=()=>{var a;ge.emit("isAdShowing",!1),this.track("CallAfterAd",{type:t.type,name:(a=t.name)!=null?a:""}),o&&o()};return x(y({},t),{beforeAd:s,afterAd:i})}};this.adConfig=t=>{let o=t,{onReady:r}=o,n=ae(o,["onReady"]);this.track("CallAdConfig",n),this.configured?console.warn("Ad config already set, skipping"):(this.configured=!0,this.push(t))};this.adBreak=t=>{var d,c,m,p,T,w;if(!this.getGameId()){console.warn("Game ID is not set, skip calling adBreak");return}if(t.type!=="reward"&&!this.channelPolicy.shouldBypassCallingInterstitial()){(d=t.adBreakDone)==null||d.call(t,{breakType:t.type,breakName:"skipInterstitials",breakFormat:"interstitial",breakStatus:"viewed"});return}let{reason:r,info:n}=this.antiCheating.checkAdsDisplayPermission(t.type==="reward"?"reward":"interstitial");switch(r){case"NETWORK_NOT_OK":case"BANNED_FOR_SESSION":(c=t.adBreakDone)==null||c.call(t,{breakType:t.type,breakName:r,breakFormat:t.type==="reward"?"reward":"interstitial",breakStatus:"noAdPreloaded"}),this.antiCheating.report(r);return;case"BLOCK_INITIAL":case"BANNED_FOR_TIME":case"WAITING_BANNED_RELEASE":(m=t.adBreakDone)==null||m.call(t,{breakType:t.type,breakFormat:t.type==="reward"?"reward":"interstitial",breakStatus:"frequencyCapped"}),this.antiCheating.report(r);return;case"HOLDING_HIGH_FREQ":(T=t.adBreakDone)==null||T.call(t,{breakFormat:t.type==="reward"?"reward":"interstitial",breakName:"",breakStatus:((p=n==null?void 0:n.count)!=null?p:0)>6?"other":"frequencyCapped",breakType:t.type}),n!=null&&n.count&&n.count!==0&&n.count%3===0&&this.antiCheating.report(r,n==null?void 0:n.count);return;default:break}let o=t.type,s=t.adBreakDone,i=v=>{var f;this.adsActionDetection.adBreakIsShowing=!1,this.track("CallAdBreakDone",{breakType:v.breakType,breakName:(f=v.breakName)!=null?f:"",breakFormat:v.breakFormat,breakStatus:v.breakStatus}),s&&s(v)};if(t.adBreakDone=i,t.type==="reward"){let v=t.beforeReward,f=_=>()=>{this.track("CallShowAdFn",null),_()},k=_=>{v&&v(f(_))};t.beforeReward=k}let a;switch(o){case"preroll":a={type:o};break;case"start":case"pause":case"next":case"browse":case"reward":a={type:o,name:(w=t.name)!=null?w:""};break}this.adsActionDetection.adBreakIsShowing=!0,this.track("CallAdBreak",a);let l=this.wrapAdBreakParams(t);this.push(l),window.JoliTesterBridge&&console.log("joli-fullscreen-ad-show")};this.adUnit=t=>b(this,null,function*(){var p,T,w,v;if(this.track("CallAdUnit",{adFormat:(T=(p=t.adFormat)==null?void 0:p.toString())!=null?T:null,fullWidthResponsive:(w=t.fullWidthResponsive)!=null?w:null}),this.clientId||(yield this.asyncLoad()),document.querySelector("#jolibox-ads")){console.warn("Ad unit already set, skipping");return}let{el:r,slot:n,adFormat:o,fullWidthResponsive:s,style:i}=t,a;if(!r)throw new Error("targeting element is required");if(typeof r=="string"?a=document.querySelector(r):a=r,!a)throw new Error("targeting element not found");let l=n;if(l||(l=this.unitId),!l)throw new Error("slot is required");let d=typeof o=="object"&&Array.isArray(o)?o.join(", "):o,c=document.createElement("ins");if(c.className="adsbygoogle",c.id="jolibox-ads",c.style.display="block",c.setAttribute("data-ad-client",this.clientId),c.setAttribute("data-ad-slot",l),d&&c.setAttribute("data-ad-format",d),s&&c.setAttribute("data-full-width-responsive",s),i&&c.setAttribute("style",i),(v=this.getTestAdsMode())!=null?v:!1){let f=document.createElement("div");f.style.position="absolute",f.style.top="0",f.style.left="0",f.style.width="100%",f.style.height="100%",f.style.display="flex",f.style.justifyContent="center",f.style.alignItems="center",f.style.backgroundColor="rgba(0, 0, 0, 0.5)",f.style.color="white",f.innerHTML="Test Ad",c.style.position="relative",a.appendChild(c),c.appendChild(f)}else a.appendChild(c),new MutationObserver(k=>{k.forEach(_=>{if(_.type==="attributes"&&_.attributeName==="data-ad-status"){let h=c.getAttribute("data-ad-status");this.track("AdSenseUnitStatusChanged",{status:h!=null?h:"null"})}})}).observe(c,{attributes:!0,attributeFilter:["data-ad-status"]}),this.push({})});this.antiCheating=new Je(t,r,n),this.adsActionDetection=new He(this.track),this.channelPolicy=new Ve(r)}init(t){this.track("CallAdsInit",null),typeof window!="undefined"&&(this.config=t!=null?t:{},window.adsbygoogle=window.adsbygoogle||[],this.asyncInit(t))}}});var Nn={};lr(Nn,{config:()=>hs});function ms(){Z.on("onDocumentReady",()=>{var e;(e=se)==null||e.onDocumentReady(window.location.href),J("onDocumentReady",{start_timestamp:Ge,timestamp:Date.now()})})}function ps(e){E.mpType==="game"&&B.start(e)}function fs(){W("onJoliboxServiceReady",({runtimeInfo:e,loadDuration:t})=>{e&&E.onEnvConfigChanged({hostUserInfo:e}),Z.emit("LifecycleEvent.onReady",y({},E.hostUserInfo?E.hostUserInfo:{isLogin:!1})),J("joliboxServiceReady",{start_timestamp:Ge,timestamp:Date.now()}),ps(t)}),W("onBeforeExit",({uuid:e})=>{var t;(t=se)==null||t.doExit(e)})}function hs(){Ge=Date.now(),fs(),ms(),Ke=Rn()}var Ke,qe,Ge,On=g(()=>{"use strict";V();Fe();q();S();ie();An();zt();K.onReady(()=>{});K.doExit(()=>(J("onBeforeExit",{timestamp:Date.now()}),Ke==null||Ke(),B.close(Date.now()-Ge),!!qe));qe=!1;ge.on("isAdShowing",e=>{qe=e,gr(qe)&&C("updateContainerConfigSync",{displayCapsuleButton:!qe,webviewId:E.webviewId})})});function Dn(e){let t=_t.config[e];return t||(t={},_t.config[e]=t),(r,n)=>{if(t[r]){j.warn(`[can i use] ${r} already registered`);return}t[r]=y({},n)}}var Fn=g(()=>{"use strict";S()});function Wt(e){Un=e}function ze(e){return e===null||typeof e!="object"?e:Array.isArray(e)?e.map(t=>ze(t)):Object.keys(e).reduce((t,r)=>(t[r]=ze(e[r]),t),{})}function ee(e){return typeof e=="number"}function Yt(e){let t=Qt(e);switch(t){case"string":return`"${e}"`;case"number":case"boolean":case"null":case"undefined":return String(e);default:return`a(n) ${t}`}}function Qt(e){return typeof e=="function"?"function":Object.prototype.toString.call(e).slice(8).slice(0,-1).toLowerCase()}var Un,P,We,Ye,Qe,Xe,ye,Ze,et,tt,rt,nt,ot,st,it,at,ct,lt,dt,Xt=g(()=>{"use strict";Un=!1;P=class{constructor(){this.errors=[];this.hasFallback=!1;this.hasDefault=!1;this._optional=!1}fail(t){if(Un)if(typeof t=="string")this.errors.push(t);else{let r=`${this.path} should be ${t.expect}`;this._optional&&t.expect!=="undefined"?r+=" or undefined, ":r+=", ",r+=`but got ${Yt(t.actual)}`,this.errors.push(r)}return!1}fallback(t){return this.hasFallback=!0,this._fallback=t,this}get fallbackValue(){return ze(this._fallback)}default(t){return this.hasDefault=!0,this._default=t,this}get defaultValue(){return typeof this._default=="function"?this._default:ze(this._default)}optional(){return this._optional=!0,this}};We=class extends P{validate(t){return this._optional&&t===void 0?!0:ee(t)?ee(this._min)&&t<this._min?this.fail(`the value of ${this.path} should be greater than or equal to ${this._min}`):ee(this._max)&&t>this._max?this.fail(`the value of ${this.path} should be less than or equal to ${this._max}`):ee(this._greater)&&t<=this._greater?this.fail(`the value of ${this.path} should be greater than ${this._greater}`):this._isInt&&t!==Math.floor(t)?this.fail(`the value of ${this.path} should be integer but got ${t}`):!0:this.fail({expect:"number",actual:t})}min(t){return this._min=t,this}max(t){return this._max=t,this}isInt(t){return this._isInt=t,this}greater(t){return this._greater=t,this}},Ye=class extends P{validate(t){return this._optional&&t===void 0?!0:typeof t!="boolean"?this.fail({expect:"boolean",actual:t}):!0}},Qe=class extends P{validate(t){if(this._optional&&t===void 0)return!0;if(typeof t!="string")return this.fail({expect:"string",actual:t});if(ee(this._maxLength)&&t.length>this._maxLength)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxLength}`);if(ee(this._minLength)&&t.length<this._minLength)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minLength}`);if(typeof this._pattern=="string"){if(!new RegExp(this._pattern).test(t))return this.fail(`${this.path} should match pattern "${this._pattern}"`)}else if(this._pattern&&!this._pattern.test(t))return this.fail(`${this.path} should match pattern "${this._pattern.toString()}"`);return!0}minLength(t){return this._minLength=t,this}maxLength(t){return this._maxLength=t,this}pattern(t){return this._pattern=t,this}},Xe=class extends P{validate(t){return this._optional&&t===void 0?!0:typeof t!="symbol"?this.fail({expect:"symbol",actual:t}):!0}},ye=class extends P{validate(t){return!0}},Ze=class extends P{validate(t){return t!==void 0?this.fail({expect:"undefined",actual:t}):!0}},et=class extends P{validate(t){return this._optional&&t===void 0?!0:t!==null?this.fail({expect:"null",actual:t}):!0}},tt=class extends P{validate(t){return this._optional&&t===void 0?!0:typeof t!="function"?this.fail({expect:"function",actual:t}):!0}},rt=class extends P{constructor(...t){super(),this._items=t}validate(t){if(this._optional&&t===void 0)return!0;if(!this._items.includes(t)){let r=this._items.map(n=>JSON.stringify(n)).join(", ");return this.fail(`expect ${this.path} to be one of ${r}, but got ${Yt(t)}`)}return!0}},nt=class extends P{constructor(r){super();this._item=r}validate(r){if(this._optional&&r===void 0)return!0;if(!Array.isArray(r))return this.fail({expect:"array",actual:r});if(ee(this._minItems)&&r.length<this._minItems)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minItems}`);if(ee(this._maxItems)&&r.length>this._maxItems)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxItems}`);if(ee(this._length)&&r.length!==this._length)return this.fail(`the length of ${this.path} should be equal to ${this._length}`);let n=this._item;if(!n)return!0;let o=!0;if(r.forEach((s,i)=>{if(n.path=`${this.path}[${i}]`,n.errors=this.errors,s===void 0&&n.hasDefault){r[i]=n.defaultValue;return}n.validate(s)||(n.hasFallback?r[i]=n.fallbackValue:o=!1)}),this._uniqueItems){let s=new Map;for(let i in r)s.has(r[i])?o=this.fail(`${this.path} should NOT have duplicate items (${this.path}[${s.get(r[i])}] and ${this.path}[${i}] are identical)`):s.set(r[i],i)}return o}minItems(r){return this._minItems=r,this}maxItems(r){return this._maxItems=r,this}uniqueItems(){return this._uniqueItems=!0,this}length(r){return this._length=r,this}},ot=class extends P{constructor(r){super();this._value=r}validate(r){if(this._optional&&r===void 0)return!0;if(Qt(r)!=="object")return this.fail({expect:"object",actual:r});let o=r,s=this._value;s.errors=this.errors;let i=!0;for(let a in o){let l=o[a];if(/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(a)?s.path=`${this.path}.${a}`:s.path=`${this.path}["${a}"]`,!(l===void 0&&s._optional)){if(l===void 0&&s.hasDefault){o[a]=s.defaultValue;continue}s.validate(l)||(s.hasFallback?o[a]=s.fallbackValue:i=!1)}}return i}},st=class extends P{constructor(r={}){super();this._object=r}validate(r){if(this._optional&&r===void 0)return!0;if(Qt(r)!=="object")return this.fail({expect:"object",actual:r});let n=r,o=!0;for(let s in this._object){let i=n[s],a=this._object[s];if(a.errors=this.errors,/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(s)?a.path=`${this.path}.${s}`:a.path=`${this.path}["${s}"]`,!(a._optional&&i===void 0)){if(i===void 0&&a.hasDefault){n[s]=a.defaultValue;continue}a.validate(i)||(a.hasFallback?n[s]=a.fallbackValue:o=!1)}}return o}},it=class extends P{constructor(r){super();this.value=r}validate(r){return r===void 0&&this._optional?!0:r!==this.value?this.fail({expect:Yt(this.value),actual:r}):!0}},at=class extends P{constructor(...t){super(),this._items=t}validate(t){if(t===void 0&&this._optional)return!0;let r=[],n=!1,o=this._items.length;for(let s=0;s<o;s++){let i=this._items[s];if(i.errors=[],i.path=this.path,!i.validate(t))r.push(i.errors.join("; "));else if(!n){n=!0;break}}if(!n){let s=r.join(`
20
- or `);this.errors.push(s)}return n}},ct=class extends P{constructor(...t){super(),this._items=t;let r=0,n=t.length-1;for(;n>=0;n--){let o=t[n];if(o._optional||o.hasDefault)r+=1;else break}this._minItems=t.length-r}validate(t){if(t===void 0&&this._optional)return!0;if(!Array.isArray(t))return this.fail({expect:"array",actual:t});if(t.length<this._minItems)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minItems}`);let r=!0;return this._items.forEach((n,o)=>{if(n.path=`${this.path}[${o}]`,n.errors=this.errors,t[o]===void 0&&n.hasDefault){t[o]=n.defaultValue;return}n.validate(t[o])||(n.hasFallback?t[o]=n._fallback:r=!1)}),r}},lt=class extends P{validate(t){return t===void 0&&this._optional||t instanceof ArrayBuffer?!0:this.fail({expect:"arraybuffer",actual:t})}},dt=class extends P{constructor(t){super(),this._ctor=t}validate(t){return t===void 0&&this._optional||t instanceof this._ctor?!0:this.fail({expect:`typedarray of ${this._ctor.name}`,actual:t})}}});function Zt(e,t,r="param"){if(e.errors=[],e.path=r,Wt(!0),!e.validate(t)){let n=e.errors.join(`
21
- `);throw e.errors.length=0,Wt(!1),new TypeError(n)}}var u,er=g(()=>{"use strict";Xt();Xt();u={object(e){return new st(e)},array(e){return new nt(e)},tuple(...e){return new ct(...e)},literal(e){return new it(e)},or(...e){return new at(...e)},symbol(){return new Xe},record(e){return new ot(e)},function(){return new tt},boolean(){return new Ye},string(){return new Qe},number(){return new We},undefined(){return new Ze},null(){return new et},unknown(){return new ye},any(){return new ye},as(){return new ye},arraybuffer(){return new lt},enum(...e){return new rt(...e)},typedarray(e){return new dt(e)}}});var ut,Mn,Ln=g(()=>{"use strict";S();$();er();oe();ut=1,Mn=e=>{function t(n,o){return(...s)=>{var m,p,T,w;let i=Date.now(),a={method:n,trace_id:ut};ut+=1;let l="SUCCESS",d=`${n}:ok`,c=0;try{if(o.paramsSchema)try{Zt(o.paramsSchema,s,"params")}catch(_){throw Ct(`${n}:fail ${_.message}`)}let v=o.implement(...s),f=v,k=`${n}:ok`;if(v&&"code"in v){let{code:_,data:h,message:A}=v;l=_,f=h,k=A}return{code:l,message:k,data:f}}catch(v){let f=v;c=(p=(m=f.code)!=null?m:f.errNo)!=null?p:2e3,l="FAILURE";let k=(w=(T=f.message)!=null?T:f.errMsg)!=null?w:`${v}`;return d=`${n}:${l} ${k.replace(/^\S+:(fail|cancel)\s?/,"")}`,F(new Ie(d,c)),{code:l,message:d}}finally{let v=Date.now()-i;e("apiInvoked",x(y({},a),{duration:v,status:l}))}}}function r(n,o){return(...s)=>b(this,null,function*(){var p,T,w,v;let i=hr(s)?s:[s],a=Date.now(),l={method:n,trace_id:ut};ut+=1;let d=`${n}:ok`,c="SUCCESS",m={code:c,message:d};try{if(o.paramsSchema)try{Zt(o.paramsSchema,i,"params")}catch(_){throw Ct(_.message)}let k=yield o.implement(...i);if(k&&"code"in k){let{code:_,data:h,message:A}=k;c=_,d=A,k=h}return Object.assign(m,{code:c,message:d,data:k}),m}catch(f){let k=f,_=(T=(p=k.code)!=null?p:k.errNo)!=null?T:2e3;c="FAILURE";let h=(v=(w=k.message)!=null?w:k.errMsg)!=null?v:`${f}`,A=`${n}:${c} ${h.replace(/^\S+:(fail|cancel)\s?/,"")}`;return Object.assign(m,{code:c,message:A}),F(new Ie(A,_)),m}finally{let f=Date.now()-a;e("apiInvoked",x(y({},l),{duration:f,status:c}))}})}return{createAPI:r,createSyncAPI:t}}});var N,D,I,te=g(()=>{"use strict";Fn();ie();Ln();er();({createAPI:N,createSyncAPI:D}=Mn(J)),I=Dn("native")});var Bn,ys,vs,bs,ks,jn=g(()=>{"use strict";S();te();V();Bn=O(),ys="env",vs="getSystemInfoSync",bs=D(vs,{implement:()=>{var r;let e=C("envSync"),{data:t}=e;return{system:t.deviceInfo.system,platform:t.deviceInfo.platform,version:t.sdkInfo.jssdkVersion,pixelRatio:t.deviceInfo.pixelRatio,language:t.deviceInfo.lang,brand:t.deviceInfo.brand,appName:(r=t.hostInfo)==null?void 0:r.appName,SDKVersion:t.sdkInfo.jssdkVersion}}}),ks=D(ys,{implement:()=>{var t;let e=C("envSync");return(t=e==null?void 0:e.data)!=null?t:void 0}});Bn.registerCommand("API.getSystemInfoSync",bs);Bn.registerCommand("API.env",ks);I("env",{version:"1.0.0"});I("getSystemInfoSync",{version:"1.0.0"})});var Hn=cr(tr=>{"use strict";S();te();$();V();ie();var Ts="exitGame",Es="onReady",Ss="onJoliboxShow",Is="onJoliboxHide",mt=O(),pt=Oe(F),ws=N(Ts,{paramsSchema:u.tuple(u.function()),implement:e=>b(tr,null,function*(){pt(e).call(tr),yield H("exitAppAsync")})}),_s=D(Ss,{paramsSchema:u.tuple(u.function()),implement(e){let t=pt(e);W("onJoliboxEnterForeground",()=>{t.call(this),we.emit("visible",!0)})}}),Rs=D(Is,{paramsSchema:u.tuple(u.function()),implement(e){let t=pt(e);W("onJoliboxEnterBackground",()=>{t.call(this),we.emit("visible",!1)})}}),As=D(Es,{paramsSchema:u.tuple(u.function()),implement(e){let t=pt(e);Z.on("LifecycleEvent.onReady",r=>{t(r)})}});mt.registerCommand("LifecycleSDK.exit",ws);mt.registerCommand("LifecycleSDK.onReady",As);mt.registerCommand("LifecycleSDK.onJoliboxShow",_s);mt.registerCommand("LifecycleSDK.onJoliboxHide",Rs);I("lifeCycle.exit",{version:"1.0.0"});I("lifeCycle.onReady",{version:"1.0.0"});I("lifeCycle.onJoliboxShow",{version:"1.0.0"});I("lifeCycle.onJoliboxHide",{version:"1.0.0"})});function Jn(e){let t={};if(!M(e))return t;for(let[r,n]of Object.entries(e)){let o=r.toLocaleLowerCase();n?typeof n=="object"?t[o]=Object.prototype.toString.call(n):t[o]=String(n):t[o]=""}return t}function Vn(e="GET"){if(e==="")return"POST";let t=e.toUpperCase();return["GET","OPTIONS","HEAD","POST","PUT","DELETE","TRACE","CONNECT","PATCH"].includes(t)?t:"GET"}function $n(e,t=!1){if(e)return t||e>0&&e<=6e4?Math.ceil(e):6e4}function Kn(e,t,r){if(["POST","PUT","PATCH"].includes(t)||!M(r))return e;let[n,o=""]=e.split("?"),s=JSON.stringify(y(y({},JSON.parse(o)),r));return`${n}?${s}`}var qn=g(()=>{"use strict";S()});var xs,Cs,rr,nr,Gn,Ps,Ns,Os,zn=g(()=>{"use strict";oe();qt();te();qn();S();$();xs=15,Cs=Le("createRequestTaskSync","operateRequestTaskSync",{type:"public"}),rr=0,nr=[],Gn=Oe(F),Ps=(e,t)=>{let r=e.filter(t),n=e.filter(o=>!t(o));return e.length=0,e.push(...n),r},Ns=e=>{let t=new ne,r=()=>{};return N("request",{paramsSchema:u.tuple(u.object({url:u.string(),method:u.string(),header:u.object(),data:u.object().optional(),query:u.object().optional(),dataType:u.string().default("json"),responseType:u.string().default("text"),enableCache:u.boolean().default(!1),appendHostCookie:u.boolean().default(!0),timeout:u.number().default(3e4),success:u.function(),fail:u.function()})),implement(o){let s=()=>b(this,null,function*(){var a,l;let i=Gn(o.fail);try{if(rr+=1,t.state!=="pending")return;let{data:d,dataType:c,responseType:m,enableCache:p,appendHostCookie:T}=o,w=Jn(o.header),v=Vn(o.method),f=$n(o.timeout),k=Kn(o.url,v,d),_=Gn(o.success),h=Object.assign({},o,{method:v,header:w,data:v==="GET"||v==="HEAD"?void 0:d,enableCache:p,query:(a=o.query)!=null?a:{},dataType:c,responseType:m,appendHostCookie:T});f&&(h.timeout=f);let A=Cs(k,h);{let{response:fe}=yield A,{code:U,data:be,message:re}=fe;t.resolve({code:U!=null?U:"SUCCESS",data:be,message:re!=null?re:"request:ok"}),_({code:"SUCCESS",message:"request:ok",data:be})}}catch(d){t.reject(d),i({code:"FAILURE",message:"httpRequst: failed"})}finally{rr-=1,(l=nr.shift())==null||l()}});return rr>=xs?(r=()=>{Ps(nr,i=>i===s)},nr.push(s)):s(),t.promise}})(e),{abort(){t.reject(ue({code:-1,msg:"request:fail abort"})),r()}}},Os=O();Os.registerCommand("HttpSDK.request",Ns);I("request",{version:"1.0.0"})});function Bs(e){let t=Object.prototype.toString.call(e).split(" ")[1].split("]")[0].toLocaleLowerCase();return Ls.includes(t)?t:""}function js(e,t){try{switch(t){case"string":return e;case"object":return JSON.parse(e);case"number":return parseFloat(e);case"boolean":return e==="true";default:return""}}catch(r){return""}}function Hs(e,t){try{switch(t){case"string":case"number":case"boolean":return`${e}`;case"object":return JSON.stringify(e);default:return""}}catch(r){return""}}var ft,Ds,Fs,Us,Ms,ud,md,Ls,Wn=g(()=>{"use strict";te();V();S();Be();q();ft=O(),Ds=N("getLocalStorage",{paramsSchema:u.tuple(u.string()),implement(e){return b(this,null,function*(){let{response:t}=yield Y(`/api/games/user-storage/${E.mpId}`,{method:"GET",responseType:"json",appendHostCookie:!0,query:{key:e}}),{data:{code:r,message:n,data:o}}=yield t;if(r==="SUCCESS")return{code:r,message:n,data:o==null?void 0:o.value};try{let{data:{data:s,dataType:i}}=yield H("getLocalStorageAsync",{key:e}),a=js(s,i);return{code:r,message:`${n}. fallback to native`,data:a}}catch(s){return{code:"INTERNAL_ERROR",message:"[Jolibox SDK] get local storage failed",data:null}}})}});ft.registerCommand("StorageSDK.getItem",Ds);I("storage.getItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});Fs=N("setStorage",{paramsSchema:u.tuple(u.string(),u.or(u.string(),u.boolean(),u.number())),implement(e,t){return b(this,null,function*(){let r=E.mpId,n=typeof t=="string"?t:String(t),{response:o}=yield Y(`/api/games/user-storage/${r}`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e,value:n}}),{data:{code:s,message:i}}=o,a=Bs(t),l=Hs(t,a);return yield H("setLocalStorageAsync",{key:e,data:l,dataType:a}),s=="SUCCESS"?{code:s,message:i}:{code:s,message:`${i}. fallback to native`}})}});ft.registerCommand("StorageSDK.setItem",Fs);I("storage.setItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});Us=N("removeStorage",{paramsSchema:u.tuple(u.string()),implement(e){return b(this,null,function*(){let t=E.mpId,{response:r}=yield Y(`/api/games/user-storage/${t}/remove`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e}}),{data:{code:n,message:o}}=r;return yield H("removeLocalStorageAsync",{key:e}),n==="SUCCESS"?{code:n,message:o}:{code:n,message:"[Jolibox SDK] remove item succ"}})}});ft.registerCommand("StorageSDK.removeItem",Us);I("storage.removeItem",{version:"1.0.0",properties:{key:"1.0.0"}});Ms=N("clearStorage",{implement(){return b(this,null,function*(){let e=E.mpId,{response:t}=yield Y(`/api/games/user-storage/${e}/clear`,{method:"POST",appendHostCookie:!0});H("clearLocalStorageAsync");let{data:{code:r,message:n}}=t;return r==="SUCCESS"?{code:r,message:n}:{code:r,message:`${n}.fallback to native`}})}});ft.registerCommand("StorageSDK.clear",Ms);I("storage.clear",{version:"1.0.0"});ud=N("getStorageInfo",{implement(){return b(this,null,function*(){let{data:e}=yield H("getStorageInfoAsync");return e})}});I("getStorageInfo",{version:"1.0.0",success:{keys:"1.0.0",currentSize:"1.0.0",limitSize:"1.0.0"}});md=D("getStorageInfoSync",{implement(){return C("getStorageInfoSync")}}),Ls=["string","number","boolean","object",""]});var Js,Vs,$s,or,Yn=g(()=>{"use strict";S();V();te();Js=D("showKeyboard",{paramsSchema:u.tuple(u.object({defaultValue:u.string().optional().default(""),multiple:u.boolean().optional().default(!1),maxLength:u.unknown().optional().default(1e5)})),implement(e){var n;let t=Math.floor((n=Number(e.maxLength))!=null?n:1e5),{defaultValue:r}=e;r&&t&&(r=r.slice(0,t)),C("showKeyboardSync",x(y({},e),{defaultValue:r,maxLength:t}))}});I("keyboard.showKeyboard",{version:"1.0.0",properties:{params:{defaultValue:"1.0.0",multiple:"1.0.0",confirmHold:"1.0.0",confirmType:"1.0.0",maxLength:"1.0.0"}},success:{errMsg:"1.0.0"}});Vs=D("updateKeyboard",{paramsSchema:u.tuple(u.object({value:u.string()})),implement(e){C("updateKeyboardSync",e)}});I("keyboard.updateKeyboard",{version:"1.0.0",properties:{params:{value:"1.0.0"}}});$s=D("hideKeyboard",{implement(){C("hideKeyboardSync")}});I("keyboard.hideKeyboard",{version:"1.0.0"});or=O();or.registerCommand("KeyboardSDK.showKeyboard",Js);or.registerCommand("KeyboardSDK.updateKeyboard",Vs);or.registerCommand("KeyboardSDK.hideKeyboard",$s)});var Qn=cr(pe=>{"use strict";S();te();ie();var ve=O(),Ks=N("levelFinished",{paramsSchema:u.tuple(u.string(),u.object({result:u.boolean(),duration:u.number()})),implement:(e,t)=>b(pe,null,function*(){let{result:r,duration:n}=t,o=[];o.push(B.tracker("LevelFinished",{levelId:e,result:r,duration:n})),o.push(B.reporter({event:"COMPLETE_GAME_LEVEL"})),yield Promise.all(o)})}),qs=N("taskFinished",{paramsSchema:u.tuple(u.string(),u.object({duration:u.number()})),implement:(e,t)=>b(pe,null,function*(){let{duration:r}=t;return yield B.reportToNative({event:"TaskFinished",params:{duration:r,taskId:e}})})}),Gs=N("levelUpgrade",{paramsSchema:u.tuple(u.string(),u.string()),implement:(e,t)=>b(pe,null,function*(){let r=[];r.push(B.reportToNative({event:"LevelUpgrade",params:{name:t,levelId:e}})),yield Promise.all(r)})}),zs=N("onHistoryUserLevel",{paramsSchema:u.tuple(u.number()),implement:e=>b(pe,null,function*(){return yield B.reportToNative({event:"HistoryUserLevel",params:{level:e}})})}),Ws=N("onHistoryUserScore",{paramsSchema:u.tuple(u.number()),implement:e=>b(pe,null,function*(){return yield B.reportToNative({event:"HistoryUserScore",params:{score:e}})})}),Ys=N("taskEvent",{paramsSchema:u.tuple(u.string(),u.object({tools:u.array(u.object({id:u.string(),name:u.string(),count:u.number(),description:u.string().optional(),price:u.object({amount:u.number(),unit:u.string()}).optional()})).optional(),awards:u.array(u.object({id:u.string(),name:u.string()})).optional()})),implement:(e,t)=>b(pe,null,function*(){var n,o;let r=[];r.push(B.reportToNative({event:"TaskEvent",params:y({taskId:e},t)})),(o=(n=t.tools)==null?void 0:n.length)!=null&&o&&(r.push(B.reporter({event:"USE_GAME_ITEM"})),r.push(B.reportToNative({event:"UseGameItem",params:y({taskId:e},t)}))),yield Promise.all(r)})});ve.registerCommand("TaskTrackerSDK.levelFinished",Ks);ve.registerCommand("TaskTrackerSDK.taskFinished",qs);ve.registerCommand("TaskTrackerSDK.levelUpgrade",Gs);ve.registerCommand("TaskTrackerSDK.historyUserLevel",zs);ve.registerCommand("TaskTrackerSDK.historyUserScore",Ws);ve.registerCommand("TaskTrackerSDK.taskEvent",Ys);I("TaskTrackerSDK.onLevelFinished",{version:"1.0.0",properties:{levelId:"1.0.0",params:{result:"1.0.0",duration:"1.0.0"}}});I("TaskTrackerSDK.onTaskFinished",{version:"1.0.0",properties:{taskId:"1.0.0",duration:"1.0.0"}});I("TaskTrackerSDK.onLevelUpgrade",{version:"1.0.0",properties:{levelId:"1.0.0",name:"1.0.0"}});I("TaskTrackerSDK.onHistoryUserLevel",{version:"1.0.0",properties:{level:"1.0.0"}});I("TaskTrackerSDK.onHistoryUserScore",{version:"1.0.0",properties:{score:"1.0.0"}});I("TaskTrackerSDK.onTaskEvent",{version:"1.0.0",properties:{taskId:"1.0.0",params:{tools:{id:"1.0.0",name:"1.0.0",count:"1.0.0",description:"1.0.0",price:{amount:"1.0.0",unit:"1.0.0"}},awards:{id:"1.0.0",name:"1.0.0"}}}})});var Qs,Xs,Xn,Zn=g(()=>{"use strict";q();V();te();S();oe();I("login",{version:"1.0.0",properties:{force:"1.0.0"},success:{errMsg:"1.0.0",code:"1.0.0",token:"1.0.0",isLogin:"1.0.0"}});I("checkSession",{version:"1.0.0",success:{errMsg:"1.0.0"}});Qs=N("login",{implement(){return b(this,null,function*(){var i;let{data:{isLogin:e}}=yield H("checkLoginAsync");if(e)return{isLogin:!0,token:(i=E.hostUserInfo)==null?void 0:i.token};W("onLoginStateChange",({isLogin:a,token:l,uuid:d})=>{d==r&&o({isLogin:a,token:l})});let t=C("loginSync"),{data:{uuid:r}}=t;if(!r)throw ue({code:-1,msg:"login failed"});let{promise:n,resolve:o}=new ne,s=yield n;return E.onEnvConfigChanged({hostUserInfo:s}),Z.emit("onLoginComplete",s),s})}}),Xs=N("checkSession",{implement(){return b(this,null,function*(){let{data:{isLogin:e}}=yield H("checkLoginAsync");return{isLogin:e}})}}),Xn=O();Xn.registerCommand("API.login",Qs);Xn.registerCommand("API.checkSession",Xs)});var ht,Zs,gt,ei,ti,ri,ni,eo=g(()=>{"use strict";S();te();zt();ie();Be();V();ht=O(),Zs=()=>{let{data:e}=C("getNetworkStatusSync");return!!(e!=null&&e.isConnected)},gt=new $e(J,{get:(e,t)=>Y(e,y({method:"GET",responseType:"json",appendHostCookie:!0},t)).then(r=>r.response.data),post:(e,t,r)=>Y(e,y({method:"POST",responseType:"json",appendHostCookie:!0},r)).then(n=>n.response.data)},Zs),ei=D("adInit",{implement:e=>{gt.init(e)}}),ti=D("adConfig",{implement:e=>{gt.adConfig(e)}}),ri=D("adBreak",{implement:e=>{gt.adBreak(e)}}),ni=D("adUnit",{implement:e=>{gt.adUnit(e)}});ht.registerCommand("AdsSDK.init",ei);ht.registerCommand("AdsSDK.adConfig",ti);ht.registerCommand("AdsSDK.adBreak",ri);ht.registerCommand("AdsSDK.adUnit",ni);I("AdsSDK.init",{version:"1.0.0"});I("AdsSDK.adConfig",{version:"1.0.0"});I("AdsSDK.adBreak",{version:"1.0.0"});I("AdsSDK.adUnit",{version:"1.0.0"})});var oi={};var Kd,Wd,to=g(()=>{"use strict";jn();Kd=dr(Hn());zn();Wn();Yn();Wd=dr(Qn());Zn();eo()});var ro=Symbol.for("JOLIBOX_IMPLEMENT_INIT");if(window[ro])throw console.info("Jolibox Implement Already Initialized"),new Error("Jolibox Implement Already Initialized");window[ro]=!0;b(void 0,null,function*(){let[{config:e}]=yield Promise.all([Promise.resolve().then(()=>(On(),Nn)),Promise.resolve().then(()=>(to(),oi)),Promise.resolve().then(()=>(ie(),_n))]);e()});
19
+ `;e.textContent=i;let s=document.head||document.getElementsByTagName("head")[0];s.insertBefore(e,s.firstChild),document.documentElement.setAttribute("data-jolibox-root","")},n=()=>{function i(a){return y(this,null,function*(){let l=a instanceof URL?a.href:a,c=new Promise((d,u)=>{let p=new XMLHttpRequest;p.open("GET",l),p.responseType="arraybuffer",p.addEventListener("load",()=>d(p.response)),p.addEventListener("error",u),p.send()});try{let d=yield c;return new Response(d,{headers:new Headers([["Content-Type","application/wasm"]])}).clone()}catch(d){throw console.error("Failed to load wasm:",d),d}})}let s=window.fetch;window.fetch=(a,l)=>{let c=a instanceof URL?a.href:a.toString();return c.endsWith(".wasm")?i(c):s(a,l)}},o=()=>{e!=null&&e.parentNode&&(e.parentNode.removeChild(e),e=null),document.documentElement.removeAttribute("data-jolibox-root"),window.fetch=t};return r(),n(),o}var Uo=x(()=>{"use strict"});var pt,Fo=x(()=>{"use strict";pt=class{constructor(t){this.track=t;this.adBreakIsShowing=!1;this.reportPageJumpOut=()=>{this.track("AdBreakJumpOut",{context:"AdsActionDetection"})};this.reportPageHide=()=>{this.track("AdBreakHide",{context:"AdsActionDetection"})};window.addEventListener("visibilitychange",()=>{document.hidden&&this.adBreakIsShowing&&this.reportPageHide()}),window.addEventListener("beforeunload",r=>{this.adBreakIsShowing&&this.reportPageJumpOut()})}}});var mt,fl,hl,_l,gl,jo=x(()=>{"use strict";P();Cr();mt=class{constructor(t,r,n,o){this.track=t;this.httpClient=r;this.checkNetwork=n;this.checkAdsDisplayPermission=t=>{if(!this.checkNetwork())return{reason:"NETWORK_NOT_OK"};let r=this.checkShouldBanInitial();if(r)return{reason:r};let n=this.checkShouldBanForSession(t);if(n)return{reason:n};let o=this.checkShouldBanHighFreq(t);if(o)return o;let i=this.checkShouldBanForTime(t);return i?{reason:i}:{reason:"ALLOWED"}};var p,m,v,E,h,_,b;let i=(p=o==null?void 0:o.maxAllowedAdsForTime)!=null?p:8,s=(m=o==null?void 0:o.banForTimeThreshold)!=null?m:6e4,a=(v=o==null?void 0:o.bannedReleaseTime)!=null?v:6e4,l=(E=o==null?void 0:o.maxAllowedAdsForSession)!=null?E:200,c=(h=o==null?void 0:o.banForSessionThreshold)!=null?h:6e5,d=(_=o==null?void 0:o.initialThreshold)!=null?_:2e3,u=(b=o==null?void 0:o.highFreqThreshold)!=null?b:2e3;this.checkShouldBanInitial=_l(d),this.checkShouldBanHighFreq=gl(u),this.checkShouldBanForTime=hl(i,s,a),this.checkShouldBanForSession=fl(l,c)}report(t,r){let n=r?{reason:t,count:r}:{reason:t};this.track("PreventAdsCheating",n),this.httpClient.post("/api/base/app-event",{data:{eventType:"PREVENT_ADS_CHEATING",adsInfo:n}})}},fl=(e,t)=>{let r=!1,n=[];return i=>{if(r)return"BANNED_FOR_SESSION";let s=Date.now();if(n=n.concat({timestamp:s,type:i}),n.length!==1&&(n.length>e&&(n=n.slice(-e)),n.length===e&&s-n[0].timestamp<=t))return r=!0,"BANNED_FOR_SESSION"}},hl=(e,t,r)=>{let n=null,o=d=>{n&&(window.clearTimeout(n),n=null),n=window.setTimeout(()=>{l.value=!1,n=null},d)},i="jolibox-sdk-ads-callbreak-timestamps",s="jolibox-sdk-ads-ban-for-time",a={_records:[],init(){var d;try{let u=JSON.parse((d=window.__joliboxLocalStorage__.getItem(i))!=null?d:"[]");Array.isArray(u)?this._records=u:this._records=[]}catch(u){this._records=[]}},get values(){return this._records},set values(d){try{window.__joliboxLocalStorage__.setItem(i,JSON.stringify(d))}catch(u){}this._records=d}},l={_record:!1,init(){var d;try{let u=JSON.parse((d=window.__joliboxLocalStorage__.getItem(s))!=null?d:"false");typeof u=="boolean"&&(this._record=u)}catch(u){this._record=!1}if(this._record){let u=a.values[a.values.length-1],p=u?Date.now()-u.timestamp:r;p<=r&&p>0?o(p):this._record=!1}},get value(){return this._record},set value(d){try{window.__joliboxLocalStorage__.setItem(s,JSON.stringify(d))}catch(u){}this._record=d}};return a.init(),l.init(),d=>{if(l.value)return"WAITING_BANNED_RELEASE";let u=Date.now();if(a.values=a.values.concat({timestamp:u,type:d}),a.values.length!==1&&(a.values.length>e&&(a.values=a.values.slice(-e)),a.values.length===e&&u-a.values[0].timestamp<=t))return l.value=!0,o(r),"BANNED_FOR_TIME"}},_l=e=>{let t=Date.now();return()=>{if(Date.now()-t<=e)return"BLOCK_INITIAL"}},gl=(e=2e3)=>{let t=0,r=null;return o=>{if(o==="reward"){if(r)return t+=1,{reason:"HOLDING_HIGH_FREQ",info:{count:t}};r=window.setTimeout(()=>{r&&(window.clearTimeout(r),r=0,t=0)},e)}}}});var ft,Mo=x(()=>{"use strict";J();ft=class{constructor(t){this.httpClient=t;this.configs=null;this.firstRun=!0;this.init()}init(){return y(this,null,function*(){try{this.configs=yield this.httpClient.get("/api/fe-configs/js-sdk/ads-channel-config")}catch(t){}})}shouldBypassCallingInterstitial(){var r,n;let t;if(!this.configs)this.init(),t=!this.firstRun;else{let o=(r=g.channel)!=null?r:"",i=this.configs[o],s=(n=i==null?void 0:i.interstitialRate)!=null?n:1;t=Math.random()<s}return this.firstRun=!1,t}}});var Ce,ht,$r=x(()=>{"use strict";Fo();jo();J();Mo();P();Ce=new oe,ht=class{constructor(t,r,n){this.track=t;this.httpClient=r;this.checkNetwork=n;this.configured=!1;this.config={};this.getGameId=()=>g.mpId;this.getTestAdsMode=()=>g.testAdsMode;this.asyncLoad=()=>y(this,null,function*(){var s,a,l,c,d;let t="ca-pub-7171363994453626",r,n,o=window.encodeURIComponent(window.btoa((s=this.getGameId())!=null?s:"")),i=(a=this.getTestAdsMode())!=null?a:!1;try{let u=yield this.httpClient.get("/public/ads",{query:{objectId:o,testAdsMode:`${i}`}});t=(l=u.data)==null?void 0:l.clientId,r=(c=u.data)==null?void 0:c.channelId,n=(d=u.data)==null?void 0:d.unitId}catch(u){console.error("Failed to fetch client info",u)}this.clientId=t,this.channelId=r,this.unitId=n});this.asyncInit=t=>y(this,null,function*(){var o;if(typeof window=="undefined")return;yield this.asyncLoad();let r="google-adsense",n=(o=this.getTestAdsMode())!=null?o:!1;if(!document.getElementById(r)&&this.clientId){let i=document.createElement("script");i.id=r,i.async=!0,i.crossOrigin="anonymous",i.src=`https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=${this.clientId}`,n&&i.setAttribute("data-adbreak-test","on"),this.channelId&&i.setAttribute("data-ad-channel",this.channelId),document.head.appendChild(i),this.track("LoadAdsenseCompleted",null)}});this.push=(t={})=>{window.adsbygoogle.push(t)};this.wrapAdBreakParams=t=>{let r=!1,n=t.adBreakDone,o=s=>{var a;r=!0,this.adsActionDetection.adBreakIsShowing=!1,this.track("CallAdBreakDone",{breakType:s.breakType,breakName:(a=s.breakName)!=null?a:"",breakFormat:s.breakFormat,breakStatus:s.breakStatus}),n&&n(s)};if(t.adBreakDone=o,t.type==="reward"){let s=t.beforeReward,a=c=>()=>{this.track("CallShowAdFn",null),c()},l=c=>{r=!0,s&&s(a(c))};t.beforeReward=l,window.setTimeout(()=>{var c,d;r||(this.track("CallAdBreakTimeout",{type:t.type}),(d=t.adBreakDone)==null||d.call(t,{breakType:t.type,breakName:(c=t.name)!=null?c:"",breakFormat:"reward",breakStatus:"timeout"}))},5e3)}if((s=>s.type==="preroll")(t)){Ce.emit("isAdShowing",!0);let s=t.adBreakDone,a=l=>{Ce.emit("isAdShowing",!1),s&&s(l)};return O(w({},t),{adBreakDone:a})}else{let s=t.beforeAd,a=t.afterAd,l=()=>{var d;r=!0,Ce.emit("isAdShowing",!0),this.track("CallBeforeAd",{type:t.type,name:(d=t.name)!=null?d:""}),s&&s()},c=()=>{var d;r=!0,Ce.emit("isAdShowing",!1),this.track("CallAfterAd",{type:t.type,name:(d=t.name)!=null?d:""}),a&&a()};return O(w({},t),{beforeAd:l,afterAd:c})}};this.adConfig=t=>{let o=t,{onReady:r}=o,n=Z(o,["onReady"]);this.track("CallAdConfig",n),this.configured?console.warn("Ad config already set, skipping"):(this.configured=!0,this.push(t))};this.adBreak=t=>{var a,l,c,d,u,p;if(!this.getGameId()){console.warn("Game ID is not set, skip calling adBreak");return}if(t.type!=="reward"&&!this.channelPolicy.shouldBypassCallingInterstitial()){(a=t.adBreakDone)==null||a.call(t,{breakType:t.type,breakName:"skipInterstitials",breakFormat:"interstitial",breakStatus:"viewed"});return}let{reason:r,info:n}=this.antiCheating.checkAdsDisplayPermission(t.type==="reward"?"reward":"interstitial");switch(r){case"NETWORK_NOT_OK":case"BANNED_FOR_SESSION":(l=t.adBreakDone)==null||l.call(t,{breakType:t.type,breakName:r,breakFormat:t.type==="reward"?"reward":"interstitial",breakStatus:"noAdPreloaded"}),this.antiCheating.report(r);return;case"BLOCK_INITIAL":case"BANNED_FOR_TIME":case"WAITING_BANNED_RELEASE":(c=t.adBreakDone)==null||c.call(t,{breakType:t.type,breakFormat:t.type==="reward"?"reward":"interstitial",breakStatus:"frequencyCapped"}),this.antiCheating.report(r);return;case"HOLDING_HIGH_FREQ":(u=t.adBreakDone)==null||u.call(t,{breakFormat:t.type==="reward"?"reward":"interstitial",breakName:"",breakStatus:((d=n==null?void 0:n.count)!=null?d:0)>6?"other":"frequencyCapped",breakType:t.type}),n!=null&&n.count&&n.count!==0&&n.count%3===0&&this.antiCheating.report(r,n==null?void 0:n.count);return;default:break}let o=t.type,i;switch(o){case"preroll":i={type:o};break;case"start":case"pause":case"next":case"browse":case"reward":i={type:o,name:(p=t.name)!=null?p:""};break}this.adsActionDetection.adBreakIsShowing=!0,this.track("CallAdBreak",i);let s=this.wrapAdBreakParams(t);this.push(s),window.JoliTesterBridge&&console.log("joli-fullscreen-ad-show")};this.adUnit=t=>y(this,null,function*(){var p,m,v,E;if(this.track("CallAdUnit",{adFormat:(m=(p=t.adFormat)==null?void 0:p.toString())!=null?m:null,fullWidthResponsive:(v=t.fullWidthResponsive)!=null?v:null}),this.clientId||(yield this.asyncLoad()),document.querySelector("#jolibox-ads")){console.warn("Ad unit already set, skipping");return}let{el:r,slot:n,adFormat:o,fullWidthResponsive:i,style:s}=t,a;if(!r)throw new Error("targeting element is required");if(typeof r=="string"?a=document.querySelector(r):a=r,!a)throw new Error("targeting element not found");let l=n;if(l||(l=this.unitId),!l)throw new Error("slot is required");let c=typeof o=="object"&&Array.isArray(o)?o.join(", "):o,d=document.createElement("ins");if(d.className="adsbygoogle",d.id="jolibox-ads",d.style.display="block",d.setAttribute("data-ad-client",this.clientId),d.setAttribute("data-ad-slot",l),c&&d.setAttribute("data-ad-format",c),i&&d.setAttribute("data-full-width-responsive",i),s&&d.setAttribute("style",s),(E=this.getTestAdsMode())!=null?E:!1){let h=document.createElement("div");h.style.position="absolute",h.style.top="0",h.style.left="0",h.style.width="100%",h.style.height="100%",h.style.display="flex",h.style.justifyContent="center",h.style.alignItems="center",h.style.backgroundColor="rgba(0, 0, 0, 0.5)",h.style.color="white",h.innerHTML="Test Ad",d.style.position="relative",a.appendChild(d),d.appendChild(h)}else a.appendChild(d),new MutationObserver(_=>{_.forEach(b=>{if(b.type==="attributes"&&b.attributeName==="data-ad-status"){let T=d.getAttribute("data-ad-status");this.track("AdSenseUnitStatusChanged",{status:T!=null?T:"null"})}})}).observe(d,{attributes:!0,attributeFilter:["data-ad-status"]}),this.push({})});this.antiCheating=new mt(t,r,n),this.adsActionDetection=new pt(this.track),this.channelPolicy=new ft(r)}init(t){this.track("CallAdsInit",null),typeof window!="undefined"&&(this.config=t!=null?t:{},window.adsbygoogle=window.adsbygoogle||[],this.asyncInit(t))}}});function de(e,t){for(var r in t)e[r]=t[r];return e}function Xr(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function ke(e,t,r){var n,o,i,s={};for(i in t)i=="key"?n=t[i]:i=="ref"?o=t[i]:s[i]=t[i];if(arguments.length>2&&(s.children=arguments.length>3?St.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(i in e.defaultProps)s[i]===void 0&&(s[i]=e.defaultProps[i]);return vt(e,s,n,o,null)}function vt(e,t,r,n,o){var i={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o!=null?o:++si,__i:-1,__u:0};return o==null&&I.vnode!=null&&I.vnode(i),i}function xe(e){return e.children}function pe(e,t){this.props=e,this.context=t}function Pe(e,t){if(t==null)return e.__?Pe(e.__,e.__i+1):null;for(var r;t<e.__k.length;t++)if((r=e.__k[t])!=null&&r.__e!=null)return r.__e;return typeof e.type=="function"?Pe(e):null}function di(e){var t,r;if((e=e.__)!=null&&e.__c!=null){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if((r=e.__k[t])!=null&&r.__e!=null){e.__e=e.__c.base=r.__e;break}return di(e)}}function Ho(e){(!e.__d&&(e.__d=!0)&&we.push(e)&&!bt.__r++||Bo!==I.debounceRendering)&&((Bo=I.debounceRendering)||ai)(bt)}function bt(){for(var e,t,r,n,o,i,s,a=1;we.length;)we.length>a&&we.sort(li),e=we.shift(),a=we.length,e.__d&&(r=void 0,o=(n=(t=e).__v).__e,i=[],s=[],t.__P&&((r=de({},n)).__v=n.__v+1,I.vnode&&I.vnode(r),Zr(t.__P,r,n,t.__n,t.__P.namespaceURI,32&n.__u?[o]:null,i,o!=null?o:Pe(n),!!(32&n.__u),s),r.__v=n.__v,r.__.__k[r.__i]=r,fi(i,r,s),r.__e!=o&&di(r)));bt.__r=0}function pi(e,t,r,n,o,i,s,a,l,c,d){var u,p,m,v,E,h,_=n&&n.__k||ui,b=t.length;for(l=yl(r,t,_,l,b),u=0;u<b;u++)(m=r.__k[u])!=null&&(p=m.__i===-1?qe:_[m.__i]||qe,m.__i=u,h=Zr(e,m,p,o,i,s,a,l,c,d),v=m.__e,m.ref&&p.ref!=m.ref&&(p.ref&&en(p.ref,null,m),d.push(m.ref,m.__c||v,m)),E==null&&v!=null&&(E=v),4&m.__u||p.__k===m.__k?l=mi(m,l,e):typeof m.type=="function"&&h!==void 0?l=h:v&&(l=v.nextSibling),m.__u&=-7);return r.__e=E,l}function yl(e,t,r,n,o){var i,s,a,l,c,d=r.length,u=d,p=0;for(e.__k=new Array(o),i=0;i<o;i++)(s=t[i])!=null&&typeof s!="boolean"&&typeof s!="function"?(l=i+p,(s=e.__k[i]=typeof s=="string"||typeof s=="number"||typeof s=="bigint"||s.constructor==String?vt(null,s,null,null,null):Ye(s)?vt(xe,{children:s},null,null,null):s.constructor===void 0&&s.__b>0?vt(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):s).__=e,s.__b=e.__b+1,a=null,(c=s.__i=bl(s,r,l,u))!==-1&&(u--,(a=r[c])&&(a.__u|=2)),a==null||a.__v===null?(c==-1&&(o>d?p--:o<d&&p++),typeof s.type!="function"&&(s.__u|=4)):c!=l&&(c==l-1?p--:c==l+1?p++:(c>l?p--:p++,s.__u|=4))):e.__k[i]=null;if(u)for(i=0;i<d;i++)(a=r[i])!=null&&!(2&a.__u)&&(a.__e==n&&(n=Pe(a)),_i(a,a));return n}function mi(e,t,r){var n,o;if(typeof e.type=="function"){for(n=e.__k,o=0;n&&o<n.length;o++)n[o]&&(n[o].__=e,t=mi(n[o],t,r));return t}e.__e!=t&&(t&&e.type&&!r.contains(t)&&(t=Pe(e)),r.insertBefore(e.__e,t||null),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function wt(e,t){return t=t||[],e==null||typeof e=="boolean"||(Ye(e)?e.some(function(r){wt(r,t)}):t.push(e)),t}function bl(e,t,r,n){var o,i,s=e.key,a=e.type,l=t[r];if(l===null&&e.key==null||l&&s==l.key&&a===l.type&&!(2&l.__u))return r;if(n>(l!=null&&!(2&l.__u)?1:0))for(o=r-1,i=r+1;o>=0||i<t.length;){if(o>=0){if((l=t[o])&&!(2&l.__u)&&s==l.key&&a===l.type)return o;o--}if(i<t.length){if((l=t[i])&&!(2&l.__u)&&s==l.key&&a===l.type)return i;i++}}return-1}function $o(e,t,r){t[0]=="-"?e.setProperty(t,r!=null?r:""):e[t]=r==null?"":typeof r!="number"||vl.test(t)?r:r+"px"}function _t(e,t,r,n,o){var i;e:if(t=="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof n=="string"&&(e.style.cssText=n=""),n)for(t in n)r&&t in r||$o(e.style,t,"");if(r)for(t in r)n&&r[t]===n[t]||$o(e.style,t,r[t])}else if(t[0]=="o"&&t[1]=="n")i=t!=(t=t.replace(ci,"$1")),t=t.toLowerCase()in e||t=="onFocusOut"||t=="onFocusIn"?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=r,r?n?r.t=n.t:(r.t=Qr,e.addEventListener(t,i?qr:Gr,i)):e.removeEventListener(t,i?qr:Gr,i);else{if(o=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=r!=null?r:"";break e}catch(s){}typeof r=="function"||(r==null||r===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&r==1?"":r))}}function Jo(e){return function(t){if(this.l){var r=this.l[t.type+e];if(t.u==null)t.u=Qr++;else if(t.u<r.t)return;return r(I.event?I.event(t):t)}}}function Zr(e,t,r,n,o,i,s,a,l,c){var d,u,p,m,v,E,h,_,b,T,A,C,k,$,z,ae,Ie,X=t.type;if(t.constructor!==void 0)return null;128&r.__u&&(l=!!(32&r.__u),i=[a=t.__e=r.__e]),(d=I.__b)&&d(t);e:if(typeof X=="function")try{if(_=t.props,b="prototype"in X&&X.prototype.render,T=(d=X.contextType)&&n[d.__c],A=d?T?T.props.value:d.__:n,r.__c?h=(u=t.__c=r.__c).__=u.__E:(b?t.__c=u=new X(_,A):(t.__c=u=new pe(_,A),u.constructor=X,u.render=El),T&&T.sub(u),u.props=_,u.state||(u.state={}),u.context=A,u.__n=n,p=u.__d=!0,u.__h=[],u._sb=[]),b&&u.__s==null&&(u.__s=u.state),b&&X.getDerivedStateFromProps!=null&&(u.__s==u.state&&(u.__s=de({},u.__s)),de(u.__s,X.getDerivedStateFromProps(_,u.__s))),m=u.props,v=u.state,u.__v=t,p)b&&X.getDerivedStateFromProps==null&&u.componentWillMount!=null&&u.componentWillMount(),b&&u.componentDidMount!=null&&u.__h.push(u.componentDidMount);else{if(b&&X.getDerivedStateFromProps==null&&_!==m&&u.componentWillReceiveProps!=null&&u.componentWillReceiveProps(_,A),!u.__e&&(u.shouldComponentUpdate!=null&&u.shouldComponentUpdate(_,u.__s,A)===!1||t.__v==r.__v)){for(t.__v!=r.__v&&(u.props=_,u.state=u.__s,u.__d=!1),t.__e=r.__e,t.__k=r.__k,t.__k.some(function(ve){ve&&(ve.__=t)}),C=0;C<u._sb.length;C++)u.__h.push(u._sb[C]);u._sb=[],u.__h.length&&s.push(u);break e}u.componentWillUpdate!=null&&u.componentWillUpdate(_,u.__s,A),b&&u.componentDidUpdate!=null&&u.__h.push(function(){u.componentDidUpdate(m,v,E)})}if(u.context=A,u.props=_,u.__P=e,u.__e=!1,k=I.__r,$=0,b){for(u.state=u.__s,u.__d=!1,k&&k(t),d=u.render(u.props,u.state,u.context),z=0;z<u._sb.length;z++)u.__h.push(u._sb[z]);u._sb=[]}else do u.__d=!1,k&&k(t),d=u.render(u.props,u.state,u.context),u.state=u.__s;while(u.__d&&++$<25);u.state=u.__s,u.getChildContext!=null&&(n=de(de({},n),u.getChildContext())),b&&!p&&u.getSnapshotBeforeUpdate!=null&&(E=u.getSnapshotBeforeUpdate(m,v)),ae=d,d!=null&&d.type===xe&&d.key==null&&(ae=hi(d.props.children)),a=pi(e,Ye(ae)?ae:[ae],t,r,n,o,i,s,a,l,c),u.base=t.__e,t.__u&=-161,u.__h.length&&s.push(u),h&&(u.__E=u.__=null)}catch(ve){if(t.__v=null,l||i!=null)if(ve.then){for(t.__u|=l?160:128;a&&a.nodeType==8&&a.nextSibling;)a=a.nextSibling;i[i.indexOf(a)]=null,t.__e=a}else for(Ie=i.length;Ie--;)Xr(i[Ie]);else t.__e=r.__e,t.__k=r.__k;I.__e(ve,t,r)}else i==null&&t.__v==r.__v?(t.__k=r.__k,t.__e=r.__e):a=t.__e=wl(r.__e,t,r,n,o,i,s,l,c);return(d=I.diffed)&&d(t),128&t.__u?void 0:a}function fi(e,t,r){for(var n=0;n<r.length;n++)en(r[n],r[++n],r[++n]);I.__c&&I.__c(t,e),e.some(function(o){try{e=o.__h,o.__h=[],e.some(function(i){i.call(o)})}catch(i){I.__e(i,o.__v)}})}function hi(e){return typeof e!="object"||e==null?e:Ye(e)?e.map(hi):de({},e)}function wl(e,t,r,n,o,i,s,a,l){var c,d,u,p,m,v,E,h=r.props,_=t.props,b=t.type;if(b=="svg"?o="http://www.w3.org/2000/svg":b=="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),i!=null){for(c=0;c<i.length;c++)if((m=i[c])&&"setAttribute"in m==!!b&&(b?m.localName==b:m.nodeType==3)){e=m,i[c]=null;break}}if(e==null){if(b==null)return document.createTextNode(_);e=document.createElementNS(o,b,_.is&&_),a&&(I.__m&&I.__m(t,i),a=!1),i=null}if(b===null)h===_||a&&e.data===_||(e.data=_);else{if(i=i&&St.call(e.childNodes),h=r.props||qe,!a&&i!=null)for(h={},c=0;c<e.attributes.length;c++)h[(m=e.attributes[c]).name]=m.value;for(c in h)if(m=h[c],c!="children"){if(c=="dangerouslySetInnerHTML")u=m;else if(!(c in _)){if(c=="value"&&"defaultValue"in _||c=="checked"&&"defaultChecked"in _)continue;_t(e,c,null,m,o)}}for(c in _)m=_[c],c=="children"?p=m:c=="dangerouslySetInnerHTML"?d=m:c=="value"?v=m:c=="checked"?E=m:a&&typeof m!="function"||h[c]===m||_t(e,c,m,h[c],o);if(d)a||u&&(d.__html===u.__html||d.__html===e.innerHTML)||(e.innerHTML=d.__html),t.__k=[];else if(u&&(e.innerHTML=""),pi(t.type==="template"?e.content:e,Ye(p)?p:[p],t,r,n,b=="foreignObject"?"http://www.w3.org/1999/xhtml":o,i,s,i?i[0]:r.__k&&Pe(r,0),a,l),i!=null)for(c=i.length;c--;)Xr(i[c]);a||(c="value",b=="progress"&&v==null?e.removeAttribute("value"):v!==void 0&&(v!==e[c]||b=="progress"&&!v||b=="option"&&v!==h[c])&&_t(e,c,v,h[c],o),c="checked",E!==void 0&&E!==e[c]&&_t(e,c,E,h[c],o))}return e}function en(e,t,r){try{if(typeof e=="function"){var n=typeof e.__u=="function";n&&e.__u(),n&&t==null||(e.__u=e(t))}else e.current=t}catch(o){I.__e(o,r)}}function _i(e,t,r){var n,o;if(I.unmount&&I.unmount(e),(n=e.ref)&&(n.current&&n.current!==e.__e||en(n,null,t)),(n=e.__c)!=null){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(i){I.__e(i,t)}n.base=n.__P=null}if(n=e.__k)for(o=0;o<n.length;o++)n[o]&&_i(n[o],t,r||typeof e.type!="function");r||Xr(e.__e),e.__c=e.__=e.__e=void 0}function El(e,t,r){return this.constructor(e,r)}function Et(e,t,r){var n,o,i,s;t==document&&(t=document.documentElement),I.__&&I.__(e,t),o=(n=!1)?null:t.__k,i=[],s=[],Zr(t,e=t.__k=ke(xe,null,[e]),o||qe,qe,t.namespaceURI,o?null:t.firstChild?St.call(t.childNodes):null,i,o?o.__e:t.firstChild,n,s),fi(i,e,s)}function tn(e,t){M.__h&&M.__h(F,e,ze||t),ze=0;var r=F.__H||(F.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({}),r.__[e]}function kt(e){return ze=1,kl(bi,e)}function kl(e,t,r){var n=tn(We++,2);if(n.t=e,!n.__c&&(n.__=[r?r(t):bi(void 0,t),function(a){var l=n.__N?n.__N[0]:n.__[0],c=n.t(l,a);l!==c&&(n.__N=[c,n.__[1]],n.__c.setState({}))}],n.__c=F,!F.__f)){var o=function(a,l,c){if(!n.__c.__H)return!0;var d=n.__c.__H.__.filter(function(p){return!!p.__c});if(d.every(function(p){return!p.__N}))return!i||i.call(this,a,l,c);var u=n.__c.props!==a;return d.forEach(function(p){if(p.__N){var m=p.__[0];p.__=p.__N,p.__N=void 0,m!==p.__[0]&&(u=!0)}}),i&&i.call(this,a,l,c)||u};F.__f=!0;var i=F.shouldComponentUpdate,s=F.componentWillUpdate;F.componentWillUpdate=function(a,l,c){if(this.__e){var d=i;i=void 0,o(a,l,c),i=d}s&&s.call(this,a,l,c)},F.shouldComponentUpdate=o}return n.__N||n.__}function Ee(e,t){var r=tn(We++,3);!M.__s&&yi(r.__H,t)&&(r.__=e,r.u=t,F.__H.__h.push(r))}function xt(e){return ze=5,vi(function(){return{current:e}},[])}function vi(e,t){var r=tn(We++,7);return yi(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function ee(e,t){return ze=8,vi(function(){return e},t)}function xl(){for(var e;e=gi.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(yt),e.__H.__h.forEach(Wr),e.__H.__h=[]}catch(t){e.__H.__h=[],M.__e(t,e.__v)}}function Sl(e){var t,r=function(){clearTimeout(n),Qo&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);Qo&&(t=requestAnimationFrame(r))}function yt(e){var t=F,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),F=t}function Wr(e){var t=F;e.__c=e.__(),F=t}function yi(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function bi(e,t){return typeof t=="function"?t(e):t}function wi(e,t){for(var r in t)e[r]=t[r];return e}function zr(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function Xo(e,t){this.props=e,this.context=t}function Tl(e,t){function r(o){var i=this.props.ref,s=i==o.ref;return!s&&i&&(i.call?i(null):i.current=null),t?!t(this.props,o)||!s:zr(this.props,o)}function n(o){return this.shouldComponentUpdate=r,ke(e,o)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}function Rl(e){function t(r){var n=wi({},r);return delete n.ref,e(n,r.ref||null)}return t.$$typeof=Il,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}function Ei(e,t,r){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(n){typeof n.__c=="function"&&n.__c()}),e.__c.__H=null),(e=wi({},e)).__c!=null&&(e.__c.__P===r&&(e.__c.__P=t),e.__c=null),e.__k=e.__k&&e.__k.map(function(n){return Ei(n,t,r)})),e}function ki(e,t,r){return e&&r&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(n){return ki(n,t,r)}),e.__c&&e.__c.__P===t&&(e.__e&&r.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=r)),e}function Kr(){this.__u=0,this.o=null,this.__b=null}function xi(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function gt(){this.i=null,this.l=null}function Ul(){}function Fl(){return this.cancelBubble}function jl(){return this.defaultPrevented}function S(e,t,r,n,o,i){t||(t={});var s,a,l=t;if("ref"in l)for(a in l={},t)a=="ref"?s=t[a]:l[a]=t[a];var c={type:e,props:l,key:r,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Bl,__i:-1,__u:0,__source:o,__self:i};if(typeof e=="function"&&(s=e.defaultProps))for(a in s)l[a]===void 0&&(l[a]=s[a]);return I.vnode&&I.vnode(c),c}function Wl(a){var l=a,{elementTag:e="Image",src:t="",children:r,handleExposure:n,className:o,imgStyle:i}=l,s=Z(l,["elementTag","src","children","handleExposure","className","imgStyle"]);let c=ql(()=>{t&&n()});return e==="Image"?S("div",{className:o,style:{borderRadius:"8px"},children:ke("img",O(w({},s),{ref:c,src:t!=null?t:"",style:w({display:"block",width:"100%",height:"auto",objectFit:"contain",maxWidth:"100%",maxHeight:"100%",borderRadius:"8px"},i||{})}))}):S("div",O(w({},s),{ref:c,className:o,children:r}))}function zl(e,t){if(!e)return null;let r=Array.isArray(t)?t[0]:t,n=Array.isArray(t)?t[1]:0;return Array.isArray(e)?e.map((o,i)=>o&&typeof o=="object"&&"type"in o?ke(o.type,O(w({},o.props),{style:O(w({},o.props.style||{}),{paddingLeft:r>0?`${r/2}px`:void 0,paddingRight:r>0?`${r/2}px`:void 0,paddingTop:n>0?`${n/2}px`:void 0,paddingBottom:n>0?`${n/2}px`:void 0}),key:o.key||i})):o):e&&typeof e=="object"&&"type"in e?ke(e.type,O(w({},e.props),{style:O(w({},e.props.style||{}),{paddingLeft:r>0?`${r/2}px`:void 0,paddingRight:r>0?`${r/2}px`:void 0,paddingTop:n>0?`${n/2}px`:void 0,paddingBottom:n>0?`${n/2}px`:void 0})})):e}var St,I,si,we,Bo,ai,li,ci,Qr,Gr,qr,qe,ui,vl,Ye,We,F,Jr,Ko,ze,gi,M,Vo,Go,qo,Wo,zo,Yo,Qo,Zo,Il,Al,ei,ti,Cl,Pl,Ol,Nl,Dl,Ll,ri,Ml,ni,oi,ii,Bl,Vr,Hl,$l,Jl,Kl,Vl,Gl,ql,Si,Ti,Yl,Ql,Xl,Zl,Yr,ec,Ii,Ri,Ai,tc,rc,nc,Ci,rn=x(()=>{"use strict";qe={},ui=[],vl=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Ye=Array.isArray;St=ui.slice,I={__e:function(e,t,r,n){for(var o,i,s;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&i.getDerivedStateFromError!=null&&(o.setState(i.getDerivedStateFromError(e)),s=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(e,n||{}),s=o.__d),s)return o.__E=o}catch(a){e=a}throw e}},si=0,pe.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=de({},this.state),typeof e=="function"&&(e=e(de({},r),this.props)),e&&de(r,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ho(this))},pe.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ho(this))},pe.prototype.render=xe,we=[],ai=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,li=function(e,t){return e.__v.__b-t.__v.__b},bt.__r=0,ci=/(PointerCapture)$|Capture$/i,Qr=0,Gr=Jo(!1),qr=Jo(!0);ze=0,gi=[],M=I,Vo=M.__b,Go=M.__r,qo=M.diffed,Wo=M.__c,zo=M.unmount,Yo=M.__;M.__b=function(e){F=null,Vo&&Vo(e)},M.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Yo&&Yo(e,t)},M.__r=function(e){Go&&Go(e),We=0;var t=(F=e.__c).__H;t&&(Jr===F?(t.__h=[],F.__h=[],t.__.forEach(function(r){r.__N&&(r.__=r.__N),r.u=r.__N=void 0})):(t.__h.forEach(yt),t.__h.forEach(Wr),t.__h=[],We=0)),Jr=F},M.diffed=function(e){qo&&qo(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(gi.push(t)!==1&&Ko===M.requestAnimationFrame||((Ko=M.requestAnimationFrame)||Sl)(xl)),t.__H.__.forEach(function(r){r.u&&(r.__H=r.u),r.u=void 0})),Jr=F=null},M.__c=function(e,t){t.some(function(r){try{r.__h.forEach(yt),r.__h=r.__h.filter(function(n){return!n.__||Wr(n)})}catch(n){t.some(function(o){o.__h&&(o.__h=[])}),t=[],M.__e(n,r.__v)}}),Wo&&Wo(e,t)},M.unmount=function(e){zo&&zo(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{yt(n)}catch(o){t=o}}),r.__H=void 0,t&&M.__e(t,r.__v))};Qo=typeof requestAnimationFrame=="function";(Xo.prototype=new pe).isPureReactComponent=!0,Xo.prototype.shouldComponentUpdate=function(e,t){return zr(this.props,e)||zr(this.state,t)};Zo=I.__b;I.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Zo&&Zo(e)};Il=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;Al=I.__e;I.__e=function(e,t,r,n){if(e.then){for(var o,i=t;i=i.__;)if((o=i.__c)&&o.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),o.__c(e,t)}Al(e,t,r,n)};ei=I.unmount;I.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),ei&&ei(e)},(Kr.prototype=new pe).__c=function(e,t){var r=t.__c,n=this;n.o==null&&(n.o=[]),n.o.push(r);var o=xi(n.__v),i=!1,s=function(){i||(i=!0,r.__R=null,o?o(a):a())};r.__R=s;var a=function(){if(!--n.__u){if(n.state.__a){var l=n.state.__a;n.__v.__k[0]=ki(l,l.__c.__P,l.__c.__O)}var c;for(n.setState({__a:n.__b=null});c=n.o.pop();)c.forceUpdate()}};n.__u++||32&t.__u||n.setState({__a:n.__b=n.__v.__k[0]}),e.then(s,s)},Kr.prototype.componentWillUnmount=function(){this.o=[]},Kr.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=Ei(this.__b,r,n.__O=n.__P)}this.__b=null}var o=t.__a&&ke(xe,null,e.fallback);return o&&(o.__u&=-33),[ke(xe,null,t.__a?null:e.children),o]};ti=function(e,t,r){if(++r[1]===r[0]&&e.l.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.l.size))for(r=e.i;r;){for(;r.length>3;)r.pop()();if(r[1]<r[0])break;e.i=r=r[2]}};(gt.prototype=new pe).__a=function(e){var t=this,r=xi(t.__v),n=t.l.get(e);return n[0]++,function(o){var i=function(){t.props.revealOrder?(n.push(o),ti(t,e,n)):o()};r?r(i):i()}},gt.prototype.render=function(e){this.i=null,this.l=new Map;var t=wt(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var r=t.length;r--;)this.l.set(t[r],this.i=[1,0,this.i]);return e.children},gt.prototype.componentDidUpdate=gt.prototype.componentDidMount=function(){var e=this;this.l.forEach(function(t,r){ti(e,r,t)})};Cl=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,Pl=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Ol=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Nl=/[A-Z0-9]/g,Dl=typeof document<"u",Ll=function(e){return(typeof Symbol<"u"&&typeof Symbol()=="symbol"?/fil|che|rad/:/fil|che|ra/).test(e)};pe.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(pe.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});ri=I.event;I.event=function(e){return ri&&(e=ri(e)),e.persist=Ul,e.isPropagationStopped=Fl,e.isDefaultPrevented=jl,e.nativeEvent=e};Ml={enumerable:!1,configurable:!0,get:function(){return this.class}},ni=I.vnode;I.vnode=function(e){typeof e.type=="string"&&function(t){var r=t.props,n=t.type,o={},i=n.indexOf("-")===-1;for(var s in r){var a=r[s];if(!(s==="value"&&"defaultValue"in r&&a==null||Dl&&s==="children"&&n==="noscript"||s==="class"||s==="className")){var l=s.toLowerCase();s==="defaultValue"&&"value"in r&&r.value==null?s="value":s==="download"&&a===!0?a="":l==="translate"&&a==="no"?a=!1:l[0]==="o"&&l[1]==="n"?l==="ondoubleclick"?s="ondblclick":l!=="onchange"||n!=="input"&&n!=="textarea"||Ll(r.type)?l==="onfocus"?s="onfocusin":l==="onblur"?s="onfocusout":Ol.test(s)&&(s=l):l=s="oninput":i&&Pl.test(s)?s=s.replace(Nl,"-$&").toLowerCase():a===null&&(a=void 0),l==="oninput"&&o[s=l]&&(s="oninputCapture"),o[s]=a}}n=="select"&&o.multiple&&Array.isArray(o.value)&&(o.value=wt(r.children).forEach(function(c){c.props.selected=o.value.indexOf(c.props.value)!=-1})),n=="select"&&o.defaultValue!=null&&(o.value=wt(r.children).forEach(function(c){c.props.selected=o.multiple?o.defaultValue.indexOf(c.props.value)!=-1:o.defaultValue==c.props.value})),r.class&&!r.className?(o.class=r.class,Object.defineProperty(o,"className",Ml)):(r.className&&!r.class||r.class&&r.className)&&(o.class=o.className=r.className),t.props=o}(e),e.$$typeof=Cl,ni&&ni(e)};oi=I.__r;I.__r=function(e){oi&&oi(e),e.__c};ii=I.diffed;I.diffed=function(e){ii&&ii(e);var t=e.props,r=e.__e;r!=null&&e.type==="textarea"&&"value"in t&&t.value!==r.value&&(r.value=t.value==null?"":t.value)};Bl=0;Vr={drawerBackdrop:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",justifyContent:"center",alignItems:"flex-end",zIndex:1e3,overflow:"hidden",touchAction:"none"},drawer:{backgroundColor:"white",borderRadius:"16px 16px 0 0",width:"100%",maxWidth:"100%",overflowY:"auto",position:"relative",boxShadow:"0 -2px 10px rgba(0, 0, 0, 0.1)",display:"flex",flexDirection:"column",margin:"0 auto"},drawerContent:{flex:1,width:"100%",height:"100%",overflow:"auto",margin:"0 auto"}},Hl=`
20
+ @keyframes fadeIn {
21
+ from { opacity: 0; }
22
+ to { opacity: 1; }
23
+ }
24
+
25
+ @keyframes fadeOut {
26
+ from { opacity: 1; }
27
+ to { opacity: 0; }
28
+ }
29
+
30
+ @keyframes slideUp {
31
+ from { transform: translateY(100%); }
32
+ to { transform: translateY(0); }
33
+ }
34
+
35
+ @keyframes slideDown {
36
+ from { transform: translateY(0); }
37
+ to { transform: translateY(100%); }
38
+ }
39
+
40
+ .backdrop-enter {
41
+ animation: fadeIn 0.3s ease forwards;
42
+ }
43
+
44
+ .backdrop-leave {
45
+ animation: fadeOut 0.3s ease forwards;
46
+ }
47
+
48
+ .drawer-enter {
49
+ animation: slideUp 0.3s ease forwards;
50
+ }
51
+
52
+ .drawer-leave {
53
+ animation: slideDown 0.3s ease forwards;
54
+ }
55
+ `,$l=({children:e,isOpen:t=!1,onClose:r,height:n="50%",className:o="",backdropColor:i},s)=>{let[a,l]=kt(t),[c,d]=kt(null),u=xt(null),p=xt(!1);Ee(()=>{let k=document.createElement("style");return k.innerHTML=Hl,document.head.appendChild(k),()=>{document.head.removeChild(k)}},[]),Ee(()=>{t!==a&&!p.current&&(l(t),d(t?"enter":"leave"),t?(document.body.style.overflow="hidden",document.body.style.position="fixed",document.body.style.width="100%"):!t&&!p.current&&(document.body.style.overflow="",document.body.style.position="",document.body.style.width=""))},[t,a]),Ee(()=>()=>{document.body.style.overflow="",document.body.style.position="",document.body.style.width=""},[]);let m=ee(()=>{c==="leave"&&(d(null),l(!1),p.current=!1)},[c]),v=ee(k=>{k.preventDefault(),k.stopPropagation(),k.target===u.current&&h()},[]),E=ee(()=>{p.current=!1,l(!0),d("enter")},[]),h=ee(()=>{p.current=!0,d("leave"),document.body.style.overflow="",document.body.style.position="",document.body.style.width="",r&&r()},[r]),_=ee(()=>a&&!p.current,[a]);if(Ee(()=>{if(s){let k={show:E,hide:h,isOpen:_};typeof s=="function"?s(k):s&&(s.current=k)}},[E,h,_,s]),!a&&!c)return null;let b=O(w({},Vr.drawer),{height:typeof n=="number"?`${n}px`:n,backgroundColor:i||"rgba(255, 255, 255, 1)"}),T=O(w({},Vr.drawerBackdrop),{pointerEvents:"auto"}),A=c?`drawer-${c}`:"",C=c?`backdrop-${c}`:"";return S("div",{ref:u,style:T,className:C,onClick:v,onTouchMove:k=>k.preventDefault(),onTouchStart:k=>k.stopPropagation(),onTouchEnd:k=>k.stopPropagation(),children:S("div",{style:b,className:`${A} ${o}`,onAnimationEnd:m,onClick:k=>k.stopPropagation(),onTouchMove:k=>{k.stopPropagation()},onTouchStart:k=>k.stopPropagation(),onTouchEnd:k=>k.stopPropagation(),children:S("div",{style:O(w({},Vr.drawerContent),{pointerEvents:"auto"}),onTouchMove:k=>k.stopPropagation(),onClick:k=>k.stopPropagation(),children:e})})})},Jl=Rl($l),Kl=({title:e,content:t,noHeader:r,padding:n="16px",footerButtons:o,onClose:i})=>{let s={container:{display:"flex",flexDirection:"column",height:"100%",width:"100%",maxWidth:"440px",margin:"0 auto"},header:{padding:"16px",borderBottom:"1px solid #eee",display:"flex",justifyContent:"space-between",alignItems:"center"},content:{padding:n,flex:1,overflow:"auto"},footer:{padding:"16px",borderTop:"1px solid #eee",display:"flex",justifyContent:"flex-end",gap:"8px"},closeButton:{background:"none",border:"none",cursor:"pointer",fontSize:"20px"},button:{padding:"8px 16px",borderRadius:"4px",border:"1px solid #ddd",cursor:"pointer"}};return S("div",{style:s.container,children:[!r&&S("div",{style:s.header,children:[S("h3",{children:e}),S("button",{style:s.closeButton,onClick:i,children:"\xD7"})]}),S("div",{style:s.content,children:t}),o&&o.length>0&&S("div",{style:s.footer,children:o.map((a,l)=>S("button",{style:O(w({},s.button),{backgroundColor:a.variant==="primary"?"#1677ff":"#fff",color:a.variant==="primary"?"#fff":"#333"}),onClick:c=>{var d;return(d=a.onClick)==null?void 0:d.call(a,c,{hide:i})},children:a.text},l))})]})},Vl=(()=>{let e=null;return()=>(e||(e=document.createElement("div"),e.id=`jolibox-ui-modal-container-${Math.random().toString(36).substring(2,15)}`,document.body.appendChild(e)),e)})(),Gl=e=>{let t=Vl(),r=null,n=!1,o=!1,i=()=>{o||(n=!1,e.onClose&&e.onClose(),a())},s=()=>window.innerWidth>window.innerHeight,a=()=>{Et(S(Jl,{ref:c=>{r=c},isOpen:n,onClose:i,height:s()?"90vh":"50vh",backdropColor:e.backdropColor,children:S(Kl,O(w({},e),{onClose:i}))}),t)},l=()=>{!o&&n&&a()};return window.addEventListener("resize",l),a(),{show:()=>{o||(n=!0,a(),setTimeout(()=>{r&&(r.show(),e.onOpen&&e.onOpen())},0))},hide:()=>{o||r&&r.hide()},isOpen:()=>n,destroy:()=>{o=!0,window.removeEventListener("resize",l),r&&r.hide(),setTimeout(()=>{Et(null,t)},300)}}},ql=(e,t={threshold:.6})=>{let r=xt(null),n=xt(!1),o=ee(i=>{let[s]=i;s.isIntersecting&&!n.current?(n.current=!0,e()):s.isIntersecting||(n.current=!1)},[e]);return Ee(()=>{if(r.current){let i=new IntersectionObserver(o,t);return i.observe(r.current),()=>{r.current&&i.unobserve(r.current)}}},[o,t]),r};Si=i=>{var s=i,{children:e,fluid:t=!1,className:r="",style:n={}}=s,o=Z(s,["children","fluid","className","style"]);let a=w({width:"100%",marginLeft:"auto",marginRight:"auto",paddingLeft:"15px",paddingRight:"15px",boxSizing:"border-box",maxWidth:t?"100%":void 0},n);return S("div",O(w({className:r,style:a},o),{children:e}))},Ti=a=>{var l=a,{children:e,gutter:t=0,justify:r="start",align:n="top",className:o="",style:i={}}=l,s=Z(l,["children","gutter","justify","align","className","style"]);let c={start:"flex-start",end:"flex-end",center:"center","space-around":"space-around","space-between":"space-between"},d={top:"flex-start",middle:"center",bottom:"flex-end"},u=w({display:"flex",flexWrap:"wrap",boxSizing:"border-box",justifyContent:c[r],alignItems:d[n]},i);if(t){let m=Array.isArray(t)?t[0]:t,v=Array.isArray(t)?t[1]:0;m>0&&(u.marginLeft=`-${m/2}px`,u.marginRight=`-${m/2}px`),v>0&&(u.marginTop=`-${v/2}px`,u.marginBottom=`-${v/2}px`)}let p=t?zl(e,t):e;return S("div",O(w({className:o,style:u},s),{children:p}))};Yl=u=>{var p=u,{children:e,span:t,offset:r,xs:n,sm:o,md:i,lg:s,xl:a,className:l="",style:c={}}=p,d=Z(p,["children","span","offset","xs","sm","md","lg","xl","className","style"]);let m=w({position:"relative",width:"100%",paddingLeft:"15px",paddingRight:"15px",boxSizing:"border-box"},c);if(t!==void 0){let v=t/24*100;m.flex=`0 0 ${v}%`,m.maxWidth=`${v}%`}return r!==void 0&&(m.marginLeft=`${r/24*100}%`),S("div",O(w({className:l,style:m},d),{children:e}))},Ql=({game:e,layerName:t,routeMode:r,onGameClick:n})=>{var s,a;let o=ee(l=>{l.preventDefault(),n==null||n(e)},[n,e]),i=ee(()=>{},[e,t]);return S(Yl,{span:8,className:"relative px-[4px] box-border mb-[8px]",style:{marginBottom:"8px"},onClick:o,role:"button",tabIndex:0,onTouchEnd:o,children:[S("div",{className:"relative w-full mb-[2px] ion-no-margin",children:S(Wl,{src:(a=(s=e.logo)!=null?s:e.cover)!=null?a:"",className:"w-full h-full absolute top-0 left-0 aspect-square rounded-[8px] object-cover",style:{display:"block",objectFit:"cover"},handleExposure:i})}),S("div",{className:"block text-white max-w-full text-[15px] leading-[1.2] overflow-hidden whitespace-nowrap text-ellipsis font-normal break-words",style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",wordBreak:"break-word",color:"white",maxWidth:"100%",fontSize:"15px",lineHeight:1.2,fontWeight:"normal"},children:e.name})]},e.gameId)},Xl=i=>{var s=i,{list:e,routeMode:t,layerName:r,onGameClick:n}=s,o=Z(s,["list","routeMode","layerName","onGameClick"]);return S(Si,{className:"w-full max-w-[440px] mx-auto flex-grow overflow-y-auto",children:S(Ti,{gutter:8,className:"flex-wrap",children:e==null?void 0:e.map(a=>S(Ql,{game:a,routeMode:t,layerName:r,onGameClick:n},a.gameId))})})},Zl=Tl(Xl),Yr=(e=>(e.Dismiss="DISMISS",e.Quit="QUIT",e))(Yr||{}),ec=e=>{let{games:t,title:r,buttons:n,onClose:o}=e,[i,s]=kt(null),a=ee(d=>{o==null||o({type:d.type===Yr.Quit?"quit":"dismiss"})},[o]),l=ee(d=>{o==null||o({type:"navigate",data:{game:d}})},[o]);if(!t.length)return S(xe,{});let c=ee(d=>{if(d!==null&&!d.shadowRoot){let u=d.attachShadow({mode:"open"}),p=document.createElement("style");p.textContent=`
56
+ .recommend-panel {
57
+ background-color: #1a1a1a;
58
+ width: 100%;
59
+ height: 100%;
60
+ }
61
+ .container {
62
+ height: 100%;
63
+ display: flex;
64
+ flex-direction: column;
65
+ position: relative;
66
+ }
67
+ .title {
68
+ color: #ffffff;
69
+ font-size: 18px;
70
+ line-height: 24px;
71
+ text-align: center;
72
+ padding: 20px 10px;
73
+ margin-block-end: 0px;
74
+ position: fixed;
75
+ top: 0;
76
+ left: 0;
77
+ right: 0;
78
+ width: 100%;
79
+ max-width: 440px;
80
+ margin: 0 auto;
81
+ background-color: #1a1a1a;
82
+ z-index: 1;
83
+ }
84
+ .games-container {
85
+ flex: 1;
86
+ overflow: auto;
87
+ margin-bottom: 88px;
88
+ margin-top: 64px;
89
+ }
90
+ .buttons-container {
91
+ position: fixed;
92
+ left: 0;
93
+ right: 0;
94
+ width: 100%;
95
+ max-width: 440px;
96
+ margin: 0 auto;
97
+ background: inherit;
98
+ padding-top: 16px;
99
+ padding-bottom: 16px;
100
+ padding-left: 16px;
101
+ padding-right: 16px;
102
+ background-color: #1a1a1a;
103
+ }
104
+ @media (orientation: portrait) {
105
+ .buttons-container {
106
+ bottom: 28px;
107
+ }
108
+ }
109
+ @media (orientation: landscape) {
110
+ .buttons-container {
111
+ bottom: 0;
112
+ }
113
+ }
114
+ .button-wrapper {
115
+ flex: 0 0 50%;
116
+ box-sizing: border-box;
117
+ }
118
+ .button {
119
+ width: 100%;
120
+ height: 40px;
121
+ border-radius: 21px;
122
+ white-space: nowrap;
123
+ line-height: 40px;
124
+ padding-left: 8px;
125
+ padding-right: 8px;
126
+ border: 1px solid;
127
+ cursor: pointer;
128
+ flex: 1;
129
+ text-align: center;
130
+ font-size: 14px;
131
+ font-weight: normal;
132
+ outline: none;
133
+ overflow: hidden;
134
+ text-overflow: ellipsis;
135
+ }
136
+ .quit-button {
137
+ border-color: #ffffff30;
138
+ background-color: #ffffff2c;
139
+ color: #fff;
140
+ }
141
+ .action-button {
142
+ border-color: #7817FF;
143
+ background-color: #7817FF;
144
+ color: #fff;
145
+ }
146
+ `;let m=document.createElement("div");m.id="recommend-panel-content",u.appendChild(p),u.appendChild(m),s(u)}},[]);return Ee(()=>{if(i){let d=i.getElementById("recommend-panel-content");d&&Et(S("div",{className:"recommend-panel",children:S("div",{className:"container",children:[S("p",{className:"title",children:r}),S("div",{className:"games-container",children:S(Zl,{list:t||[],routeMode:"REDIRECT",layerName:"RecommendedGuide",onGameClick:l})}),S("div",{className:"buttons-container",children:S(Si,{children:S(Ti,{gutter:10,children:(n!=null?n:[]).map((u,p)=>S("div",{className:"button-wrapper",children:S("button",{className:`button ${u.type===Yr.Quit?"quit-button":"action-button"}`,onClick:()=>a(u),children:u.text})},p))})})})]})}),d)}},[i,t,r,n,a,l]),S("div",{ref:c})},Ii=e=>{let t=Gl({title:e.title,content:S(ec,{games:e.games,title:e.title,buttons:e.buttons,onClose:e.onClose}),backdropColor:"#1a1a1a",placement:"bottom",noHeader:!0,padding:"0px",onClose:()=>{console.log("onClose")},onOpen:e.onOpen});return t.show(),t},Ri=new Map,Ai=(e,t)=>{Ri.set(e,t)};Ai(/^\{slot-checkmark\}/,(e,t)=>{var n,o;let r=(o=(n=t==null?void 0:t.customStyle)==null?void 0:n.mark)!=null?o:{};return S("div",{style:r,children:S("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",style:{height:"24px",verticalAlign:"middle"},children:[S("g",{clipPath:"url(#clip0_2247_16523)",children:S("path",{d:"M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM9.29 16.29L5.7 12.7C5.31 12.31 5.31 11.68 5.7 11.29C6.09 10.9 6.72 10.9 7.11 11.29L10 14.17L16.88 7.29C17.27 6.9 17.9 6.9 18.29 7.29C18.68 7.68 18.68 8.31 18.29 8.7L10.7 16.29C10.32 16.68 9.68 16.68 9.29 16.29Z",fill:"white"})}),S("defs",{children:S("clipPath",{id:"clip0_2247_16523",children:S("rect",{width:"24",height:"24",fill:"white"})})})]})})});tc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUNSURBVHgBfVRZbFRlFP7+e+/cmc5MO22ntGALLZUWhoZFqBgaNUYJMUYehBgwJLw0wRd9MJr4AokvJibG6JtLoompkhgNBoNbERQqVEQLtdu0dN9nptPOcvft98xU3Kje5Cb3vzn/d77zfeccYO1HaG9vr0xlZz+ZvZXJ955TeO8XKh+5oPPRzrR29Uz8fbwCoRC31mW2FuB8PD3HRH/N2Od5NnDLQlmlH9x1sZhU4CvT0XpfEyyf4/GqTOqRp+tr6Y77X6BsfHz8QHip5ht3SBDKDwiYHbQQLpOQHxfBZA5XNFBRK8BeAT58bxg1tTvRtMPlXek32k69fOqnu0B7+3sfb9m+7bx+1hOVqAl3yYcQcei6MIW6xghEDvR0p7Dl3iiEsAxFtTD0M0PN1nUQxGXPt6N7z+HDh3v/DirM3VBc55KDymN+5PtcDAzE8djx3XCzXlE4z2LwvMILXO25DTvZBCE4jdR4GOLmEASW4kdfbBAplBdAhZFLWmLg41TVpr0yMotBhFsW0bprM7jDiyG8AOYUkAFSsnieT2ZIZwm2yjCbTmDDjgYEfcmRpoc3biu6l9fNyn2H6jC27IfujGJPbDOSoyZuXluEp5KGGgETU9ddBeREtyZajuu/TkLnLuoq6sCSDi686TbvPblXYjMzM+96c5UnHVPAwqCKfY9WgOc8pKYNhJqDEKW/1P/t8gx2xkhoKoARHRYETGaB2wJk2YNBMSNfxl+XskOR45lrHkp2SwhIGsxUhKI5bINDDgGDXy9CEFYZlkBG3/AcYg21xSSFfKGN1BkhAT7dh2Alw9Jk2QnJy/lDuXwWK/E8ttaFYemFeBGGSZnzHpqbN8AwXALlxI6kiLq48tU09u/ftCrFBCWv4bDggAUEuitVS4oKqNxACQsjq5oIqqVgzINJcuiaAEnhxUScSvZJDEYYUHQLhu5B9gRqJwZlhr6DHD5iHAoxJhTa5PbCFKrqXSTTBlRFgKLQiJDTjEpU6VujxJrGoVGCPJ0tGzDIQEsDsgs2cssckiPDyJFptUEIkai+MpdLY2XGT2DlyOXpIhnlwY9vO4Yhl7sINJqQa03och66IlEXEGPLo0TUOUmRxPJhflQl5jI+PZ9YYmN9I+8MXYk8m56S4VAvVkU8lAZLCwZT03P0x+NY11QB26YhIOrD8TEcanuoOAQyja2VJMbkvEjv8KSB7qvZV9nBgwdDR9o+U3p+nMATR6sR7wqhdbefSmZ/DpxEujHGV0eP9BbpHPSTniRVzpeCoMtY5AHc6Erwt75rEIXOzk7t0Ak+8dSx9ei+GMa2+1V0/7JEa0eH4VAHkLia5cIkpjZVYpMHkuRBT3m4nUlDTwcQ8PlQKjmIrlevFxMXZvWexsiWvFXGo5V9uPy9g/rmABYWJCgJEs01yWEKpHaSRAvqgo7pcR0TpgJTlxCRAmAxGRNZlZ/+qOXBAt6dJetVxfr2BNe1eEeeCSE1S5O0IYNl0tRwbFgKga3k4IvYsAMGFnUBAY+qipZAaKUBcDRvaPDMxjt79R9LuqPj7K6y/JM3t8dclpnIwsuEyXWvKENqDAhUu3Amy4uxWTuLTW1+XP9B8+T6K43PvXRkCv+z+cXBc4nemepALBD2CzHLQSBMeiYljI66uNjnoIbkMSYs9M+b/W93VO9EcRusvfnv+p9L5V6Dydt7LktRTSFzdMFzBCWRdCc/eP6FB07/Ecv/ffl3auuKkJv2jm0AAAAASUVORK5CYII=";Ai(/^\{slot-coin\}/,(e,t)=>{var n;let r=(n=t==null?void 0:t.coinImage)!=null?n:tc;return S("img",{src:r,alt:"\u{1FA99}",style:{height:"1em",verticalAlign:"middle"}})});rc=(e,t)=>{if(!e.includes("{slot-"))return e;let r=[],n=0;for(;n<e.length;){let o=null,i=1/0,s=null;for(let[a,l]of Ri.entries()){let c=a.source.startsWith("^")?a.source.slice(1):a.source,d=new RegExp(c,"g");d.lastIndex=n;let u=d.exec(e);u&&u.index<i&&(o=u,i=u.index,s=l)}if(o&&s)i>n&&r.push(e.substring(n,i)),r.push(s(o,t)),n=i+o[0].length;else{r.push(e.substring(n));break}}return r.length===1?r[0]:S("div",{style:{display:"flex",alignItems:"center",gap:"4px",color:"#FFF",fontFamily:'"PingFang SC"',fontSize:"16px",fontStyle:"normal",fontWeight:600,lineHeight:"18px",width:"max-content"},children:r})},nc=({message:e,type:t="info",duration:r=3e3,onClose:n})=>{let[o,i]=kt(!0);return Ee(()=>{let s=setTimeout(()=>{i(!1),setTimeout(()=>{n==null||n()},300)},r);return()=>clearTimeout(s)},[r,n]),S("div",{className:`toast toast-${t} ${o?"toast-visible":"toast-hidden"}`,style:{position:"fixed",top:"max(20px, env(safe-area-inset-top))",left:"50%",padding:"8px 12px",maxWidth:"min(85vw, 400px)",minWidth:"200px",width:"auto",background:t==="success"?"#4caf50":t==="error"?"#f44336":t==="warning"?"#ff9800":"#2F2F3B",color:"white",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0, 0, 0, 0.2)",zIndex:9999,transition:"opacity 0.3s, transform 0.3s",opacity:o?1:0,transform:o?"translate(-50%, 0)":"translate(-50%, -20px)",textAlign:"center",wordWrap:"break-word"},children:e})},Ci=(e,t)=>{let r=document.createElement("div");document.body.appendChild(r);let n=()=>{document.body.removeChild(r)},o=rc(e,t);Et(S(nc,{message:o,type:t==null?void 0:t.type,duration:t==null?void 0:t.duration,onClose:n}),r)}});function Pi(){return y(this,null,function*(){if(nn)return nn;let t=`${g.testMode?"https://stg-game.jolibox.com":"https://game.jolibox.com"}/api/user-retention/exit-recommendations?objectId=${g.mpId}&from=GAME_DETAIL`,{response:{data:r}}=yield q(t);return nn=r,r})}function Oi(){return y(this,null,function*(){let e=new he;if(g.mpType!=="game")return e.resolve(!1),e.promise;let t=yield Pi();if(t.code!=="SUCCESS")return e.resolve(!1),e.promise;let{gameListInfo:r,title:n,buttons:o}=t.data,i=Ii({games:r.games,title:n,buttons:o,onClose:s=>{var a;switch(s.type){case"quit":e.resolve(!1);break;case"dismiss":e.resolve(!0),i.hide();break;case"navigate":(a=s.data)!=null&&a.game?oc(s.data.game):e.resolve(!0),i.hide();break;default:e.resolve(!0);break}}});return e.promise})}var nn,oc,Ni=x(()=>{"use strict";J();G();P();rn();Ae();nn=null;Pi();oc=e=>{var a;let{data:t}=N("envSync"),r=new URL(t.schema),n=r.pathname,o=new URLSearchParams(r.search);o.set("gameId",g.mpId),o.set("joliSource",g.encodeJoliSourceQuery({__mpType:"game",__orientation:(a=e.orientation)!=null?a:"VERTICAL"}));let s=`${`https://${e.gameId}.content.jolibox.com/`}${n}?${o.toString()}`;N("openSchemaSync",{schema:s})}});var Di={};yn(Di,{config:()=>dc});function ic(){Ce.on("isAdShowing",e=>{It=e,$e(It)&&N("updateContainerConfigSync",{displayCapsuleButton:!It,webviewId:g.webviewId})})}function sc(){ue.on("onDocumentReady",()=>{var e;(e=globalThis.joliboxJSCore)==null||e.onDocumentReady(window.location.href),Q("onDocumentReady",{start_timestamp:At,timestamp:Date.now()})})}function ac(e){g.mpType==="game"&&W.start(e)}function lc(){re("onJoliboxServiceReady",({runtimeInfo:e,loadDuration:t})=>{e&&g.onEnvConfigChanged({hostUserInfo:e}),ue.emit("LifecycleEvent.onReady",w({},g.hostUserInfo?g.hostUserInfo:{isLogin:!1})),Q("joliboxServiceReady",{start_timestamp:At,timestamp:Date.now()}),ac(t)}),re("onBeforeExit",({uuid:e})=>{var t;(t=globalThis.joliboxJSCore)==null||t.doExit(e)})}function cc(){let e=()=>{Q("onBeforeExit",{timestamp:Date.now()}),Tt==null||Tt(),W.close(Date.now()-At)};ce.onDoExit(()=>y(this,null,function*(){return It?!0:$e(g.shouldInterupt)?(g.shouldInterupt||e(),g.shouldInterupt):Rt!=null&&Rt.canShowRecommended&&(yield Oi())?!0:(e(),!1)}))}function uc(){return y(this,null,function*(){let e=`${g.baseApiHost}/api/fe-configs/js-sdk/basic-meta`,{response:{data:t}}=yield q(e);t&&(Rt=t)})}function dc(){At=Date.now(),lc(),ic(),cc(),sc(),uc(),Tt=Lo()}var Tt,At,It,Rt,Li=x(()=>{"use strict";G();J();P();ge();Uo();$r();Ni();Ae();It=!1,Rt=null;ce.onReady(()=>{})});function Ui(e){let t=Ir.config[e];return t||(t={},Ir.config[e]=t),(r,n)=>{if(t[r]){ne.warn(`[can i use] ${r} already registered`);return}t[r]=w({},n)}}var Fi=x(()=>{"use strict";P()});function on(e){ji=e}function Ct(e){return e===null||typeof e!="object"?e:Array.isArray(e)?e.map(t=>Ct(t)):Object.keys(e).reduce((t,r)=>(t[r]=Ct(e[r]),t),{})}function me(e){return typeof e=="number"}function sn(e){let t=an(e);switch(t){case"string":return`"${e}"`;case"number":case"boolean":case"null":case"undefined":return String(e);default:return`a(n) ${t}`}}function an(e){return typeof e=="function"?"function":Object.prototype.toString.call(e).slice(8).slice(0,-1).toLowerCase()}var ji,B,Pt,Ot,Nt,Dt,Oe,Lt,Ut,Ft,jt,Mt,Bt,Ht,$t,Jt,Kt,Vt,Gt,ln=x(()=>{"use strict";ji=!1;B=class{constructor(){this.errors=[];this.hasFallback=!1;this.hasDefault=!1;this._optional=!1}fail(t){if(ji)if(typeof t=="string")this.errors.push(t);else{let r=`${this.path} should be ${t.expect}`;this._optional&&t.expect!=="undefined"?r+=" or undefined, ":r+=", ",r+=`but got ${sn(t.actual)}`,this.errors.push(r)}return!1}fallback(t){return this.hasFallback=!0,this._fallback=t,this}get fallbackValue(){return Ct(this._fallback)}default(t){return this.hasDefault=!0,this._default=t,this}get defaultValue(){return typeof this._default=="function"?this._default:Ct(this._default)}optional(){return this._optional=!0,this}};Pt=class extends B{validate(t){return this._optional&&t===void 0?!0:me(t)?me(this._min)&&t<this._min?this.fail(`the value of ${this.path} should be greater than or equal to ${this._min}`):me(this._max)&&t>this._max?this.fail(`the value of ${this.path} should be less than or equal to ${this._max}`):me(this._greater)&&t<=this._greater?this.fail(`the value of ${this.path} should be greater than ${this._greater}`):this._isInt&&t!==Math.floor(t)?this.fail(`the value of ${this.path} should be integer but got ${t}`):!0:this.fail({expect:"number",actual:t})}min(t){return this._min=t,this}max(t){return this._max=t,this}isInt(t){return this._isInt=t,this}greater(t){return this._greater=t,this}},Ot=class extends B{validate(t){return this._optional&&t===void 0?!0:typeof t!="boolean"?this.fail({expect:"boolean",actual:t}):!0}},Nt=class extends B{validate(t){if(this._optional&&t===void 0)return!0;if(typeof t!="string")return this.fail({expect:"string",actual:t});if(me(this._maxLength)&&t.length>this._maxLength)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxLength}`);if(me(this._minLength)&&t.length<this._minLength)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minLength}`);if(typeof this._pattern=="string"){if(!new RegExp(this._pattern).test(t))return this.fail(`${this.path} should match pattern "${this._pattern}"`)}else if(this._pattern&&!this._pattern.test(t))return this.fail(`${this.path} should match pattern "${this._pattern.toString()}"`);return!0}minLength(t){return this._minLength=t,this}maxLength(t){return this._maxLength=t,this}pattern(t){return this._pattern=t,this}},Dt=class extends B{validate(t){return this._optional&&t===void 0?!0:typeof t!="symbol"?this.fail({expect:"symbol",actual:t}):!0}},Oe=class extends B{validate(t){return!0}},Lt=class extends B{validate(t){return t!==void 0?this.fail({expect:"undefined",actual:t}):!0}},Ut=class extends B{validate(t){return this._optional&&t===void 0?!0:t!==null?this.fail({expect:"null",actual:t}):!0}},Ft=class extends B{validate(t){return this._optional&&t===void 0?!0:typeof t!="function"?this.fail({expect:"function",actual:t}):!0}},jt=class extends B{constructor(...t){super(),this._items=t}validate(t){if(this._optional&&t===void 0)return!0;if(!this._items.includes(t)){let r=this._items.map(n=>JSON.stringify(n)).join(", ");return this.fail(`expect ${this.path} to be one of ${r}, but got ${sn(t)}`)}return!0}},Mt=class extends B{constructor(r){super();this._item=r}validate(r){if(this._optional&&r===void 0)return!0;if(!Array.isArray(r))return this.fail({expect:"array",actual:r});if(me(this._minItems)&&r.length<this._minItems)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minItems}`);if(me(this._maxItems)&&r.length>this._maxItems)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxItems}`);if(me(this._length)&&r.length!==this._length)return this.fail(`the length of ${this.path} should be equal to ${this._length}`);let n=this._item;if(!n)return!0;let o=!0;if(r.forEach((i,s)=>{if(n.path=`${this.path}[${s}]`,n.errors=this.errors,i===void 0&&n.hasDefault){r[s]=n.defaultValue;return}n.validate(i)||(n.hasFallback?r[s]=n.fallbackValue:o=!1)}),this._uniqueItems){let i=new Map;for(let s in r)i.has(r[s])?o=this.fail(`${this.path} should NOT have duplicate items (${this.path}[${i.get(r[s])}] and ${this.path}[${s}] are identical)`):i.set(r[s],s)}return o}minItems(r){return this._minItems=r,this}maxItems(r){return this._maxItems=r,this}uniqueItems(){return this._uniqueItems=!0,this}length(r){return this._length=r,this}},Bt=class extends B{constructor(r){super();this._value=r}validate(r){if(this._optional&&r===void 0)return!0;if(an(r)!=="object")return this.fail({expect:"object",actual:r});let o=r,i=this._value;i.errors=this.errors;let s=!0;for(let a in o){let l=o[a];if(/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(a)?i.path=`${this.path}.${a}`:i.path=`${this.path}["${a}"]`,!(l===void 0&&i._optional)){if(l===void 0&&i.hasDefault){o[a]=i.defaultValue;continue}i.validate(l)||(i.hasFallback?o[a]=i.fallbackValue:s=!1)}}return s}},Ht=class extends B{constructor(r={}){super();this._object=r}validate(r){if(this._optional&&r===void 0)return!0;if(an(r)!=="object")return this.fail({expect:"object",actual:r});let n=r,o=!0;for(let i in this._object){let s=n[i],a=this._object[i];if(a.errors=this.errors,/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(i)?a.path=`${this.path}.${i}`:a.path=`${this.path}["${i}"]`,!(a._optional&&s===void 0)){if(s===void 0&&a.hasDefault){n[i]=a.defaultValue;continue}a.validate(s)||(a.hasFallback?n[i]=a.fallbackValue:o=!1)}}return o}},$t=class extends B{constructor(r){super();this.value=r}validate(r){return r===void 0&&this._optional?!0:r!==this.value?this.fail({expect:sn(this.value),actual:r}):!0}},Jt=class extends B{constructor(...t){super(),this._items=t}validate(t){if(t===void 0&&this._optional)return!0;let r=[],n=!1,o=this._items.length;for(let i=0;i<o;i++){let s=this._items[i];if(s.errors=[],s.path=this.path,!s.validate(t))r.push(s.errors.join("; "));else if(!n){n=!0;break}}if(!n){let i=r.join(`
147
+ or `);this.errors.push(i)}return n}},Kt=class extends B{constructor(...t){super(),this._items=t;let r=0,n=t.length-1;for(;n>=0;n--){let o=t[n];if(o._optional||o.hasDefault)r+=1;else break}this._minItems=t.length-r}validate(t){if(t===void 0&&this._optional)return!0;if(!Array.isArray(t))return this.fail({expect:"array",actual:t});if(t.length<this._minItems)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minItems}`);let r=!0;return this._items.forEach((n,o)=>{if(n.path=`${this.path}[${o}]`,n.errors=this.errors,t[o]===void 0&&n.hasDefault){t[o]=n.defaultValue;return}n.validate(t[o])||(n.hasFallback?t[o]=n._fallback:r=!1)}),r}},Vt=class extends B{validate(t){return t===void 0&&this._optional||t instanceof ArrayBuffer?!0:this.fail({expect:"arraybuffer",actual:t})}},Gt=class extends B{constructor(t){super(),this._ctor=t}validate(t){return t===void 0&&this._optional||t instanceof this._ctor?!0:this.fail({expect:`typedarray of ${this._ctor.name}`,actual:t})}}});function cn(e,t,r="param"){if(e.errors=[],e.path=r,on(!0),!e.validate(t)){let n=e.errors.join(`
148
+ `);throw e.errors.length=0,on(!1),new TypeError(n)}}var f,un=x(()=>{"use strict";ln();ln();f={object(e){return new Ht(e)},array(e){return new Mt(e)},tuple(...e){return new Kt(...e)},literal(e){return new $t(e)},or(...e){return new Jt(...e)},symbol(){return new Dt},record(e){return new Bt(e)},function(){return new Ft},boolean(){return new Ot},string(){return new Nt},number(){return new Pt},undefined(){return new Lt},null(){return new Ut},unknown(){return new Oe},any(){return new Oe},as(){return new Oe},arraybuffer(){return new Vt},enum(...e){return new jt(...e)},typedarray(e){return new Gt(e)}}});var qt,Mi,Bi=x(()=>{"use strict";P();ie();un();Re();qt=1,Mi=e=>{function t(n,o){return(...i)=>{var u,p,m,v;let s=Date.now(),a={method:n,trace_id:qt};qt+=1;let l="SUCCESS",c=`${n}:ok`,d=0;try{if(o.paramsSchema)try{cn(o.paramsSchema,i,"params")}catch(b){throw Fr(`${n}:fail ${b.message}`)}let E=o.implement(...i),h=E,_=`${n}:ok`;if(E&&"code"in E){let{code:b,data:T,message:A}=E;l=b,h=T,_=A}return{code:l,message:_,data:h}}catch(E){let h=E;d=(p=(u=h.code)!=null?u:h.errNo)!=null?p:2e3,l="FAILURE";let _=(v=(m=h.message)!=null?m:h.errMsg)!=null?v:`${E}`;return c=`${n}:${l} ${_.replace(/^\S+:(fail|cancel)\s?/,"")}`,K(new Ve(c,d)),{code:l,message:c}}finally{let E=Date.now()-s;e("apiInvoked",O(w({},a),{duration:E,status:l}))}}}function r(n,o){return(...i)=>y(this,null,function*(){var p,m,v,E;let s=qn(i)?i:[i],a=Date.now(),l={method:n,trace_id:qt};qt+=1;let c=`${n}:ok`,d="SUCCESS",u={code:d,message:c};try{if(o.paramsSchema)try{cn(o.paramsSchema,s,"params")}catch(b){throw Fr(b.message)}let _=yield o.implement(...s);if(_&&"code"in _){let{code:b,data:T,message:A}=_;d=b,c=A,_=T}return Object.assign(u,{code:d,message:c,data:_}),u}catch(h){let _=h,b=(m=(p=_.code)!=null?p:_.errNo)!=null?m:2e3;d="FAILURE";let T=(E=(v=_.message)!=null?v:_.errMsg)!=null?E:`${h}`,A=`${n}:${d} ${T.replace(/^\S+:(fail|cancel)\s?/,"")}`;return Object.assign(u,{code:d,message:A}),K(new Ve(A,b)),u}finally{let h=Date.now()-a;e("apiInvoked",O(w({},l),{duration:h,status:d}))}})}return{createAPI:r,createSyncAPI:t}}});var H,D,R,se=x(()=>{"use strict";Fi();ge();Bi();un();({createAPI:H,createSyncAPI:D}=Mi(Q)),R=Ui("native")});var Hi,mc,fc,hc,_c,$i=x(()=>{"use strict";P();se();G();Hi=j(),mc="env",fc="getSystemInfoSync",hc=D(fc,{implement:()=>{var r;let e=N("envSync"),{data:t}=e;return{system:t.deviceInfo.system,platform:t.deviceInfo.platform.toLowerCase(),version:t.sdkInfo.jssdkVersion,pixelRatio:t.deviceInfo.pixelRatio,language:t.deviceInfo.lang,brand:t.deviceInfo.brand,appName:(r=t.hostInfo)==null?void 0:r.appName,SDKVersion:t.sdkInfo.jssdkVersion}}}),_c=D(mc,{implement:()=>{var t;let e=N("envSync");return(t=e==null?void 0:e.data)!=null?t:void 0}});Hi.registerCommand("API.getSystemInfoSync",hc);Hi.registerCommand("API.env",_c);R("env",{version:"1.0.0"});R("getSystemInfoSync",{version:"1.0.0"})});var Ji=vn(dn=>{"use strict";P();se();ie();G();ge();J();var gc="exitGame",vc="onReady",yc="onJoliboxShow",bc="onJoliboxHide",Wt=j(),zt=at(K),wc=H(gc,{paramsSchema:f.tuple(f.function(),f.boolean().optional().default(!1)),implement:(e,t=!1)=>y(dn,null,function*(){zt(e).call(dn),$e(g.shouldInterupt)&&!g.shouldInterupt&&g.from&&Hn("onRetentionResult",{shouldStay:t},g.from,!0),yield Y("exitAppAsync")})}),Ec=D(yc,{paramsSchema:f.tuple(f.function()),implement(e){let t=zt(e);re("onJoliboxEnterForeground",()=>{t.call(this),Ge.emit("visible",!0)})}}),kc=D(bc,{paramsSchema:f.tuple(f.function()),implement(e){let t=zt(e);re("onJoliboxEnterBackground",()=>{t.call(this),Ge.emit("visible",!1)})}}),xc=D(vc,{paramsSchema:f.tuple(f.function()),implement(e){let t=zt(e);ue.on("LifecycleEvent.onReady",r=>{t(r)})}});Wt.registerCommand("LifecycleSDK.exit",wc);Wt.registerCommand("LifecycleSDK.onReady",xc);Wt.registerCommand("LifecycleSDK.onJoliboxShow",Ec);Wt.registerCommand("LifecycleSDK.onJoliboxHide",kc);R("lifeCycle.exit",{version:"1.0.0"});R("lifeCycle.onReady",{version:"1.0.0"});R("lifeCycle.onJoliboxShow",{version:"1.0.0"});R("lifeCycle.onJoliboxHide",{version:"1.0.0"})});function Ki(e){let t={};if(!ye(e))return t;for(let[r,n]of Object.entries(e)){let o=r.toLocaleLowerCase();n?typeof n=="object"?t[o]=Object.prototype.toString.call(n):t[o]=String(n):t[o]=""}return t}function Vi(e="GET"){if(e==="")return"POST";let t=e.toUpperCase();return["GET","OPTIONS","HEAD","POST","PUT","DELETE","TRACE","CONNECT","PATCH"].includes(t)?t:"GET"}function Gi(e,t=!1){if(e)return t||e>0&&e<=6e4?Math.ceil(e):6e4}function qi(e,t,r){if(["POST","PUT","PATCH"].includes(t)||!ye(r))return e;let[n,o=""]=e.split("?"),i=new URLSearchParams(o);for(let[a,l]of Object.entries(r))l!=null&&i.append(a,String(l));let s=i.toString();return s?`${n}?${s}`:n}var Wi=x(()=>{"use strict";P()});var Sc,Tc,pn,mn,zi,Ic,Rc,Ac,Yi=x(()=>{"use strict";Re();Br();se();Wi();P();ie();J();Sc=15,Tc=ut("createRequestTaskSync","operateRequestTaskSync",{type:"public",baseUrl:g.baseApiHost}),pn=0,mn=[],zi=at(K),Ic=(e,t)=>{let r=e.filter(t),n=e.filter(o=>!t(o));return e.length=0,e.push(...n),r},Rc=e=>{let t=new he,r=()=>{};return D("request",{paramsSchema:f.tuple(f.object({url:f.string(),method:f.string(),headers:f.object(),data:f.object().optional(),query:f.object().optional(),dataType:f.string().default("json"),responseType:f.string().default("text"),enableCache:f.boolean().default(!1),appendHostCookie:f.boolean().default(!0),timeout:f.number().default(3e4),success:f.function(),fail:f.function()})),implement(o){let i=()=>y(this,null,function*(){var a,l;let s=zi(o.fail);try{if(pn+=1,t.state!=="pending")return;let{data:c,dataType:d,responseType:u,enableCache:p,appendHostCookie:m}=o,v=Ki(o.headers),E=Vi(o.method),h=Gi(o.timeout),_=qi(o.url,E,c),b=zi(o.success),T=Object.assign({},o,{method:E,header:v,data:E==="GET"||E==="HEAD"?void 0:c,enableCache:p,query:(a=o.query)!=null?a:{},dataType:d,responseType:u,appendHostCookie:m});h&&(T.timeout=h);let A=Tc(_,T);{let{response:C}=yield A,{code:k,data:$,message:z}=C;if($&&typeof $=="object"&&"status"in $&&$.status!==200)throw _e({code:$.status||-1,msg:`request:fail status ${$.status}`});t.resolve({code:k!=null?k:"SUCCESS",data:$,message:z!=null?z:"request:ok"}),b({code:"SUCCESS",message:"request:ok",data:$})}}catch(c){t.reject(c),s({code:"FAILURE",message:"httpRequst: failed"})}finally{pn-=1,(l=mn.shift())==null||l()}});return pn>=Sc?(r=()=>{Ic(mn,s=>s===i)},mn.push(i)):i(),t.promise}})(e),{abort(){t.reject(_e({code:-1,msg:"request:fail abort"})),r()}}},Ac=j();Ac.registerCommand("HttpSDK.request",Rc);R("request",{version:"1.0.0"})});function Lc(e){let t=Object.prototype.toString.call(e).split(" ")[1].split("]")[0].toLocaleLowerCase();return Dc.includes(t)?t:""}function Uc(e,t){try{switch(t){case"string":return e;case"object":return JSON.parse(e);case"number":return parseFloat(e);case"boolean":return e==="true";default:return""}}catch(r){return""}}function Fc(e,t){try{switch(t){case"string":case"number":case"boolean":return`${e}`;case"object":return JSON.stringify(e);default:return""}}catch(r){return""}}var Yt,Cc,Pc,Oc,Nc,rf,nf,Dc,Qi=x(()=>{"use strict";se();G();P();Ae();J();Yt=j(),Cc=H("getLocalStorage",{paramsSchema:f.tuple(f.string()),implement(e){return y(this,null,function*(){let{response:t}=yield q(`/api/games/user-storage/${g.mpId}`,{method:"GET",responseType:"json",appendHostCookie:!0,query:{key:e}}),{data:{code:r,message:n,data:o}}=yield t;if(r==="SUCCESS")return{code:r,message:n,data:o==null?void 0:o.value};try{let{data:{data:i,dataType:s}}=yield Y("getLocalStorageAsync",{key:e}),a=Uc(i,s);return{code:r,message:`${n}. fallback to native`,data:a}}catch(i){return{code:"INTERNAL_ERROR",message:"[Jolibox SDK] get local storage failed",data:null}}})}});Yt.registerCommand("StorageSDK.getItem",Cc);R("storage.getItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});Pc=H("setStorage",{paramsSchema:f.tuple(f.string(),f.or(f.string(),f.boolean(),f.number())),implement(e,t){return y(this,null,function*(){let r=g.mpId,n=typeof t=="string"?t:String(t),{response:o}=yield q(`/api/games/user-storage/${r}`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e,value:n}}),{data:{code:i,message:s}}=o,a=Lc(t),l=Fc(t,a);return yield Y("setLocalStorageAsync",{key:e,data:l,dataType:a}),i=="SUCCESS"?{code:i,message:s}:{code:i,message:`${s}. fallback to native`}})}});Yt.registerCommand("StorageSDK.setItem",Pc);R("storage.setItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});Oc=H("removeStorage",{paramsSchema:f.tuple(f.string()),implement(e){return y(this,null,function*(){let t=g.mpId,{response:r}=yield q(`/api/games/user-storage/${t}/remove`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e}}),{data:{code:n,message:o}}=r;return yield Y("removeLocalStorageAsync",{key:e}),n==="SUCCESS"?{code:n,message:o}:{code:n,message:"[Jolibox SDK] remove item succ"}})}});Yt.registerCommand("StorageSDK.removeItem",Oc);R("storage.removeItem",{version:"1.0.0",properties:{key:"1.0.0"}});Nc=H("clearStorage",{implement(){return y(this,null,function*(){let e=g.mpId,{response:t}=yield q(`/api/games/user-storage/${e}/clear`,{method:"POST",appendHostCookie:!0});Y("clearLocalStorageAsync");let{data:{code:r,message:n}}=t;return r==="SUCCESS"?{code:r,message:n}:{code:r,message:`${n}.fallback to native`}})}});Yt.registerCommand("StorageSDK.clear",Nc);R("storage.clear",{version:"1.0.0"});rf=H("getStorageInfo",{implement(){return y(this,null,function*(){let{data:e}=yield Y("getStorageInfoAsync");return e})}});R("getStorageInfo",{version:"1.0.0",success:{keys:"1.0.0",currentSize:"1.0.0",limitSize:"1.0.0"}});nf=D("getStorageInfoSync",{implement(){return N("getStorageInfoSync")}}),Dc=["string","number","boolean","object",""]});var jc,Mc,Bc,fn,Xi=x(()=>{"use strict";P();G();se();jc=D("showKeyboard",{paramsSchema:f.tuple(f.object({defaultValue:f.string().optional().default(""),multiple:f.boolean().optional().default(!1),maxLength:f.unknown().optional().default(1e5)})),implement(e){var n;let t=Math.floor((n=Number(e.maxLength))!=null?n:1e5),{defaultValue:r}=e;r&&t&&(r=r.slice(0,t)),N("showKeyboardSync",O(w({},e),{defaultValue:r,maxLength:t}))}});R("keyboard.showKeyboard",{version:"1.0.0",properties:{params:{defaultValue:"1.0.0",multiple:"1.0.0",confirmHold:"1.0.0",confirmType:"1.0.0",maxLength:"1.0.0"}},success:{errMsg:"1.0.0"}});Mc=D("updateKeyboard",{paramsSchema:f.tuple(f.object({value:f.string()})),implement(e){N("updateKeyboardSync",e)}});R("keyboard.updateKeyboard",{version:"1.0.0",properties:{params:{value:"1.0.0"}}});Bc=D("hideKeyboard",{implement(){N("hideKeyboardSync")}});R("keyboard.hideKeyboard",{version:"1.0.0"});fn=j();fn.registerCommand("KeyboardSDK.showKeyboard",jc);fn.registerCommand("KeyboardSDK.updateKeyboard",Mc);fn.registerCommand("KeyboardSDK.hideKeyboard",Bc)});var Zi=vn(Se=>{"use strict";P();se();ge();var Ne=j(),Hc=H("levelFinished",{paramsSchema:f.tuple(f.string(),f.object({result:f.boolean(),duration:f.number()})),implement:(e,t)=>y(Se,null,function*(){let{result:r,duration:n}=t,o=[];o.push(W.tracker("LevelFinished",{levelId:e,result:r,duration:n})),o.push(W.reporter({event:"COMPLETE_GAME_LEVEL"})),yield Promise.all(o)})}),$c=H("taskFinished",{paramsSchema:f.tuple(f.string(),f.object({duration:f.number()})),implement:(e,t)=>y(Se,null,function*(){let{duration:r}=t;return yield W.reportToNative({event:"TaskFinished",params:{duration:r,taskId:e}})})}),Jc=H("levelUpgrade",{paramsSchema:f.tuple(f.string(),f.string()),implement:(e,t)=>y(Se,null,function*(){let r=[];r.push(W.reportToNative({event:"LevelUpgrade",params:{name:t,levelId:e}})),yield Promise.all(r)})}),Kc=H("onHistoryUserLevel",{paramsSchema:f.tuple(f.number()),implement:e=>y(Se,null,function*(){return yield W.reportToNative({event:"HistoryUserLevel",params:{level:e}})})}),Vc=H("onHistoryUserScore",{paramsSchema:f.tuple(f.number()),implement:e=>y(Se,null,function*(){return yield W.reportToNative({event:"HistoryUserScore",params:{score:e}})})}),Gc=H("taskEvent",{paramsSchema:f.tuple(f.string(),f.object({tools:f.array(f.object({id:f.string(),name:f.string(),count:f.number(),description:f.string().optional(),price:f.object({amount:f.number(),unit:f.string()}).optional()})).optional(),awards:f.array(f.object({id:f.string(),name:f.string()})).optional()})),implement:(e,t)=>y(Se,null,function*(){var n,o;let r=[];r.push(W.reportToNative({event:"TaskEvent",params:w({taskId:e},t)})),(o=(n=t.tools)==null?void 0:n.length)!=null&&o&&(r.push(W.reporter({event:"USE_GAME_ITEM"})),r.push(W.reportToNative({event:"UseGameItem",params:w({taskId:e},t)}))),yield Promise.all(r)})});Ne.registerCommand("TaskTrackerSDK.levelFinished",Hc);Ne.registerCommand("TaskTrackerSDK.taskFinished",$c);Ne.registerCommand("TaskTrackerSDK.levelUpgrade",Jc);Ne.registerCommand("TaskTrackerSDK.historyUserLevel",Kc);Ne.registerCommand("TaskTrackerSDK.historyUserScore",Vc);Ne.registerCommand("TaskTrackerSDK.taskEvent",Gc);R("TaskTrackerSDK.onLevelFinished",{version:"1.0.0",properties:{levelId:"1.0.0",params:{result:"1.0.0",duration:"1.0.0"}}});R("TaskTrackerSDK.onTaskFinished",{version:"1.0.0",properties:{taskId:"1.0.0",duration:"1.0.0"}});R("TaskTrackerSDK.onLevelUpgrade",{version:"1.0.0",properties:{levelId:"1.0.0",name:"1.0.0"}});R("TaskTrackerSDK.onHistoryUserLevel",{version:"1.0.0",properties:{level:"1.0.0"}});R("TaskTrackerSDK.onHistoryUserScore",{version:"1.0.0",properties:{score:"1.0.0"}});R("TaskTrackerSDK.onTaskEvent",{version:"1.0.0",properties:{taskId:"1.0.0",params:{tools:{id:"1.0.0",name:"1.0.0",count:"1.0.0",description:"1.0.0",price:{amount:"1.0.0",unit:"1.0.0"}},awards:{id:"1.0.0",name:"1.0.0"}}}})});var qc,Wc,es,ts=x(()=>{"use strict";J();G();se();P();Re();R("login",{version:"1.0.0",properties:{force:"1.0.0"},success:{errMsg:"1.0.0",code:"1.0.0",token:"1.0.0",isLogin:"1.0.0"}});R("checkSession",{version:"1.0.0",success:{errMsg:"1.0.0"}});qc=H("login",{implement(){return y(this,null,function*(){var s;let{data:{isLogin:e}}=yield Y("checkLoginAsync");if(e)return{isLogin:!0,token:(s=g.hostUserInfo)==null?void 0:s.token};re("onLoginStateChange",({isLogin:a,token:l,uuid:c})=>{c==r&&o({isLogin:a,token:l})});let t=N("loginSync"),{data:{uuid:r}}=t;if(!r)throw _e({code:-1,msg:"login failed"});let{promise:n,resolve:o}=new he,i=yield n;return g.onEnvConfigChanged({hostUserInfo:i}),ue.emit("onLoginComplete",i),i})}}),Wc=H("checkSession",{implement(){return y(this,null,function*(){let{data:{isLogin:e}}=yield Y("checkLoginAsync");return{isLogin:e}})}}),es=j();es.registerCommand("API.login",qc);es.registerCommand("API.checkSession",Wc)});function ns(){let e=new Map,t;return{registerRewardHandler(n,o){e.set(n,o)},handleReward(n,...o){return y(this,null,function*(){return yield n.reduce((s,a)=>y(this,null,function*(){let l=yield s;if(l===!0)return!0;rs&&console.log(`handleReward ${a}`);let c=e.get(a),d=c?yield c(...o):l;return rs&&console.log(`handleReward ${a} ${d}`),d}),Promise.resolve(!1))})},registerRewardsFetcher(n){return y(this,null,function*(){t=(...o)=>y(this,null,function*(){try{return yield n(...o)}catch(i){return console.error("getRewardOptions error:",i),["ADS"]}})})},getRewardsTypes(...n){return y(this,null,function*(){return t?yield t(...n):["ADS"]})}}}var rs,os=x(()=>{"use strict";J();rs=g.testMode});var zc,is,ss=x(()=>{"use strict";Zt();zc=()=>(e,t)=>e==="JOLI_COIN"&&t==="ADS"?-1:e==="ADS"&&t==="JOLI_COIN"?1:0,is=e=>{e.registerRewardsFetcher(t=>y(void 0,null,function*(){var i,s,a,l;let r=[],n=yield t.post("/api/games/unlock-options",{});return n.code!=="SUCCESS"?r:(Xt.emit(Qt,{options:((i=n.data)==null?void 0:i.unlockOptions)||[],userJoliCoin:((s=n.extra)==null?void 0:s.joliCoin)||{balance:0,enableAutoDeduct:!1}}),(((l=(a=n.data)==null?void 0:a.unlockOptions)==null?void 0:l.map(c=>c.type))||Array.from(r)).sort(zc()))}))}});var as,ls=x(()=>{"use strict";as=e=>t=>y(void 0,null,function*(){return e.adBreak(t),!0})});var cs,us=x(()=>{"use strict";cs=(e,t)=>e.some(r=>r.type==="JOLI_COIN"&&r.joliCoinChoices.some(n=>{var o;return n.joliCoinQuantity<=((o=t==null?void 0:t.balance)!=null?o:0)&&!!(t!=null&&t.enableAutoDeduct)}))});var ds,ps=x(()=>{"use strict";J();P();us();Zt();ds=(e,{onUnlockSuccess:t,onUnlockFailed:r})=>{let n=null,o=null,i=null,s=()=>{if(i){n=Promise.resolve(i);return}n=new Promise(a=>{o=a})};return s(),Xt.on(Qt,a=>{i=a,o&&(o(a),o=null)}),()=>y(void 0,null,function*(){try{n||s();let a=yield n;if(!cs((a==null?void 0:a.options)||[],a==null?void 0:a.userJoliCoin))return r==null||r(),!1;let l=yield e.post("/api/joli-coin/unlock",{data:{type:"GAME_REWARD",reqId:`${Ar()}-${g.mpType}-${Date.now()}`,gameInfo:{gameId:g.mpId}}});return l.code=="SUCCESS"?(t==null||t({quantity:l.data.quantity,balance:l.data.balance}),!0):(r==null||r(),!1)}catch(a){return console.error("JolicoinRewardHandler error:",a),r==null||r(),!1}})}});var De,Qt,Xt,Zt=x(()=>{"use strict";os();ss();P();ls();ps();De=ns();is(De);Qt="UNLOCK_OPTIONS_CHANGED",Xt=new oe});var er,Yc,Te,Qc,Xc,Zc,eu,ms=x(()=>{"use strict";P();se();rn();$r();ge();Ae();G();Zt();er=j(),Yc=()=>{let{data:e}=N("getNetworkStatusSync");return!!(e!=null&&e.isConnected)},Te=new ht(Q,{get:(e,t)=>q(e,w({method:"GET",responseType:"json",appendHostCookie:!0},t)).then(r=>r.response.data),post:(e,t,r)=>q(e,w({method:"POST",responseType:"json",appendHostCookie:!0},r)).then(n=>n.response.data)},Yc);De.registerRewardHandler("ADS",as(Te));De.registerRewardHandler("JOLI_COIN",ds(Te.httpClient,{onUnlockSuccess:e=>{let{quantity:t,balance:r}=e,n=r>=1e3?"999+":r;Ci(`{slot-checkmark} \u2212${t} {slot-coin} | Balance: ${n} {slot-coin}`,{customStyle:{mark:{marginRight:"8px"}}})},onUnlockFailed:()=>{console.log("onUnlockFailed")}}));Qc=D("adInit",{implement:e=>{Te.init(e)}}),Xc=D("adConfig",{implement:e=>{Te.adConfig(e)}}),Zc=D("adBreak",{implement:e=>{e.type==="reward"?De.getRewardsTypes(Te.httpClient).then(t=>{De.handleReward(t,e)}):Te.adBreak(e)}}),eu=D("adUnit",{implement:e=>{Te.adUnit(e)}});er.registerCommand("AdsSDK.init",Qc);er.registerCommand("AdsSDK.adConfig",Xc);er.registerCommand("AdsSDK.adBreak",Zc);er.registerCommand("AdsSDK.adUnit",eu);R("AdsSDK.init",{version:"1.0.0"});R("AdsSDK.adConfig",{version:"1.0.0"});R("AdsSDK.adBreak",{version:"1.0.0"});R("AdsSDK.adUnit",{version:"1.0.0"})});var hn,tu,ru,nu,fs=x(()=>{"use strict";P();G();se();J();hn=j(),tu=D("openSchemaSync",{paramsSchema:f.tuple(f.string()),implement:e=>{let t=e;e.match(/^https?:\/\//)||(t=`https://${g.mpId}.app.jolibox.com${e.startsWith("/")?"":"/"}${e}`);let r=N("openSchemaSync",{schema:t});if(r.errNo!==0)throw new Ke(r.errMsg,r.errNo)}}),ru=D("openPageSync",{paramsSchema:f.tuple(f.string()),implement:e=>{let{errNo:t,errMsg:r,data:n}=N("openPageSync",{url:e});if(t!==0||!n)throw new Ke(r,t);return{webviewId:n.webviewId}}}),nu=D("closePageSync",{paramsSchema:f.tuple(f.number()),implement:e=>{let{errNo:t,errMsg:r}=N("closePageSync",{webviewId:e});if(t!==0)throw new Ke(r,t)}});hn.registerCommand("RouterSDK.openSchema",tu);hn.registerCommand("RouterSDK.openPage",ru);hn.registerCommand("RouterSDK.closePage",nu);R("router.openSchema",{version:"1.1.10"});R("router.openPage",{version:"1.1.10"});R("router.closePage",{version:"1.1.10"})});var ou={};var uh,fh,hs=x(()=>{"use strict";$i();uh=bn(Ji());Yi();Qi();Xi();fh=bn(Zi());ts();ms();fs()});var _s=Symbol.for("JOLIBOX_IMPLEMENT_INIT");if(window[_s])throw console.info("Jolibox Implement Already Initialized"),new Error("Jolibox Implement Already Initialized");window[_s]=!0;y(void 0,null,function*(){let[{config:e}]=yield Promise.all([Promise.resolve().then(()=>(Li(),Di)),Promise.resolve().then(()=>(hs(),ou)),Promise.resolve().then(()=>(ge(),Do))]);e()});