@dimina-kit/devtools 0.4.0-dev.20260731100034 → 0.4.0-dev.20260803105710

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.
@@ -1,4 +1,26 @@
1
1
  "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (let key of __getOwnPropNames(from))
11
+ if (!__hasOwnProp.call(to, key) && key !== except)
12
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ }
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
2
24
 
3
25
  // src/preload/shared/expose.ts
4
26
  var import_electron = require("electron");
@@ -485,6 +507,31 @@ function installCustomApisBridge() {
485
507
  return exposeOnMainWorld("__diminaCustomApis", bridge);
486
508
  }
487
509
 
510
+ // src/preload/runtime/node-bindings.ts
511
+ var import_node_fs = __toESM(require("node:fs"), 1);
512
+ var import_node_os = __toESM(require("node:os"), 1);
513
+ var import_node_path = __toESM(require("node:path"), 1);
514
+ var import_node_crypto = __toESM(require("node:crypto"), 1);
515
+ var import_node_buffer = __toESM(require("node:buffer"), 1);
516
+
517
+ // ../dimina-electron-runtime/dist/shared/node-bindings.js
518
+ var NODE_BINDINGS_GLOBAL = "__diminaNodeBindings";
519
+
520
+ // src/preload/runtime/node-bindings.ts
521
+ function installNodeBindings() {
522
+ const existing = Object.getOwnPropertyDescriptor(globalThis, NODE_BINDINGS_GLOBAL);
523
+ if (existing && !existing.configurable) {
524
+ return;
525
+ }
526
+ const bindings = Object.freeze({ fs: import_node_fs.default, os: import_node_os.default, path: import_node_path.default, crypto: import_node_crypto.default, buffer: import_node_buffer.default });
527
+ Object.defineProperty(globalThis, NODE_BINDINGS_GLOBAL, {
528
+ value: bindings,
529
+ writable: false,
530
+ configurable: false,
531
+ enumerable: true
532
+ });
533
+ }
534
+
488
535
  // src/preload/runtime/temp-files.ts
489
536
  var import_electron3 = require("electron");
490
537
 
