function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(t){var r=function(t,r){if("object"!=e(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,r||"default");if("object"!=e(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==e(r)?r:r+""}function r(e,r,n){return(r=t(r))in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}var n=new class{constructor(){r(this,"debug",!1)}setDebug(e){this.debug=e}isDebug(){return this.debug}log(){if(this.debug){for(var e=arguments.length,t=new Array(e),r=0;rfunction(e){const t=/FNOS\/([\d.]+)|FNAppType\/(\w+)|FNAppVer\/([\d.]+)/g,r={};let n;for(;null!==(n=t.exec(e));)n[1]&&(r.fnOSVersion=n[1]),n[2]&&(r.fnAppType=n[2]),n[3]&&(r.fnAppVersion=n[3]);return r}(navigator.userAgent).fnAppVersion;function o(e,t,r,n,i,o,s){try{var l=e[o](s),a=l.value}catch(e){return void r(e)}l.done?t(a):Promise.resolve(a).then(n,i)}function s(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var s=e.apply(t,r);function l(e){o(s,n,i,l,a,"next",e)}function a(e){o(s,n,i,l,a,"throw",e)}l(void 0)})}}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1;t{u=!0});var p=/(iPad|iPhone|iPod|Macintosh|Mac OS X)/i.test(navigator.userAgent),c=/* @__PURE__ */function(){var e=s(function*(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),o=2;oString(e)).join(", ")}`);const s=yield e.callHandler(t,...i);if(s)try{const e=JSON.parse(s);n.log(`messageData: ${JSON.stringify(e)}`);const t=JSON.parse(e.result);return n.log(`appMessage: ${JSON.stringify(t)}`),t}catch(l){return n.error(`error: ${l}`),null}return null});return function(t,r){return e.apply(this,arguments)}}(),d=/* @__PURE__ */new Map,f=class{constructor(e){r(this,"subscribeFn",void 0),this.subscribeFn=e}subscribe(e,t,r){var n;const i="function"==typeof e?{next:e,error:t,complete:r}:null!=e?e:{};let o=!1;const s=null!==(n=this.subscribeFn({next:e=>{var t;o||(null===(t=i.next)||void 0===t||t.call(i,e))},error:e=>{var t;o||(o=!0,null===(t=i.error)||void 0===t||t.call(i,e))},complete:()=>{var e;o||(o=!0,null===(e=i.complete)||void 0===e||e.call(i))}}))&&void 0!==n?n:()=>{};return{unsubscribe:()=>{o||(o=!0,s())}}}},h=/* @__PURE__ */new Map;function v(){window._flutter_onAppObservableQueryResult=e=>{n.log("_flutter_onAppObservableQueryResult",e);const t=function(e){var t,r;const n="string"==typeof e?JSON.parse(e):e,i=null!==(t=n.reqid)&&void 0!==t?t:n.reqId;return a(a({},n),{},{reqId:null!==(r=n.reqId)&&void 0!==r?r:i,reqid:i})}(e),r=h.get(t.reqId);if(r)if(t.result&&"doing"!==t.result){if("succ"===t.result)return r.next(t),r.complete(),void h.delete(t.reqId);r.error(t),h.delete(t.reqId)}else r.next(t);else n.log("_flutter_onAppObservableQueryResult observer not found",t)}}function y(){return(y=s(function*(e,t){return new Promise((r,i)=>{null==e||e.callHandler("openFolder",JSON.stringify(t)).then(e=>{if(n.log("pickFilePromise callback registered",{reqId:e,params:t}),e){function o(e){r(e.result)}d.set(e,o)}else i(/* @__PURE__ */new Error("openFolder failed"))})})})).apply(this,arguments)}i()&&(window.fnAppMessage=e=>{n.log("app-message",e);const t=JSON.parse(e),r=d.get(t.reqId);r&&(r(t),d.delete(t.reqId))}),i()&&v();var g=/* @__PURE__ */function(e){return e.Call="call",e.Reply="reply",e.Syn="syn",e.SynAck="synAck",e.Ack="ack",e}({}),b=/* @__PURE__ */function(e){return e.Fulfilled="fulfilled",e.Rejected="rejected",e}({}),m=/* @__PURE__ */function(e){return e.ConnectionDestroyed="ConnectionDestroyed",e.ConnectionTimeout="ConnectionTimeout",e.NoIframeSrc="NoIframeSrc",e}({}),w=/* @__PURE__ */function(e){return e.DataCloneError="DataCloneError",e}({}),A=/* @__PURE__ */function(e){return e.Message="message",e}({}),S=({name:e,message:t,stack:r})=>({name:e,message:t,stack:r}),P=(e,t,r)=>{let{localName:n,local:i,remote:o,originForSending:s,originForReceiving:l}=e,a=!1,u=e=>{if(e.source!==o||e.data.penpal!==g.Call)return;if("*"!==l&&e.origin!==l)return void r(`${n} received message from origin ${e.origin} which did not match expected origin ${l}`);let{methodName:i,args:u,id:p}=e.data;r(`${n}: Received ${i}() call`);let c=e=>t=>{if(r(`${n}: Sending ${i}() reply`),a)return void r(`${n}: Unable to send ${i}() reply due to destroyed connection`);let l={penpal:g.Reply,id:p,resolution:e,returnValue:t};e===b.Rejected&&t instanceof Error&&(l.returnValue=S(t),l.returnValueIsError=!0);try{o.postMessage(l,s)}catch(e){let r=e instanceof Error?e:Error(String(e));if(r.name===w.DataCloneError){let e={penpal:g.Reply,id:p,resolution:b.Rejected,returnValue:S(r),returnValueIsError:!0};o.postMessage(e,s)}throw e}};new Promise(e=>e(t[i].apply(t,u))).then(c(b.Fulfilled),c(b.Rejected))};return i.addEventListener(A.Message,u),()=>{a=!0,i.removeEventListener(A.Message,u)}},O=0,M=()=>++O,E=e=>e?e.split("."):[],F=(e,t,r)=>{let n=E(t);return n.reduce((e,t,i)=>(void 0===e[t]&&(e[t]={}),i===n.length-1&&(e[t]=r),e[t]),e),e},$=(e,t)=>{let r={};return Object.keys(e).forEach(n=>{let i=e[n],o=((e,t)=>{let r=E(t||"");return r.push(e),(e=>e.join("."))(r)})(n,t);"object"==typeof i&&Object.assign(r,$(i,o)),"function"==typeof i&&(r[o]=i)}),r},_=(e,t,r,n,i)=>{let{localName:o,local:s,remote:l,originForSending:a,originForReceiving:u}=t,p=!1;i(`${o}: Connecting call sender`);let c=e=>(...t)=>{let r;i(`${o}: Sending ${e}() call`);try{l.closed&&(r=!0)}catch(g){r=!0}if(r&&n(),p){let t=/* @__PURE__ */Error(`Unable to send ${e}() call due to destroyed connection`);throw t.code=m.ConnectionDestroyed,t}return new Promise((r,n)=>{let p=M(),c=t=>{if(t.source!==l||t.data.penpal!==g.Reply||t.data.id!==p)return;if("*"!==u&&t.origin!==u)return void i(`${o} received message from origin ${t.origin} which did not match expected origin ${u}`);let a=t.data;i(`${o}: Received ${e}() reply`),s.removeEventListener(A.Message,c);let d=a.returnValue;a.returnValueIsError&&(d=(e=>{let t=/* @__PURE__ */Error();return Object.assign(t,e),t})(d)),(a.resolution===b.Fulfilled?r:n)(d)};s.addEventListener(A.Message,c);let d={penpal:g.Call,id:p,methodName:e,args:t};l.postMessage(d,a)})},d=r.reduce((e,t)=>(e[t]=c(t),e),{});return Object.assign(e,(e=>{let t={};for(let r in e)F(t,r,e[r]);return t})(d)),()=>{p=!0}},j=(e,t)=>{let r;return void 0!==e&&(r=window.setTimeout(()=>{let r=/* @__PURE__ */Error(`Connection timed out after ${e}ms`);r.code=m.ConnectionTimeout,t(r)},e)),()=>{clearTimeout(r)}};function k(e){return k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},k(e)}function W(e){var t=function(e,t){if("object"!=k(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=k(n))return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==k(t)?t:t+""}function q(e,t,r){return(t=W(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function N(e){for(var t=1;t{let{destroy:o,onDestroy:s}=n;return n=>{if(!(e instanceof RegExp?e.test(n.origin):"*"===e||e===n.origin))return void i(`Child: Handshake - Received SYN-ACK from origin ${n.origin} which did not match expected origin ${e}`);i("Child: Handshake - Received SYN-ACK, responding with ACK");let l="null"===n.origin?"*":n.origin,a={penpal:g.Ack,methodNames:Object.keys(t),config:r};window.parent.postMessage(a,l);let u={localName:"Child",local:window,remote:window.parent,originForSending:l,originForReceiving:n.origin},p=P(u,t,i);s(p);let c={},d=_(c,u,n.data.methodNames,o,i);return s(d),c}};function I(e,t){var r;null==(r=console)||r.warn(`[fnApp warn]: ${e}`,t)}function C(e,t){var r;null==(r=console)||r.error(`[fnApp error]: ${e}`,t)}var V="_fn_all_event",U="事件订阅数量为空";function R(e){return R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},R(e)}function D(e){var t=function(e,t){if("object"!=R(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=R(n))return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==R(t)?t:t+""}function z(e,t,r){return(t=D(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var L=window.__POWERED_BY_FNAPP__?window.__FNAPP.inject.appEventObjMap:/* @__PURE__ */new Map,J=class{constructor(e,t){z(this,"id",void 0),z(this,"appName",void 0),z(this,"eventObj",void 0),z(this,"getEventCallBackLength",e=>{var t;return(null==(t=this.eventObj[e])?void 0:t.length)||0}),this.id=e,this.appName=t,this.$clear(),L.get(this.id)||L.set(this.id,{}),this.eventObj=L.get(this.id)}$on(e,t){let r=this.eventObj[e];return r?(r.includes(t)||r.push(t),this):(this.eventObj[e]=[t],this)}$onAll(e){return this.$on(V,e)}$once(e,t){t.$__once=!0,this.$on(e,t)}$off(e,t){let r=this.eventObj[e];if(!e||!r||!r.length)return I(`${e} ${U}`),this;let n,i=r.length;for(;i--;)if(n=r[i],n===t){r.splice(i,1);break}return this}$offAll(e){return this.$off(V,e)}$emit(e,...t){return e=`${this.appName}/${e}`,this.$pureEmit(e,...t)}$pureEmit(e,...t){let r=0;return L.forEach(n=>{if(n[e])for(let i=n[e].length-1;i>=0;i--){r++;let o=n[e][i];o.$__once&&n[e].splice(i,1);try{o(...t)}catch(e){C(e)}}if(n._fn_all_event)for(let i=n[V].length-1;i>=0;i--){r++;let o=n[V][i];o.$__once&&n[V].splice(i,1);try{o(...t)}catch(e){C(e)}}}),(!e||0===r)&&I(`${e} ${U}`),this}$clear(){var e;let t=null==(e=L.get(this.id))?{}:e;return Object.keys(t).forEach(e=>delete t[e]),this}},H=function(e,t){return H=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},H(e,t)};function Q(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}H(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function B(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Y(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s}function G(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i{let{parentOrigin:t="*",timeout:r,debug:n=!1,config:i={}}=e,o=(e=>(...t)=>{e&&console.log("[Penpal]",...t)})(n),s=((e,t)=>{let r=[],n=!1;return{destroy(i){n||(n=!0,t(`${e}: Destroying connection`),r.forEach(e=>{e(i)}))},onDestroy(e){n?e():r.push(e)}}})("App",o),{destroy:l,onDestroy:a}=s;return{promise:new Promise((e,n)=>{let u=j(r,l),p=r=>{if((()=>{try{clearTimeout(void 0)}catch(g){return!1}return!0})()&&r.source===parent&&r.data&&r.data.penpal===g.SynAck){let n=r.data,l=new J(n.id,n.appName),a=new J(n.id+"/api",n.appName),c=n.id,d={},f=e=>"api/"+e,h={$emit:(e,...t)=>{l.getEventCallBackLength(e)>0?l.$pureEmit(e,...t):null==d||d.$off(e,()=>{},!0)},onQueryResult:e=>{a.$pureEmit(f(e.reqid),e)},onOsNotify:e=>{}},v=e=>function(t){let r=f(e);a.$on(r,function e(n){t.next(n),n.reqid&&"succ"===n.result&&(t.complete(),a.$off(r,e))})},y=$(h),g=T(t,y,N(N({},i),{},{postmateVersion:"0.1.3"}),s,o)(r),b={},m=g.bus;if(m){let e=(e,t,r)=>{r?(t.$__once=!0,l.$once(e,t)):l.$on(e,t),b[e]?b[e].push(t):(b[e]=[t],m.$on(e,c))};Object.assign(d,m,{$on:e,$off:(e,t,r)=>{var n;if(b[e]){let r=b[e].indexOf(t);r>-1&&(b[e].splice(r,1),l.$off(e,t))}r&&delete b[e],null!=(n=b[e])&&n.length||(m.$off(e,c),delete b[e])},$once:(t,r)=>{e(t,r,!0)}})}let w=N(N({},g),{},{bus:d,query:function(){var e=Ee(function*(e,t){let r=(null==e?void 0:e.reqid)||(yield g.genReqId());return new Promise((n,i)=>{g.query(N(N({},e),{},{reqid:r}),t).then(e=>{"succ"===(null==e?void 0:e.result)?n(e):i(e)})})});return function(t,r){return e.apply(this,arguments)}}(),createObservableQuery:function(){var e=Ee(function*(e,t={}){let r=(null==e?void 0:e.reqid)||(yield g.genReqId()),n=new Pe(v(r));return g.query(N(N({},e),{},{reqid:r}),N(N({},t),{},{observable:!0})),n});return function(t){return e.apply(this,arguments)}}()});g&&(window.removeEventListener(A.Message,p),u(),e({methods:w,config:r.data.config}))}};window.addEventListener(A.Message,p),(()=>{o("Child: Handshake - Sending SYN");let e={penpal:g.Syn},r=t instanceof RegExp?"*":t;window.parent.postMessage(e,r)})(),a(e=>{window.removeEventListener(A.Message,p),e&&n(e)})}),destroy(){l()}}},$e="trimjs-extension-host";function _e(){return"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`web-ext-${Date.now()}-${Math.random().toString(16).slice(2)}`}function je(e){if(!e||"object"!=typeof e)return!1;const t=e;return t.source===$e&&1===t.version&&"string"==typeof t.requestId&&("request"===t.kind||"response"===t.kind||"event"===t.kind)}function ke(e){const t=/* @__PURE__ */new Error(`NotSupportedInExtensionHost: ${e}`);throw t.code="NotSupportedInExtensionHost",t}function We(e){var t;const r=null!==(t=null==e?void 0:e.timeoutMs)&&void 0!==t?t:1500,n=/* @__PURE__ */new Map,i=/* @__PURE__ */new Set,o=e=>{if(je(t=e.data)&&"response"===t.kind){const t=n.get(e.data.requestId);if(!t)return;return n.delete(e.data.requestId),clearTimeout(t.timeoutId),void t.resolve(e.data)}var t;(function(e){return je(e)&&"event"===e.kind})(e.data)&&i.forEach(t=>{t(e.data)})};return window.addEventListener("message",o),{request:(e,t,i)=>s(function*(){const o=function(e,t){return{source:$e,version:1,kind:"request",requestId:_e(),payload:{method:e,params:t}}}(e,t),s=yield new Promise((t,s)=>{let l;const a=i&&"timeoutMs"in i?i.timeoutMs:r;"number"==typeof a&&a>=0&&(l=setTimeout(()=>{n.delete(o.requestId),s(/* @__PURE__ */new Error(`Extension host timeout while calling ${e}`))},a)),n.set(o.requestId,{resolve:t,reject:s,timeoutId:l}),window.postMessage(o,"*")});var l,a;if(!s.payload.ok)throw new Error(null!==(l=null===(a=s.payload.error)||void 0===a?void 0:a.message)&&void 0!==l?l:`Extension host request failed: ${e}`);return s.payload.result})(),onEvent:e=>(i.add(e),()=>{i.delete(e)}),destroy(){window.removeEventListener("message",o),n.forEach(e=>{clearTimeout(e.timeoutId),e.reject(/* @__PURE__ */new Error("Extension bridge destroyed"))}),n.clear(),i.clear()}}}function qe(){return(qe=s(function*(e){const t=We();try{var r;const i=yield t.request("handshake",{debug:null!==(r=null==e?void 0:e.debug)&&void 0!==r&&r},{timeoutMs:5e3});return n.log("Extension host probe response:",i),!0===i.available}catch(i){return n.log("Extension host probe failed:",i),!1}finally{t.destroy()}})).apply(this,arguments)}function xe(){return xe=s(function*(){const e=We(),t=/* @__PURE__ */new Map;e.onEvent(e=>{const r=t.get(e.payload.event);null==r||r.forEach(t=>{t(e.payload.data)})}),yield e.request("handshake",{},{timeoutMs:5e3});const r=yield e.request("getPlatformConfig",{}),n={bus:{$on(r,n){var i;const o=null!==(i=t.get(r))&&void 0!==i?i:/* @__PURE__ */new Set,s=0===o.size;o.add(n),t.set(r,o),s&&e.request("subscribe",{event:r})},$off(r,n){const i=t.get(r);i&&(i.delete(n),0===i.size&&(t.delete(r),e.request("unsubscribe",{event:r})))},$once(e,t){const r=function(){n.bus.$off(e,r),t(...arguments)};n.bus.$on(e,r)},$emit(){ke("bus.$emit")}},genReqId:()=>_e(),query:(t,r)=>e.request("query",{params:t,config:r}),createObservableQuery:(o=s(function*(){return ke("createObservableQuery")}),function(){return o.apply(this,arguments)}),openApp:()=>ke("openApp"),openAppSetting:()=>ke("openAppSetting"),openCustomApp:()=>ke("openCustomApp"),setTitle:()=>ke("setTitle"),pickFile:t=>e.request("pickFile",t,{timeoutMs:null}),pickUserFile:()=>ke("pickUserFile"),pickSharedFile:()=>ke("pickSharedFile"),showFileDetails:(e,t)=>ke("showFileDetails"),authorizeUserFile:e=>ke("authorizeUserFile"),authorizeSharedFile:e=>ke("authorizeSharedFile"),close:(i=s(function*(){e.destroy()}),function(){return i.apply(this,arguments)}),refreshToken:()=>e.request("refreshToken",{}),setExitPageTips:()=>ke("setExitPageTips"),openFileManagerApp:()=>ke("openFileManagerApp"),openFileManager:()=>ke("openFileManager"),openFile:()=>ke("openFile"),getPlatformConfig:()=>Promise.resolve(r),getHostSnapshot:()=>e.request("getHostSnapshot",{})};var i,o,l;return{methods:n,config:(l=r,{appName:"extension-host",os:{version:l.systemVersion,theme:l.theme,language:l.language,format:{date:{date:l.format.date,time:l.format.time}}}})}}),xe.apply(this,arguments)}var Ne=null;function Te(){return(Te=s(function*(e){const t=Fe({debug:null==e?void 0:e.debug,timeout:1500});try{const e=yield t.promise;return e}catch(r){return t.destroy(),n.log("Native OS connection probe failed:",r),null}})).apply(this,arguments)}var Ie=e=>Ne||(Ne=s(function*(){if("undefined"!=typeof window&&window.parent!==window){const t=yield function(e){return Te.apply(this,arguments)}(e);if(t)return t}return(yield function(e){return qe.apply(this,arguments)}(e))?function(){return xe.apply(this,arguments)}():Fe({debug:null==e?void 0:e.debug}).promise})()),Ce={pickFile:"pick-file",pickUserFile:"pick-user-file",pickSharedFile:"pick-shared-file",authorizeUserFile:"authorize-user-file",authorizeSharedFile:"authorize-shared-file"};var Ve=class{constructor(){r(this,"options",void 0),r(this,"flutterInAppWebView",null),r(this,"osConnector",null),r(this,"initPromise",void 0),r(this,"appApiVersion",void 0),r(this,"isWeb",!0),r(this,"isStandaloneWeb",!1);let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=e,e.debug&&(n.setDebug(!0),n.log("Trim App initialized with debug mode")),n.log("Options:",e),this.initPromise=this.init()}init(){var e=this;return s(function*(){return n.log("Starting initialization..."),new Promise(t=>{if(i())e.isWeb=!1,n.log("Initializing mobile platform..."),new Promise(e=>{var t;(p?window.flutter_inappwebview:u||(null===(t=window.flutter_inappwebview)||void 0===t?void 0:t._platformReady))?(n.log("flutter_inappwebview is ready"),e(window.flutter_inappwebview)):window.addEventListener("flutterInAppWebViewPlatformReady",()=>{n.log("flutter_inappwebview is ready"),e(window.flutter_inappwebview)})}).then((r=s(function*(r){yield e.initMobileAppApi(r),n.log("Mobile platform initialized"),t()}),function(e){return r.apply(this,arguments)}));else{if(e.isWeb=!0,e.isStandaloneWeb="undefined"!=typeof window&&window.parent===window,e.isStandaloneWeb)return n.log("Standalone web platform detected; host bridge initialization skipped"),void t();n.log("Initializing web platform..."),Ie().then(r=>{e.osConnector=r,n.log("Web platform initialized"),t()})}var r})})()}getWebMethods(){var e;const t=null===(e=this.osConnector)||void 0===e?void 0:e.methods;if(!t)throw new Error("Host bridge is not available outside iframe or app runtime");return t}loadAppMessage(){var e=this;return s(function*(){return e.callAppMethod("getAppMessage")})()}initMobileAppApi(e){var t=this;return s(function*(){t.flutterInAppWebView=e;try{const e=yield t.loadAppMessage();t.appApiVersion=null==e?void 0:e.appApi}catch(r){n.log("Failed to load mobile appApi version:",r),t.appApiVersion=void 0}})()}assertMobileAppApi(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"v1.0";if(!this.isAtLeastVersion(this.appApiVersion,t))throw new Error(`${e} requires appApi >= ${t}`)}isAtLeastVersion(e,t){if(!e)return!1;const r=this.parseVersion(e),n=this.parseVersion(t),i=Math.max(r.length,n.length);for(let l=0;lt)return!0;if(eNumber.parseInt(e,10)||0)}callAppMethod(e){var t=arguments,r=this;return s(function*(){if(!r.flutterInAppWebView)return null;for(var n=t.length,i=new Array(n>1?n-1:0),o=1;o"string"==typeof e)&&(u=e)}catch(p){u=void 0}return{status:o.get("status")||void 0,error:o.get("error")||void 0,method:l,appName:o.get("appName")||void 0,state:o.get("state")||void 0,path:u}}(e)}setTitle(e){var t=this;return s(function*(){if(yield t.initPromise,n.log("Setting title:",e),document.title=e,t.isWeb)return t.getWebMethods().setTitle(e)})()}setExitPageTips(e){var t=this;return s(function*(){return yield t.initPromise,t.isWeb?t.getWebMethods().setExitPageTips(e):t.callAppMethod("setExitPageTips",e?JSON.stringify(e):"")})()}openFile(e){var t=this;return s(function*(){return yield t.initPromise,n.log("Opening file:",e),t.isWeb?t.getWebMethods().openFile(e):t.callAppMethod("openFile",e)})()}openFileManager(e){var t=this;return s(function*(){if(yield t.initPromise,n.log("Opening file manager:",e),t.isWeb){const r=t.getWebMethods();return(r.openFileManager||r.openFileManagerApp)(e)}return t.assertMobileAppApi("openFileManager"),t.callAppMethod("openFileManager",e)})()}showFileDetails(e,t){var r=this;return s(function*(){return yield r.initPromise,r.isWeb?r.getWebMethods().showFileDetails(e,t):(r.assertMobileAppApi("showFileDetails"),r.callAppMethod("showFileDetails",JSON.stringify({paths:e,options:t})))})()}authorizeUserFile(e){var t=this;return s(function*(){var r;return yield t.initPromise,t.isWeb?t.getWebMethods().authorizeUserFile(e):(t.assertMobileAppApi("authorizeUserFile"),null!==(r=yield t.callAppMethod("authorizeUserFile",JSON.stringify({path:e})))&&void 0!==r?r:void 0)})()}authorizeSharedFile(e){var t=this;return s(function*(){var r;return yield t.initPromise,t.isWeb?t.getWebMethods().authorizeSharedFile(e):(t.assertMobileAppApi("authorizeSharedFile"),null!==(r=yield t.callAppMethod("authorizeSharedFile",JSON.stringify({path:e})))&&void 0!==r?r:void 0)})()}openAppSetting(){var e=this;return s(function*(){return yield e.initPromise,n.log("Opening app setting"),e.isWeb?e.getWebMethods().openAppSetting():(e.assertMobileAppApi("openAppSetting"),e.callAppMethod("openAppSetting"))})()}openApp(e){var t=this;return s(function*(){return yield t.initPromise,n.log("Opening app:",e),t.isWeb?t.getWebMethods().openApp(e):!!i()&&t.callAppMethod("openAppPage",e)})()}openCustomApp(e,t){var r=this;return s(function*(){if(yield r.initPromise,n.log("Opening custom app:",e,t),r.isWeb)return r.getWebMethods().openCustomApp(e,t);throw new Error("openCustomApp is not supported on mobile platform")})()}openURL(e,t,r){var i=this;return s(function*(){if(yield i.initPromise,n.log("Opening URL:",e,t,r),!i.isWeb)return i.callAppMethod("openSystemBrowser",e);if("_self"===t)return void window.location.assign(e);if(!r)return void window.open(e,t,r);const o=window.open("",t,r);o&&(o.location.href=e)})()}close(){var e=this;return s(function*(){return yield e.initPromise,e.isWeb?e.getWebMethods().close():e.callAppMethod("exitPage")})()}query(e,t){var r=this;return s(function*(){if(yield r.initPromise,r.isWeb){if(null==t?void 0:t.observable)return r.getWebMethods().createObservableQuery(e,t);const n=yield r.getWebMethods().query(e,t);if(!n)throw new Error("Failed to query");return n}if(r.assertMobileAppApi("query"),null==t?void 0:t.observable){if(!r.flutterInAppWebView)throw new Error("Failed to start observable query");return function(e,t,r){return v(),new f(n=>{let i,o=!1;return c(e,"wsQuery",null==t?void 0:t.req,JSON.stringify(t),void 0===r?void 0:JSON.stringify(r)).then(e=>{(null==e?void 0:e.reqId)?(i=e.reqId,o||h.set(i,n)):n.error(/* @__PURE__ */new Error("Failed to start observable query"))},e=>{n.error(e)}),()=>{o=!0,i&&h.delete(i)}})}(r.flutterInAppWebView,e,t)}const n=yield r.callAppMethod("wsQuery",null==e?void 0:e.req,JSON.stringify(e),void 0===t?void 0:JSON.stringify(t));if(!n)throw new Error("Failed to query");if("succ"!==n.result)throw n;return n})()}refreshToken(){var e=this;return s(function*(){if(yield e.initPromise,!e.isWeb)throw new Error("refreshToken is not supported on mobile platform");return e.getWebMethods().refreshToken()})()}$on(e,t){var r=this;return s(function*(){if(yield r.initPromise,!r.isWeb)throw new Error("$on is not supported on mobile platform");const n=r.getWebMethods().bus;if(!n)throw new Error("bus is not available");n.$on(e,t)})()}$off(e,t){var r=this;return s(function*(){if(yield r.initPromise,!r.isWeb)throw new Error("$off is not supported on mobile platform");const n=r.getWebMethods().bus;if(!n)throw new Error("bus is not available");n.$off(e,t)})()}$once(e,t){var r=this;return s(function*(){if(yield r.initPromise,!r.isWeb)throw new Error("$once is not supported on mobile platform");const n=r.getWebMethods().bus;if(!n)throw new Error("bus is not available");n.$once(e,t)})()}pickFile(e){var t=this;return s(function*(){var r,n;return yield t.initPromise,t.isWeb?null===(r=t.osConnector)||void 0===r?void 0:r.methods.pickFile(e):t.isAtLeastVersion(t.appApiVersion,"v1.0")?null!==(n=yield t.callAppMethod("pickFile",JSON.stringify(e)))&&void 0!==n?n:void 0:t.flutterInAppWebView?function(e,t){return y.apply(this,arguments)}(t.flutterInAppWebView,e):void 0})()}pickUserFile(){var e=arguments,t=this;return s(function*(){var r;let n=e.length>0&&void 0!==e[0]?e[0]:{};return yield t.initPromise,t.isWeb?t.getWebMethods().pickUserFile(n):(t.assertMobileAppApi("pickUserFile"),null!==(r=yield t.callAppMethod("pickUserFile",JSON.stringify(n)))&&void 0!==r?r:void 0)})()}pickSharedFile(){var e=arguments,t=this;return s(function*(){var r;let n=e.length>0&&void 0!==e[0]?e[0]:{};return yield t.initPromise,t.isWeb?t.getWebMethods().pickSharedFile(n):(t.assertMobileAppApi("pickSharedFile"),null!==(r=yield t.callAppMethod("pickSharedFile",JSON.stringify(n)))&&void 0!==r?r:void 0)})()}};export{Ve as TrimApp,Ve as default};