@@ -497,18 +544,18 @@ function setTempFileSink(sink) {
497
544
  // src/preload/runtime/temp-files.ts
498
545
  function installTempFileBridge() {
499
546
  setTempFileSink({
500
- write(path, blob) {
547
+ write(path2, blob) {
501
548
  blob.arrayBuffer().then((bytes) => {
502
549
  import_electron3.ipcRenderer.send("simulator:temp-file:write", {
503
- path,
550
+ path: path2,
504
551
  mime: blob.type,
505
552
  bytes
506
553
  });
507
554
  }).catch(() => {
508
555
  });
509
556
  },
510
- revoke(path) {
511
- import_electron3.ipcRenderer.send("simulator:temp-file:revoke", { path });
557
+ revoke(path2) {
558
+ import_electron3.ipcRenderer.send("simulator:temp-file:revoke", { path: path2 });
512
559
  },
513
560
  revokeAll() {
514
561
  import_electron3.ipcRenderer.send("simulator:temp-file:revoke-all");
@@ -955,11 +1002,25 @@ function setupApiCompatHook() {
955
1002
  var import_electron5 = require("electron");
956
1003
 
957
1004
  // ../dimina-electron-runtime/dist/shared/dmb-resource-url.js
958
- var DMB_SDK_PREFIX = "/__sdk__/";
1005
+ var DMB_PAGEFRAME_DOC_NAME = "__frame__.html";
959
1006
  function buildRenderHostDocumentUrl(opts) {
960
- const url = new URL(`dmb-resource://${opts.bridgeId}${DMB_SDK_PREFIX}render-host/pageFrame.html`);
1007
+ const PATH_SEPARATOR_RE = /[/\\]/;
1008
+ for (const [name, value] of [["appId", opts.appId], ["root", opts.root]]) {
1009
+ if (PATH_SEPARATOR_RE.test(value) || value === "." || value === "..") {
1010
+ throw new Error(`[dmb-resource-url] ${name} must be a single path segment, got ${JSON.stringify(value)}`);
1011
+ }
1012
+ }
1013
+ const pageDirSegments = opts.pagePath.split(PATH_SEPARATOR_RE).slice(0, -1).filter(Boolean);
1014
+ for (const segment of pageDirSegments) {
1015
+ if (segment === "." || segment === "..") {
1016
+ throw new Error(`[dmb-resource-url] pagePath must not contain '.'/'..' segments, got ${JSON.stringify(opts.pagePath)}`);
1017
+ }
1018
+ }
1019
+ const pathSegments = [opts.appId, opts.root, ...pageDirSegments, DMB_PAGEFRAME_DOC_NAME].map(encodeURIComponent);
1020
+ const url = new URL(`dmb-resource://${opts.bridgeId}/${pathSegments.join("/")}`);
961
1021
  url.searchParams.set("bridgeId", opts.bridgeId);
962
1022
  url.searchParams.set("appId", opts.appId);
1023
+ url.searchParams.set("root", opts.root);
963
1024
  url.searchParams.set("pagePath", opts.pagePath);
964
1025
  if (opts.isTab)
965
1026
  url.searchParams.set("isTab", "1");
@@ -1044,6 +1105,7 @@ function installClipboardBridge() {
1044
1105
  }
1045
1106
 
1046
1107
  // src/preload/windows/simulator.ts
1108
+ installNodeBindings();
1047
1109
  setupApiCompatHook();
1048
1110
  installSimulatorBridge();
1049
1111
  installCustomApisBridge();
@@ -12,17 +12,17 @@
12
12
  native-host render-host must load it too. build-native-host.mjs vendors it to
13
13
  ../native-host/container/ and rewrites this href (mirrors common.js/render.js).
14
14
  -->
15
- <link rel="stylesheet" href="../native-host/container/pageFrame.css" />
15
+ <link rel="stylesheet" href="/__sdk__/native-host/container/pageFrame.css" />
16
16
  <script>
17
17
  if (typeof globalThis.process === 'undefined') {
18
18
  globalThis.process = { env: { NODE_ENV: 'production' } };
19
19
  }
20
20
  </script>
21
21
  <script type="module">
22
- import { modDefine, modRequire } from '../native-host/common/common.js'
22
+ import { modDefine, modRequire } from '/__sdk__/native-host/common/common.js'
23
23
  window.modDefine = modDefine
24
24
  window.modRequire = modRequire
25
- await import('../native-host/render/render.js')
25
+ await import('/__sdk__/native-host/render/render.js')
26
26
  </script>
27
27
  </head>
28
28
  <body></body>
@@ -0,0 +1,2 @@
1
+ export * from '@dimina-kit/electron-runtime/shared/node-bindings';
2
+ //# sourceMappingURL=node-bindings.d.ts.map
@@ -0,0 +1,2 @@
1
+ export * from '@dimina-kit/electron-runtime/shared/node-bindings';
2
+ //# sourceMappingURL=node-bindings.js.map
@@ -0,0 +1,2 @@
1
+ import{a as e,n as t,o as n,s as r,t as i}from"./jsx-runtime-DkKmJyBb.js";import{t as a}from"./bridge-channels-zhsumfky.js";var o=new Set([`audioListen`]);function s(e){return o.has(e)}var c=r();function l(e,t,n,r){let i=e.apiRegistry[t];if(!i)return r({ok:!1,errMsg:`${t}:fail no handler`}),Promise.resolve();let a=s(t)||(n&&typeof n==`object`&&!Array.isArray(n)?n.keep===!0:!1);return new Promise(o=>{let s=!1,c=e=>{if(s){a&&e.ok&&r({...e,keep:!0});return}s=!0,r(a&&e.ok?{...e,keep:!0}:e),o()},l=Symbol(`sim-cb-success`),u=Symbol(`sim-cb-fail`),d=Symbol(`sim-cb-complete`),f=!1,p=Object.create(e);p.createCallbackFunction=e=>{if(e!=null)return(e===l||e===u)&&(f=!0),(...n)=>{let r=n[0];e===l?c({ok:!0,result:r}):e===u?c({ok:!1,errMsg:r&&typeof r==`object`&&`errMsg`in r?String(r.errMsg):`${t}:fail`,result:r}):e===d&&!a&&c({ok:!0,result:r})}};let m=n&&typeof n==`object`&&!Array.isArray(n)?{...n}:{};m.success=l,m.fail=u,m.complete=d;try{let e=i.call(p,m);if(e&&typeof e.then==`function`){Promise.resolve(e).then(e=>c({ok:!0,result:e}),e=>{c({ok:!1,errMsg:`${t}:fail ${e instanceof Error?e.message:String(e)}`})});return}if(s)return;if(a){o();return}if(f){o();return}c({ok:!0,result:e})}catch(e){c({ok:!1,errMsg:`${t}:fail ${e instanceof Error?e.message:String(e)}`})}})}function u(e){return e.onSessionEvent(a.API_CALL,t=>{e.apiRegistry[t.name]&&e.notifyApiResponse({requestId:t.requestId,ok:!1,ack:!0}),l(e,t.name,t.params,n=>{e.notifyApiResponse({requestId:t.requestId,ok:n.ok,result:n.result,errMsg:n.errMsg,keep:n.keep})})})}var d={ios:44,android:64};function f(e){return(d[e]-32)/2}var p=i();function m({platform:e,statusBarHeight:t,onMore:n}){return(0,p.jsxs)(`div`,{className:`menu-capsule`,style:{width:87,height:32,top:t+f(e),right:10},children:[(0,p.jsxs)(`button`,{type:`button`,className:`menu-capsule__more`,"aria-label":`More`,onClick:n,children:[(0,p.jsx)(`span`,{className:`menu-capsule__dot menu-capsule__dot--side`}),(0,p.jsx)(`span`,{className:`menu-capsule__dot menu-capsule__dot--mid`}),(0,p.jsx)(`span`,{className:`menu-capsule__dot menu-capsule__dot--side`})]}),(0,p.jsx)(`div`,{className:`menu-capsule__divider`}),(0,p.jsx)(`div`,{className:`menu-capsule__close`,children:(0,p.jsxs)(`svg`,{viewBox:`0 0 22 22`,width:`22`,height:`22`,"aria-hidden":`true`,children:[(0,p.jsx)(`circle`,{cx:`11`,cy:`11`,r:`7.8`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.4`}),(0,p.jsx)(`circle`,{cx:`11`,cy:`11`,r:`3.1`,fill:`currentColor`})]})})]})}var h={linear:`linear`,easeIn:`ease-in`,easeOut:`ease-out`,easeInOut:`ease-in-out`},g={ios:`M17.51 3.87L15.73 2.1 5.84 12l9.9 9.9 1.77-1.77L9.38 12l8.13-8.13z`,android:`M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z`};function _({state:e,stackDepth:t,platform:n,statusBarHeight:r,navBarHeight:i,onBack:a,onHome:o,onMore:s}){let l=(0,c.useMemo)(()=>{if(!e.colorAnimation||e.colorAnimation.durationMs<=0)return;let t=h[e.colorAnimation.timingFunc]??`linear`;return`background-color ${e.colorAnimation.durationMs}ms ${t}, color ${e.colorAnimation.durationMs}ms ${t}`},[e.colorAnimation]),u=e.style===`custom`,d=t>1,f=!d&&e.homeButtonVisible,_=n===`ios`?`center`:`left`,v=n===`android`?30:24,y={backgroundColor:e.backgroundColor,color:e.textStyle===`white`?`#ffffff`:`#000000`,height:r+i,paddingTop:r,transition:l};return(0,p.jsxs)(`header`,{className:`nav-bar nav-bar--${n} nav-bar--${e.textStyle}${u?` nav-bar--custom`:``}`,style:y,"aria-hidden":u,children:[!u&&(0,p.jsxs)(`div`,{className:`nav-bar__row`,style:{height:i,justifyContent:_===`center`?`center`:`flex-start`},children:[(d||f)&&(0,p.jsxs)(`div`,{className:`nav-bar__leading`,children:[d&&(0,p.jsx)(`button`,{type:`button`,className:`nav-bar__back`,"aria-label":`Back`,onClick:a,children:(0,p.jsx)(`svg`,{viewBox:`0 0 24 24`,width:v,height:v,"aria-hidden":`true`,children:(0,p.jsx)(`path`,{d:g[n],fill:`currentColor`})})}),f&&(0,p.jsx)(`button`,{type:`button`,className:`nav-bar__home`,"aria-label":`Home`,onClick:o,children:(0,p.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`22`,height:`22`,"aria-hidden":`true`,children:(0,p.jsx)(`path`,{d:`M3 12l9-9 9 9M5 10v10h14V10`,stroke:`currentColor`,strokeWidth:`2`,fill:`none`,strokeLinecap:`round`,strokeLinejoin:`round`})})})]}),(0,p.jsxs)(`div`,{className:`nav-bar__title nav-bar__title--${_}`,style:{color:e.textStyle===`white`?`#ffffff`:`#000000`},children:[e.loading&&(0,p.jsx)(`span`,{className:`nav-bar__spinner`,"aria-hidden":`true`}),(0,p.jsx)(`span`,{className:`nav-bar__title-text`,children:e.title})]})]}),(0,p.jsx)(m,{platform:n,statusBarHeight:r,onMore:s})]})}function v(e){return{title:e?.title??``,backgroundColor:e?.backgroundColor??`#000000`,textStyle:e?.textStyle??`white`,style:e?.style??`default`,loading:e?.loading??!1,homeButtonVisible:e?.homeButtonVisible??!1,colorAnimation:e?.colorAnimation}}function y(e){switch(e){case`notch`:return{width:164,height:30,top:0,bottomOnly:!0};case`dynamic-island`:return{width:124,height:36,top:11,bottomOnly:!1};default:return null}}function b({height:e,notchType:t,textStyle:n}){let r=y(t);return(0,p.jsxs)(`div`,{className:`device-statusbar`,style:{height:e,color:n===`black`?`#000000`:`#ffffff`},"aria-hidden":`true`,children:[(0,p.jsx)(`span`,{className:`device-statusbar__time`,children:`9:41`}),r&&(0,p.jsx)(`div`,{className:`device-statusbar__notch`,style:{width:r.width,height:r.height,top:r.top,borderRadius:r.bottomOnly?`0 0 ${Math.round(r.height*.6)}px ${Math.round(r.height*.6)}px`:`${r.height/2}px`}}),(0,p.jsxs)(`div`,{className:`device-statusbar__icons`,children:[(0,p.jsx)(`span`,{className:`device-statusbar__signal`}),(0,p.jsx)(`span`,{className:`device-statusbar__wifi`}),(0,p.jsx)(`span`,{className:`device-statusbar__battery`})]})]})}function ee({state:e,currentPath:t,resourceBaseUrl:n,appId:r,onSwitch:i,bottomInset:a=0}){if(!e.config||!e.visible)return null;let{color:o,selectedColor:s,backgroundColor:c,borderStyle:l,list:u}=e.config,d=o||`#999999`,f=s||`#1890ff`;return(0,p.jsx)(`div`,{className:`dmb-tab-bar`,style:{backgroundColor:c||`#ffffff`,borderTopColor:l===`white`?`#ffffff`:`#e0e0e0`,paddingBottom:a},role:`tablist`,"aria-label":`TabBar`,children:u.map((a,o)=>{let s=x(a.pagePath),c=s===t,l=S(c?a.selectedIconPath??a.iconPath:a.iconPath,n,r),u=e.badges[o]??``,m=e.redDots[o]??!1;return(0,p.jsxs)(`button`,{type:`button`,className:`dmb-tab-bar__item${c?` is-selected`:``}`,role:`tab`,"aria-selected":c,onClick:()=>i(s),children:[l&&(0,p.jsx)(`span`,{className:`dmb-tab-bar__icon-slot`,children:(0,p.jsx)(`img`,{className:`dmb-tab-bar__icon`,src:l,alt:``,onError:e=>{e.currentTarget.style.display=`none`}})}),(0,p.jsx)(`span`,{className:`dmb-tab-bar__text`,style:{color:c?f:d},children:a.text||``}),u&&(0,p.jsx)(`span`,{className:`dmb-tab-bar__badge`,children:u}),!u&&m&&(0,p.jsx)(`span`,{className:`dmb-tab-bar__red-dot`})]},`${s}-${o}`)})})}function x(e){return e?e.replace(/^\/+/,``):``}function S(e,t,n){if(!e)return null;let r=e.trim();if(!r)return null;if(/^(?:data:|blob:|https?:|\/\/)/i.test(r))return r;if(!t)return null;let i=r.replace(/^\/+/,``).replace(/^\.\//,``);return i.startsWith(`${n}/`)?C(t,i):C(t,`${n}/main/${i}`)}function C(e,t){return`${e.endsWith(`/`)?e:`${e}/`}${t.replace(/^\/+/,``)}`}function w(){let[{toast:e,dialog:n},r]=(0,c.useState)(()=>t.getState());return(0,c.useEffect)(()=>t.subscribe(r),[]),(0,p.jsxs)(p.Fragment,{children:[e&&(0,p.jsx)(T,{toast:e}),n?.kind===`modal`&&(0,p.jsx)(D,{dialog:n}),n?.kind===`actionSheet`&&(0,p.jsx)(O,{dialog:n})]})}function T({toast:e}){(0,c.useEffect)(()=>{if(!Number.isFinite(e.duration))return;let n=window.setTimeout(()=>t.dismissToast(e),e.duration);return()=>window.clearTimeout(n)},[e]);let n=e.icon!==`none`||!!e.image;return(0,p.jsxs)(`div`,{className:`dmui-overlay`,"aria-live":`polite`,children:[e.mask&&(0,p.jsx)(`div`,{className:`dmui-mask dmui-mask--transparent`}),(0,p.jsxs)(`div`,{className:`dmui-toast${n?``:` dmui-toast--text`}`,role:`alert`,children:[e.image?(0,p.jsx)(`img`,{className:`dmui-toast__image`,src:e.image,alt:``}):(0,p.jsx)(E,{icon:e.icon}),e.title&&(0,p.jsx)(`div`,{className:`dmui-toast__title`,children:e.title})]})]})}function E({icon:e}){return e===`success`?(0,p.jsx)(`svg`,{className:`dmui-toast__icon`,viewBox:`0 0 24 24`,"aria-hidden":`true`,children:(0,p.jsx)(`path`,{d:`M5 13l4 4L19 7`})}):e===`error`?(0,p.jsx)(`svg`,{className:`dmui-toast__icon`,viewBox:`0 0 24 24`,"aria-hidden":`true`,children:(0,p.jsx)(`path`,{d:`M6 6l12 12M18 6L6 18`})}):e===`loading`?(0,p.jsx)(`span`,{className:`dmui-toast__spinner`,"aria-hidden":`true`}):null}function D({dialog:e}){let[t,n]=(0,c.useState)(``),r=(0,c.useRef)(null);return(0,c.useEffect)(()=>{e.editable&&r.current?.focus()},[e.editable]),(0,p.jsxs)(`div`,{className:`dmui-overlay`,children:[(0,p.jsx)(`div`,{className:`dmui-mask`}),(0,p.jsxs)(`div`,{className:`dmui-modal`,role:`dialog`,"aria-modal":`true`,children:[e.title&&(0,p.jsx)(`div`,{className:`dmui-modal__title`,children:e.title}),e.editable?(0,p.jsx)(`input`,{ref:r,className:`dmui-modal__input`,value:t,placeholder:e.placeholderText,onChange:e=>n(e.target.value)}):e.content&&(0,p.jsx)(`div`,{className:`dmui-modal__content`,children:e.content}),(0,p.jsxs)(`div`,{className:`dmui-modal__actions`,children:[e.showCancel&&(0,p.jsx)(`button`,{type:`button`,className:`dmui-modal__button`,style:{color:e.cancelColor},onClick:()=>e.onResult(!1),children:e.cancelText}),(0,p.jsx)(`button`,{type:`button`,className:`dmui-modal__button`,style:{color:e.confirmColor},onClick:()=>e.onResult(!0,t),children:e.confirmText})]})]})]})}function O({dialog:e}){return(0,p.jsxs)(`div`,{className:`dmui-overlay`,children:[(0,p.jsx)(`div`,{className:`dmui-mask`,onClick:()=>e.onSelect(-1)}),(0,p.jsxs)(`div`,{className:`dmui-action-sheet`,role:`menu`,children:[(0,p.jsx)(`div`,{className:`dmui-action-sheet__items`,children:e.itemList.map((t,n)=>(0,p.jsx)(`button`,{type:`button`,className:`dmui-action-sheet__item`,style:{color:e.itemColor},onClick:()=>e.onSelect(n),children:t},n))}),(0,p.jsx)(`button`,{type:`button`,className:`dmui-action-sheet__cancel`,onClick:()=>e.onSelect(-1),children:`取消`})]})]})}function k({active:t,appId:n}){let r=(0,c.useRef)(null);return(0,c.useEffect)(()=>{let i=r.current;if(!(!t||!i))return e(i,n)},[t,n]),(0,p.jsx)(`div`,{ref:r,className:`device-shell__extension-layer`,"data-dimina-simulator-overlay-root":!0})}function A(e,t,r){n({name:`capsule.more`,appId:e,appName:t||e,pagePath:r})}function j(e){if(!e)return{config:null,visible:!1,badges:[],redDots:[]};let t=e.list.length;return{config:M(e),visible:!0,badges:Array.from({length:t},()=>``),redDots:Array.from({length:t},()=>!1)}}function M(e){return{...e,list:e.list.map(e=>({...e}))}}function te(e,t){switch(t.kind){case`reset`:return{state:j(t.config),ok:!0,errMsg:`reset:ok`};case`visibility`:return{state:{...e,visible:t.visible},ok:!0,errMsg:t.visible?`showTabBar:ok`:`hideTabBar:ok`};case`apply`:return N(e,t.name,t.params)}}function N(e,t,n){if(!e.config)return{state:e,ok:!1,errMsg:`${t}:fail tabBar not configured`};switch(t){case`setTabBarStyle`:return ne(e,n);case`setTabBarItem`:return P(e,n);case`showTabBar`:return{state:{...e,visible:!0},ok:!0,errMsg:`showTabBar:ok`};case`hideTabBar`:return{state:{...e,visible:!1},ok:!0,errMsg:`hideTabBar:ok`};case`setTabBarBadge`:return F(e,n);case`removeTabBarBadge`:return I(e,n);case`showTabBarRedDot`:return L(e,n,!0);case`hideTabBarRedDot`:return L(e,n,!1)}}function ne(e,t){if(!e.config)return{state:e,ok:!1,errMsg:`setTabBarStyle:fail tabBar not configured`};let n={...e.config},r=(e,t)=>{let r=z(t);r&&(n[e]=r)};return r(`color`,t.color),r(`selectedColor`,t.selectedColor),r(`backgroundColor`,t.backgroundColor),(t.borderStyle===`black`||t.borderStyle===`white`)&&(n.borderStyle=t.borderStyle),{state:{...e,config:n},ok:!0,errMsg:`setTabBarStyle:ok`}}function P(e,t){let n=R(e,t);if(n.err)return{state:e,ok:!1,errMsg:`setTabBarItem:fail ${n.err}`};if(!e.config)return{state:e,ok:!1,errMsg:`setTabBarItem:fail tabBar not configured`};let r=e.config.list[n.index],i={...r,text:typeof t.text==`string`?t.text:r.text,iconPath:typeof t.iconPath==`string`?t.iconPath:r.iconPath,selectedIconPath:typeof t.selectedIconPath==`string`?t.selectedIconPath:r.selectedIconPath},a=[...e.config.list];return a[n.index]=i,{state:{...e,config:{...e.config,list:a}},ok:!0,errMsg:`setTabBarItem:ok`}}function F(e,t){let n=R(e,t);if(n.err)return{state:e,ok:!1,errMsg:`setTabBarBadge:fail ${n.err}`};let r=[...e.badges];r[n.index]=String(t.text??``);let i=[...e.redDots];return i[n.index]=!1,{state:{...e,badges:r,redDots:i},ok:!0,errMsg:`setTabBarBadge:ok`}}function I(e,t){let n=R(e,t);if(n.err)return{state:e,ok:!1,errMsg:`removeTabBarBadge:fail ${n.err}`};let r=[...e.badges];return r[n.index]=``,{state:{...e,badges:r},ok:!0,errMsg:`removeTabBarBadge:ok`}}function L(e,t,n){let r=R(e,t);if(r.err)return{state:e,ok:!1,errMsg:`${n?`showTabBarRedDot`:`hideTabBarRedDot`}:fail ${r.err}`};let i=[...e.redDots];i[r.index]=n;let a=[...e.badges];return n&&(a[r.index]=``),{state:{...e,redDots:i,badges:a},ok:!0,errMsg:`${n?`showTabBarRedDot`:`hideTabBarRedDot`}:ok`}}function R(e,t){let n=e.config?.list??[],r=t.index,i=Number(r);return n.length?r==null||!Number.isInteger(i)||i<0||i>=n.length?{index:-1,err:`invalid index ${r}`}:{index:i,err:null}:{index:-1,err:`tabBar not configured`}}function z(e){if(typeof e!=`string`)return null;let t=e.trim();return!t||t.length>64?null:/[<>"';{}()\\]/.test(t)?/^(?:rgb|rgba|hsl|hsla)\(\s*[\d.,%\s/-]+\)$/i.test(t)?t:null:t}function B(e){return e?e.replace(/^\/+/,``):``}function V(e){if(!e)return null;let t=e.indexOf(`=`),n=t>=0?e.slice(0,t):e,r=t>=0?e.slice(t+1):``;return n?[decodeURIComponent(n),decodeURIComponent(r)]:null}function H(e){let t={};for(let n of e.split(`&`)){let e=V(n);e&&(t[e[0]]=e[1])}return t}function U(e){let[t,n]=(typeof e==`string`?e:``).split(`?`);return{pagePath:B(t),query:n?H(n):{}}}function W(e){let t={};return e.isTab&&(t[e.pagePath]=[e]),{stack:[e],tabStacks:t,currentTabPath:e.isTab?e.pagePath:null}}function G(e){return e.currentTabPath?{...e.tabStacks,[e.currentTabPath]:[...e.stack]}:e.tabStacks}function K(e,t){let n=e.stack[e.stack.length-1],r=[...e.stack,t];return{next:{...e,stack:r,tabStacks:e.currentTabPath?{...e.tabStacks,[e.currentTabPath]:r}:e.tabStacks},effects:n?[{kind:`lifecycle`,bridgeId:n.bridgeId,event:`pageHide`}]:[]}}function q(e,t){if(e.stack.length<=1)return{error:`no page to back`};let n=Math.min(Math.max(1,Number.isFinite(t)?t:1),e.stack.length-1),r=e.stack.slice(e.stack.length-n),i=e.stack.slice(0,e.stack.length-n),a=i[i.length-1],o={...e,stack:i,tabStacks:e.currentTabPath?{...e.tabStacks,[e.currentTabPath]:i}:e.tabStacks,currentTabPath:a.isTab?a.pagePath:e.currentTabPath},s=[];for(let e of r)s.push({kind:`lifecycle`,bridgeId:e.bridgeId,event:`pageUnload`}),s.push({kind:`closePage`,bridgeId:e.bridgeId});return s.push({kind:`lifecycle`,bridgeId:a.bridgeId,event:`pageShow`}),{next:o,effects:s}}function J(e,t){let n=e.stack[e.stack.length-1],r=[...e.stack.slice(0,e.stack.length-1),t],i={...e,stack:r,tabStacks:e.currentTabPath?{...e.tabStacks,[e.currentTabPath]:r}:e.tabStacks},a=[];return n&&(a.push({kind:`lifecycle`,bridgeId:n.bridgeId,event:`pageUnload`}),a.push({kind:`closePage`,bridgeId:n.bridgeId})),{next:i,effects:a}}function Y(e,t){let n=new Set;for(let t of e.stack)n.add(t.bridgeId);for(let t of Object.values(e.tabStacks))for(let e of t)n.add(e.bridgeId);n.delete(t.bridgeId);let r=t.isTab?{[t.pagePath]:[t]}:{},i={stack:[t],tabStacks:r,currentTabPath:t.isTab?t.pagePath:null},a=[];for(let e of n)a.push({kind:`lifecycle`,bridgeId:e,event:`pageUnload`}),a.push({kind:`closePage`,bridgeId:e});return{next:i,effects:a}}function re(e,t,n){let r=e.stack[e.stack.length-1],i=G(e),a,o=i[t];if(o&&o.length>0)a=o;else if(n)a=[n];else throw Error(`[page-stack] switchTab to ${t} requires either a cached substack or a freshly-opened entry`);let s={...e,stack:a,tabStacks:{...i,[t]:a},currentTabPath:t},c=a[a.length-1],l=[];return r&&r.bridgeId!==c.bridgeId&&l.push({kind:`lifecycle`,bridgeId:r.bridgeId,event:`pageHide`}),n||l.push({kind:`lifecycle`,bridgeId:c.bridgeId,event:`pageShow`}),{next:s,effects:l}}function X(e){let t=new Map,n=e.stack[e.stack.length-1]?.bridgeId,r=e=>{t.has(e.bridgeId)||t.set(e.bridgeId,{entry:e,visible:e.bridgeId===n})};for(let t of Object.values(e.tabStacks))for(let e of t)r(e);for(let t of e.stack)r(t);return Array.from(t.values())}function Z(e){return e.backgroundColor??`#ffffff`}function Q(e,t){let n=e.navigationBarBackgroundColor??`#ffffff`,r=e.navigationBarTextStyle??`black`,i=e.navigationStyle??`default`;return v({title:e.navigationBarTitleText??t,backgroundColor:n,textStyle:r,style:i,homeButtonVisible:e.homeButton===!0})}function ie(e,t,n){switch(t){case`setNavigationBarTitle`:return{...e,title:typeof n.title==`string`?n.title:e.title};case`setNavigationBarColor`:return oe(e,n);case`showNavigationBarLoading`:return{...e,loading:!0};case`hideNavigationBarLoading`:return{...e,loading:!1};case`hideHomeButton`:return{...e,homeButtonVisible:!1};default:return e}}var ae=[`linear`,`easeIn`,`easeOut`,`easeInOut`];function oe(e,t){let n=typeof t.frontColor==`string`?t.frontColor.toLowerCase():void 0,r=n===`#ffffff`?`white`:n===`#000000`?`black`:e.textStyle,i=typeof t.backgroundColor==`string`?t.backgroundColor:e.backgroundColor,a=(()=>{let e=t.animation;if(!e||typeof e!=`object`)return;let n=e,r=typeof n.duration==`number`&&Number.isFinite(n.duration)?Math.max(0,n.duration):0,i=typeof n.timingFunc==`string`?n.timingFunc:`linear`;return{durationMs:r,timingFunc:ae.includes(i)?i:`linear`}})();return{...e,textStyle:r,backgroundColor:i,colorAnimation:a}}function se(e,t,n){let r=e=>e.bridgeId===t?{...e,navBar:n(e.navBar)}:e,i=e.stack.map(r),a={};for(let[t,n]of Object.entries(e.tabStacks))a[t]=n.map(r);return{...e,stack:i,tabStacks:a}}var ce=44,le=24,$=44;function ue({miniApp:e,bridgeId:t,platform:n=`ios`,active:r=!0}){let i=new URLSearchParams(window.location.search).get(`embedded`)===`1`,[o,s]=(0,c.useState)(()=>e.getInitialDevice());(0,c.useEffect)(()=>e.onSimulatorEvent(a.DEVICE_CHANGE,s),[e]);let l=i?0:o?.safeAreaInsets.top??(n===`ios`?ce:le),d=i?0:o?.safeAreaInsets.bottom??0,f=o?.notchType??`none`,m=(0,c.useMemo)(()=>e.getRenderPreloadUrl(),[e]),h=(0,c.useMemo)(()=>e.getTabBarConfig(),[e]),g=(0,c.useMemo)(()=>({bridgeId:t,pagePath:B(e.pagePath),query:{...e.query},isTab:!!e.getTabBarConfig()?.list.some(t=>B(t.pagePath)===B(e.pagePath)),windowConfig:e.rootWindowConfig??{},navBar:Q(e.rootWindowConfig??{},e.appId)}),[e,t]),[{shell:v,tabBar:y},x]=(0,c.useState)(()=>({shell:W(g),tabBar:j(h)})),S=(0,c.useRef)({shell:v,tabBar:y});(0,c.useEffect)(()=>{S.current={shell:v,tabBar:y}},[v,y]);let C=(0,c.useCallback)(t=>{for(let n of t)n.kind===`lifecycle`?e.notifyLifecycle(n.bridgeId,n.event):n.kind===`closePage`&&e.closePage(n.bridgeId)},[e]);(0,c.useEffect)(()=>e.onSimulatorEvent(a.NAV_BAR,e=>{x(t=>({...t,shell:se(t.shell,e.bridgeId,t=>ie(t,e.name,e.params))}))}),[e]),(0,c.useEffect)(()=>e.onSessionEvent(a.TAB_ACTION,t=>{let n=te(S.current.tabBar,{kind:`apply`,name:t.name,params:t.params});x(e=>({...e,tabBar:n.state})),e.notifyNavCallback({ok:n.ok,errMsg:n.errMsg,callbacks:t.callbacks})}),[e]);let T=(0,c.useCallback)(async t=>{let n=(n,r)=>e.notifyNavCallback({ok:n,errMsg:r,callbacks:t.callbacks});try{switch(t.name){case`navigateTo`:await de(e,S,x,C,t,n);break;case`navigateBack`:fe(S,x,C,t,n);break;case`redirectTo`:await pe(e,S,x,C,t,n);break;case`reLaunch`:await me(e,S,x,C,t,n);break;case`switchTab`:await he(e,S,x,C,t,n);break}}catch(e){n(!1,`${t.name}:fail ${e instanceof Error?e.message:String(e)}`)}},[e,C]);(0,c.useEffect)(()=>e.onSessionEvent(a.NAV_ACTION,e=>{T(e)}),[T,e]),(0,c.useEffect)(()=>u(e),[e]);let E=(0,c.useCallback)(()=>{if(S.current.shell.stack.length<=1)return;let t=S.current.shell.stack;T({appSessionId:e.appSessionId??``,bridgeId:t[t.length-1].bridgeId,name:`navigateBack`,params:{delta:1},callbacks:{}})},[e,T]),D=(0,c.useCallback)(t=>{let n=S.current.shell;t===n.currentTabPath&&n.stack.length===1||T({appSessionId:e.appSessionId??``,bridgeId:n.stack[n.stack.length-1].bridgeId,name:`switchTab`,params:{url:`/${t}`},callbacks:{}})},[e,T]),O=v.stack[v.stack.length-1],M=X(v),N=(0,c.useCallback)(()=>{A(e.appId,O.navBar.title,O.pagePath)},[e.appId,O.navBar.title,O.pagePath]);return(0,c.useEffect)(()=>{e.notifyActivePage(O.bridgeId)},[e,O.bridgeId]),(0,c.useEffect)(()=>{e.notifyPageStack(v.stack.map(e=>({pagePath:e.pagePath,query:e.query})))},[e,v.stack]),(0,p.jsx)(`main`,{className:`device-shell-root${i?` device-shell-root--embedded`:``}`,children:(0,p.jsxs)(`section`,{className:`device-shell${i?` device-shell--embedded`:``}`,"aria-label":`Dimina simulator`,style:!i&&o?{width:o.screenWidth,height:o.screenHeight}:void 0,children:[!i&&(0,p.jsx)(b,{height:l,notchType:f,textStyle:O.navBar.textStyle}),(0,p.jsx)(_,{state:O.navBar,stackDepth:v.stack.length,platform:n,statusBarHeight:l,navBarHeight:$,onBack:E,onMore:N}),(0,p.jsx)(`div`,{className:`device-shell__viewport`,children:M.map(({entry:t,visible:n})=>(0,p.jsx)(`webview`,{className:`device-shell__webview`,src:e.createRenderHostUrl(t.bridgeId,t.pagePath,t.isTab,Z(t.windowConfig)),preload:m,allowpopups:`true`,style:{display:n?`flex`:`none`,zIndex:n?100:1,backgroundColor:Z(t.windowConfig)}},t.bridgeId))}),O.isTab&&(0,p.jsx)(ee,{state:y,currentPath:v.currentTabPath,resourceBaseUrl:e.resourceBaseUrl,appId:e.appId,onSwitch:D,bottomInset:d}),(0,p.jsx)(w,{}),(0,p.jsx)(k,{active:r,appId:e.appId}),d>0&&(0,p.jsx)(`div`,{className:`device-shell__home-indicator`,style:{height:d},"aria-hidden":`true`})]})})}async function de(e,t,n,r,i,a){let{pagePath:o,query:s}=U(i.params.url);if(!o){a(!1,`navigateTo:fail invalid url`);return}if(e.getTabBarConfig()?.list.some(e=>B(e.pagePath)===o)){a(!1,`navigateTo:fail can not navigateTo a tabbar page`);return}let c=await e.openPage(o,s),l={bridgeId:c.bridgeId,pagePath:c.pagePath,query:s,isTab:c.isTab,windowConfig:c.windowConfig,navBar:Q(c.windowConfig,e.appId)},{next:u,effects:d}=K(t.current.shell,l);n(e=>({...e,shell:u})),r(d),a(!0,`navigateTo:ok`)}function fe(e,t,n,r,i){let a=r.params.delta,o=Number.isFinite(Number(a))?Number(a):1,s=q(e.current.shell,o);if(`error`in s){i(!1,`navigateBack:fail ${s.error}`);return}t(e=>({...e,shell:s.next})),n(s.effects),i(!0,`navigateBack:ok`)}async function pe(e,t,n,r,i,a){let{pagePath:o,query:s}=U(i.params.url);if(!o){a(!1,`redirectTo:fail invalid url`);return}if(e.getTabBarConfig()?.list.some(e=>B(e.pagePath)===o)){a(!1,`redirectTo:fail can not redirectTo a tabbar page`);return}let c=await e.openPage(o,s),l={bridgeId:c.bridgeId,pagePath:c.pagePath,query:s,isTab:c.isTab,windowConfig:c.windowConfig,navBar:Q(c.windowConfig,e.appId)},{next:u,effects:d}=J(t.current.shell,l);n(e=>({...e,shell:u})),r(d),a(!0,`redirectTo:ok`)}async function me(e,t,n,r,i,a){let{pagePath:o,query:s}=U(i.params.url);if(!o){a(!1,`reLaunch:fail invalid url`);return}let c=await e.openPage(o,s),l={bridgeId:c.bridgeId,pagePath:c.pagePath,query:s,isTab:c.isTab,windowConfig:c.windowConfig,navBar:Q(c.windowConfig,e.appId)},{next:u,effects:d}=Y(t.current.shell,l);n(e=>({...e,shell:u})),r(d),a(!0,`reLaunch:ok`)}async function he(e,t,n,r,i,a){let{pagePath:o}=U(i.params.url);if(!o){a(!1,`switchTab:fail invalid url`);return}if(!e.getTabBarConfig()?.list.some(e=>B(e.pagePath)===o)){a(!1,`switchTab:fail not a tabBar page: ${o}`);return}let s=t.current.shell.tabStacks[o],c=null;if(!s||s.length===0){let t=await e.openPage(o,{});c={bridgeId:t.bridgeId,pagePath:t.pagePath,query:{},isTab:!0,windowConfig:t.windowConfig,navBar:Q(t.windowConfig,e.appId)}}let{next:l,effects:u}=re(t.current.shell,o,c);n(e=>({...e,shell:l})),r(u),a(!0,`switchTab:ok`)}export{ue as DeviceShell};
2
+ //# sourceMappingURL=device-shell-Cw7c-IkG.js.map
@@ -1,2 +1,2 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")}),u=o((e=>{var t=Symbol.for(`react.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.provider`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.iterator;function p(e){return typeof e!=`object`||!e?null:(e=f&&e[f]||e[`@@iterator`],typeof e==`function`?e:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}_.prototype.isReactComponent={},_.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`setState(...): takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function v(){}v.prototype=_.prototype;function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}var b=y.prototype=new v;b.constructor=y,h(b,_.prototype),b.isPureReactComponent=!0;var x=Array.isArray,S=Object.prototype.hasOwnProperty,C={current:null},w={key:!0,ref:!0,__self:!0,__source:!0};function T(e,n,r){var i,a={},o=null,s=null;if(n!=null)for(i in n.ref!==void 0&&(s=n.ref),n.key!==void 0&&(o=``+n.key),n)S.call(n,i)&&!w.hasOwnProperty(i)&&(a[i]=n[i]);var c=arguments.length-2;if(c===1)a.children=r;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(i in c=e.defaultProps,c)a[i]===void 0&&(a[i]=c[i]);return{$$typeof:t,type:e,key:o,ref:s,props:a,_owner:C.current}}function E(e,n){return{$$typeof:t,type:e.type,key:n,ref:e.ref,props:e.props,_owner:e._owner}}function D(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function O(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var k=/\/+/g;function A(e,t){return typeof e==`object`&&e&&e.key!=null?O(``+e.key):t.toString(36)}function j(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0}}if(c)return c=e,o=o(c),e=a===``?`.`+A(c,0):a,x(o)?(i=``,e!=null&&(i=e.replace(k,`$&/`)+`/`),j(o,r,i,``,function(e){return e})):o!=null&&(D(o)&&(o=E(o,i+(!o.key||c&&c.key===o.key?``:(``+o.key).replace(k,`$&/`)+`/`)+e)),r.push(o)),1;if(c=0,a=a===``?`.`:a+`:`,x(e))for(var l=0;l<e.length;l++){s=e[l];var u=a+A(s,l);c+=j(s,r,i,u,o)}else if(u=p(e),typeof u==`function`)for(e=u.call(e),l=0;!(s=e.next()).done;)s=s.value,u=a+A(s,l++),c+=j(s,r,i,u,o);else if(s===`object`)throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`);return c}function M(e,t,n){if(e==null)return e;var r=[],i=0;return j(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function N(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var P={current:null},F={transition:null},I={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:F,ReactCurrentOwner:C};function L(){throw Error(`act(...) is not supported in production builds of React.`)}e.Children={map:M,forEach:function(e,t,n){M(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return M(e,function(){t++}),t},toArray:function(e){return M(e,function(e){return e})||[]},only:function(e){if(!D(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}},e.Component=_,e.Fragment=r,e.Profiler=a,e.PureComponent=y,e.StrictMode=i,e.Suspense=l,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=I,e.act=L,e.cloneElement=function(e,n,r){if(e==null)throw Error(`React.cloneElement(...): The argument must be a React element, but you passed `+e+`.`);var i=h({},e.props),a=e.key,o=e.ref,s=e._owner;if(n!=null){if(n.ref!==void 0&&(o=n.ref,s=C.current),n.key!==void 0&&(a=``+n.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(l in n)S.call(n,l)&&!w.hasOwnProperty(l)&&(i[l]=n[l]===void 0&&c!==void 0?c[l]:n[l])}var l=arguments.length-2;if(l===1)i.children=r;else if(1<l){c=Array(l);for(var u=0;u<l;u++)c[u]=arguments[u+2];i.children=c}return{$$typeof:t,type:e.type,key:a,ref:o,props:i,_owner:s}},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:o,_context:e},e.Consumer=e},e.createElement=T,e.createFactory=function(e){var t=T.bind(null,e);return t.type=e,t},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=D,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:N}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=F.transition;F.transition={};try{e()}finally{F.transition=t}},e.unstable_act=L,e.useCallback=function(e,t){return P.current.useCallback(e,t)},e.useContext=function(e){return P.current.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e){return P.current.useDeferredValue(e)},e.useEffect=function(e,t){return P.current.useEffect(e,t)},e.useId=function(){return P.current.useId()},e.useImperativeHandle=function(e,t,n){return P.current.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return P.current.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return P.current.useLayoutEffect(e,t)},e.useMemo=function(e,t){return P.current.useMemo(e,t)},e.useReducer=function(e,t,n){return P.current.useReducer(e,t,n)},e.useRef=function(e){return P.current.useRef(e)},e.useState=function(e){return P.current.useState(e)},e.useSyncExternalStore=function(e,t,n){return P.current.useSyncExternalStore(e,t,n)},e.useTransition=function(){return P.current.useTransition()},e.version=`18.3.1`})),d=o(((e,t)=>{t.exports=u()})),f=new Map,p=new Map,m=null;function h(e){let t=p.get(e);if(t){p.delete(e),t.controller.abort();try{t.dispose?.()}catch(t){console.error(`[simulator-ui] extension "${e}" dispose failed:`,t)}}}function g(e){if(h(e.id),!m||!e.mount)return;let t=new AbortController,n={overlayRoot:m.overlayRoot,appId:m.appId,signal:t.signal};try{let r=e.mount(n);p.set(e.id,{controller:t,dispose:typeof r==`function`?r:void 0})}catch(n){t.abort(),console.error(`[simulator-ui] extension "${e.id}" mount failed:`,n)}}function _(){for(let e of Array.from(p.keys()))h(e);for(let e of f.values())g(e)}var v={register(e){let t=f.get(e.id);return t&&h(t.id),f.set(e.id,e),g(e),()=>{f.get(e.id)===e&&v.unregister(e.id)}},unregister(e){f.delete(e),h(e)},has(e){return f.has(e)},async invoke(e,t,n){let r=f.get(e);if(!r)throw Error(`Simulator UI extension "${e}" is not registered`);if(!r.invoke)throw Error(`Simulator UI extension "${e}" does not expose invoke()`);return await r.invoke(t,n)},async dispatchChromeAction(e){for(let t of f.values())if(t.onChromeAction)try{if(await t.onChromeAction(e)!==!1)return!0}catch(e){console.error(`[simulator-ui] extension "${t.id}" chrome action failed:`,e)}return!1}};globalThis.__diminaSimulatorUi=v;function y(e,t){let n={};return m={token:n,overlayRoot:e,appId:t},_(),()=>{m?.token===n&&(m=null,_())}}function b(e){return v.dispatchChromeAction(e)}var x=6e4;function S(e){let t=Number(e);return Number.isFinite(t)&&t>0&&t<=2147483647?t:x}function C(e){let t=new Headers;for(let[n,r]of Object.entries(e??{}))r!=null&&t.set(n,String(r));return t.has(`content-type`)||t.set(`content-type`,`application/json`),t}function w(e,t){let n=typeof location<`u`?location.href:void 0,r=new URL(e,n);for(let[e,n]of Object.entries(t))r.searchParams.append(e,String(n));return r.toString()}function T(e,t){if(typeof e==`string`)return e;if(t.includes(`application/x-www-form-urlencoded`)){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))t.append(n,String(r));return t.toString()}return JSON.stringify(e)}async function E(e,t,n){if(n===`arraybuffer`||t===`arraybuffer`)return e.arrayBuffer();let r=await e.text();if(t!==`json`)return r;try{return JSON.parse(r)}catch{return r}}function D(e,t){let n=(e.method||`GET`).toUpperCase(),r=n!==`GET`&&n!==`HEAD`,i=C(e.header),a=e.url,o={method:n,headers:i};r?e.data!=null&&(o.body=T(e.data,i.get(`content-type`)??``)):e.data&&typeof e.data==`object`&&(a=w(a,e.data));let s=new AbortController;o.signal=s.signal;let c=!1;function l(e){c||(c=!0,clearTimeout(f),t.success?.(e),t.complete?.(e))}function u(e){c||(c=!0,clearTimeout(f),t.fail?.(e),t.complete?.(e))}let d=S(e.timeout),f=setTimeout(()=>{u({errMsg:`request:fail timeout`}),s.abort()},d),p=e.dataType??`json`,m=e.responseType??`text`;return fetch(a,o).then(async e=>{let t={};e.headers.forEach((e,n)=>{t[n]=e}),l({data:await E(e,p,m),statusCode:e.status,header:t,errMsg:`request:ok`})}).catch(e=>{u({errMsg:`request:fail ${(e instanceof Error?e.message:String(e))||`network error`}`})}),{abort(){u({errMsg:`request:fail abort`}),s.abort()}}}var O=new class{state={toast:null,dialog:null};listeners=new Set;getState(){return this.state}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}showToast(e){this.set({...this.state,toast:e})}hideToast(){this.set({...this.state,toast:null})}dismissToast(e){this.state.toast===e&&this.hideToast()}showDialog(e){this.set({...this.state,dialog:e})}hideDialog(){this.set({...this.state,dialog:null})}set(e){this.state=e;for(let t of this.listeners)t(e)}},k=o((e=>{var t=d(),n=Symbol.for(`react.element`),r=Symbol.for(`react.fragment`),i=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,r){var s,c={},l=null,u=null;for(s in r!==void 0&&(l=``+r),t.key!==void 0&&(l=``+t.key),t.ref!==void 0&&(u=t.ref),t)i.call(t,s)&&!o.hasOwnProperty(s)&&(c[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps,t)c[s]===void 0&&(c[s]=t[s]);return{$$typeof:n,type:e,key:l,ref:u,props:c,_owner:a.current}}e.Fragment=r,e.jsx=s,e.jsxs=s})),A=o(((e,t)=>{t.exports=k()}));export{b as a,l as c,y as i,c as l,O as n,d as o,D as r,o as s,A as t};
2
- //# sourceMappingURL=jsx-runtime-hBv-rHqQ.js.map
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")}),u=o((e=>{var t=Symbol.for(`react.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.provider`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.iterator;function p(e){return typeof e!=`object`||!e?null:(e=f&&e[f]||e[`@@iterator`],typeof e==`function`?e:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}_.prototype.isReactComponent={},_.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`setState(...): takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function v(){}v.prototype=_.prototype;function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}var b=y.prototype=new v;b.constructor=y,h(b,_.prototype),b.isPureReactComponent=!0;var x=Array.isArray,S=Object.prototype.hasOwnProperty,C={current:null},w={key:!0,ref:!0,__self:!0,__source:!0};function T(e,n,r){var i,a={},o=null,s=null;if(n!=null)for(i in n.ref!==void 0&&(s=n.ref),n.key!==void 0&&(o=``+n.key),n)S.call(n,i)&&!w.hasOwnProperty(i)&&(a[i]=n[i]);var c=arguments.length-2;if(c===1)a.children=r;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(i in c=e.defaultProps,c)a[i]===void 0&&(a[i]=c[i]);return{$$typeof:t,type:e,key:o,ref:s,props:a,_owner:C.current}}function E(e,n){return{$$typeof:t,type:e.type,key:n,ref:e.ref,props:e.props,_owner:e._owner}}function D(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function O(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var k=/\/+/g;function A(e,t){return typeof e==`object`&&e&&e.key!=null?O(``+e.key):t.toString(36)}function j(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0}}if(c)return c=e,o=o(c),e=a===``?`.`+A(c,0):a,x(o)?(i=``,e!=null&&(i=e.replace(k,`$&/`)+`/`),j(o,r,i,``,function(e){return e})):o!=null&&(D(o)&&(o=E(o,i+(!o.key||c&&c.key===o.key?``:(``+o.key).replace(k,`$&/`)+`/`)+e)),r.push(o)),1;if(c=0,a=a===``?`.`:a+`:`,x(e))for(var l=0;l<e.length;l++){s=e[l];var u=a+A(s,l);c+=j(s,r,i,u,o)}else if(u=p(e),typeof u==`function`)for(e=u.call(e),l=0;!(s=e.next()).done;)s=s.value,u=a+A(s,l++),c+=j(s,r,i,u,o);else if(s===`object`)throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`);return c}function M(e,t,n){if(e==null)return e;var r=[],i=0;return j(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function N(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var P={current:null},F={transition:null},I={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:F,ReactCurrentOwner:C};function L(){throw Error(`act(...) is not supported in production builds of React.`)}e.Children={map:M,forEach:function(e,t,n){M(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return M(e,function(){t++}),t},toArray:function(e){return M(e,function(e){return e})||[]},only:function(e){if(!D(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}},e.Component=_,e.Fragment=r,e.Profiler=a,e.PureComponent=y,e.StrictMode=i,e.Suspense=l,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=I,e.act=L,e.cloneElement=function(e,n,r){if(e==null)throw Error(`React.cloneElement(...): The argument must be a React element, but you passed `+e+`.`);var i=h({},e.props),a=e.key,o=e.ref,s=e._owner;if(n!=null){if(n.ref!==void 0&&(o=n.ref,s=C.current),n.key!==void 0&&(a=``+n.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(l in n)S.call(n,l)&&!w.hasOwnProperty(l)&&(i[l]=n[l]===void 0&&c!==void 0?c[l]:n[l])}var l=arguments.length-2;if(l===1)i.children=r;else if(1<l){c=Array(l);for(var u=0;u<l;u++)c[u]=arguments[u+2];i.children=c}return{$$typeof:t,type:e.type,key:a,ref:o,props:i,_owner:s}},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:o,_context:e},e.Consumer=e},e.createElement=T,e.createFactory=function(e){var t=T.bind(null,e);return t.type=e,t},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=D,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:N}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=F.transition;F.transition={};try{e()}finally{F.transition=t}},e.unstable_act=L,e.useCallback=function(e,t){return P.current.useCallback(e,t)},e.useContext=function(e){return P.current.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e){return P.current.useDeferredValue(e)},e.useEffect=function(e,t){return P.current.useEffect(e,t)},e.useId=function(){return P.current.useId()},e.useImperativeHandle=function(e,t,n){return P.current.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return P.current.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return P.current.useLayoutEffect(e,t)},e.useMemo=function(e,t){return P.current.useMemo(e,t)},e.useReducer=function(e,t,n){return P.current.useReducer(e,t,n)},e.useRef=function(e){return P.current.useRef(e)},e.useState=function(e){return P.current.useState(e)},e.useSyncExternalStore=function(e,t,n){return P.current.useSyncExternalStore(e,t,n)},e.useTransition=function(){return P.current.useTransition()},e.version=`18.3.1`})),d=o(((e,t)=>{t.exports=u()})),f=new Map,p=new Map,m=null;function h(e){let t=p.get(e);if(t){p.delete(e),t.controller.abort();try{t.dispose?.()}catch(t){console.error(`[simulator-ui] extension "${e}" dispose failed:`,t)}}}function g(e){if(h(e.id),!m||!e.mount)return;let t=new AbortController,n={overlayRoot:m.overlayRoot,appId:m.appId,signal:t.signal};try{let r=e.mount(n);p.set(e.id,{controller:t,dispose:typeof r==`function`?r:void 0})}catch(n){t.abort(),console.error(`[simulator-ui] extension "${e.id}" mount failed:`,n)}}function _(){for(let e of Array.from(p.keys()))h(e);for(let e of f.values())g(e)}var v={register(e){let t=f.get(e.id);return t&&h(t.id),f.set(e.id,e),g(e),()=>{f.get(e.id)===e&&v.unregister(e.id)}},unregister(e){f.delete(e),h(e)},has(e){return f.has(e)},async invoke(e,t,n){let r=f.get(e);if(!r)throw Error(`Simulator UI extension "${e}" is not registered`);if(!r.invoke)throw Error(`Simulator UI extension "${e}" does not expose invoke()`);return await r.invoke(t,n)},async dispatchChromeAction(e){for(let t of f.values())if(t.onChromeAction)try{if(await t.onChromeAction(e)!==!1)return!0}catch(e){console.error(`[simulator-ui] extension "${t.id}" chrome action failed:`,e)}return!1}};globalThis.__diminaSimulatorUi=v;function y(e,t){let n={};return m={token:n,overlayRoot:e,appId:t},_(),()=>{m?.token===n&&(m=null,_())}}function b(e){return v.dispatchChromeAction(e)}var x=6e4;function S(e){let t=Number(e);return Number.isFinite(t)&&t>0&&t<=2147483647?t:x}function C(e){let t=new Headers;for(let[n,r]of Object.entries(e??{}))r!=null&&t.set(n,String(r));return t.has(`content-type`)||t.set(`content-type`,`application/json`),t}function w(e,t){let n=typeof location<`u`?location.href:void 0,r=new URL(e,n);for(let[e,n]of Object.entries(t))r.searchParams.append(e,String(n));return r.toString()}function T(e,t){if(typeof e==`string`)return e;if(t.includes(`application/x-www-form-urlencoded`)){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))t.append(n,String(r));return t.toString()}return JSON.stringify(e)}async function E(e,t,n){if(n===`arraybuffer`||t===`arraybuffer`)return e.arrayBuffer();let r=await e.text();if(t!==`json`)return r;try{return JSON.parse(r)}catch{return r}}function D(e,t){let n=(e.method||`GET`).toUpperCase(),r=n!==`GET`&&n!==`HEAD`,i=C(e.header),a=e.url,o={method:n,headers:i};r?e.data!=null&&(o.body=T(e.data,i.get(`content-type`)??``)):e.data&&typeof e.data==`object`&&(a=w(a,e.data));let s=new AbortController;o.signal=s.signal;let c=!1;function l(e){c||(c=!0,clearTimeout(f),t.success?.(e),t.complete?.(e))}function u(e){c||(c=!0,clearTimeout(f),t.fail?.(e),t.complete?.(e))}let d=S(e.timeout),f=setTimeout(()=>{u({errMsg:`request:fail timeout`}),s.abort()},d),p=e.dataType??`json`,m=e.responseType??`text`;return fetch(a,o).then(async e=>{let t={};e.headers.forEach((e,n)=>{t[n]=e}),l({data:await E(e,p,m),statusCode:e.status,header:t,errMsg:`request:ok`})}).catch(e=>{u({errMsg:`request:fail ${(e instanceof Error?e.message:String(e))||`network error`}`})}),{abort(){u({errMsg:`request:fail abort`}),s.abort()}}}var O=new class{state={toast:null,dialog:null};listeners=new Set;getState(){return this.state}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}showToast(e){this.set({...this.state,toast:e})}hideToast(){this.set({...this.state,toast:null})}dismissToast(e){this.state.toast===e&&this.hideToast()}showDialog(e){this.set({...this.state,dialog:e})}hideDialog(){this.set({...this.state,dialog:null})}set(e){this.state=e;for(let t of this.listeners)t(e)}},k=o((e=>{var t=d(),n=Symbol.for(`react.element`),r=Symbol.for(`react.fragment`),i=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,r){var s,c={},l=null,u=null;for(s in r!==void 0&&(l=``+r),t.key!==void 0&&(l=``+t.key),t.ref!==void 0&&(u=t.ref),t)i.call(t,s)&&!o.hasOwnProperty(s)&&(c[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps,t)c[s]===void 0&&(c[s]=t[s]);return{$$typeof:n,type:e,key:l,ref:u,props:c,_owner:a.current}}e.Fragment=r,e.jsx=s,e.jsxs=s})),A=o(((e,t)=>{t.exports=k()}));export{y as a,o as c,S as i,l,O as n,b as o,D as r,d as s,A as t,c as u};
2
+ //# sourceMappingURL=jsx-runtime-DkKmJyBb.js.map