@dimina-kit/devkit 0.1.2-dev.20260718085557 → 0.1.2-dev.20260718095333
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.
- package/fe/dimina-fe-container/assets/index.js +3 -3
- package/fe/dimina-fe-container/assets/pageFrame.css +1 -1
- package/fe/dimina-fe-container/assets/pageFrame.js +23 -947
- package/fe/dimina-fe-container/assets/service.js +2 -2
- package/fe/dimina-fe-container/dimina-version.json +2 -2
- package/fe/dimina-fe-container/pageFrame.html +1 -1
- package/package.json +2 -2
|
@@ -17,7 +17,7 @@ var e=(e=0)=>t=>`\u001B[${t+e}m`,t=(e=0)=>t=>`\u001B[${38+e};5;${t}m`,n=(e=0)=>(
|
|
|
17
17
|
<iframe class="dimina-native-webview__window" title="pageFrame"></iframe>
|
|
18
18
|
</div>
|
|
19
19
|
</div>
|
|
20
|
-
</div>`,I=class{constructor(e){this.opts=e,this.id=`webview_${k()}`,this.el=document.createElement(`div`),this.el.classList.add(`dimina-native-view`),this.el.innerHTML=F,this.setInitialStyle(),this.iframe=this.el.querySelector(`.dimina-native-webview__window`),this.iframe.src=`/pageFrame.html
|
|
20
|
+
</div>`,I=class{constructor(e){this.opts=e,this.id=`webview_${k()}`,this.el=document.createElement(`div`),this.el.classList.add(`dimina-native-view`),this.el.innerHTML=F,this.setInitialStyle(),this.iframe=this.el.querySelector(`.dimina-native-webview__window`),this.iframe.src=`/pageFrame.html`,this.iframe.name=this.id,this.event=O(),this.bindBackEvent()}async init(e){await this.frameLoaded();let t=window.frames[this.iframe.name];t.DiminaRenderBridge.invoke=e=>{this.event.emit(`invoke`,e)},t.DiminaRenderBridge.publish=e=>{this.event.emit(`publish`,e)},e?.()}invoke(e){this.event.on(`invoke`,e)}publish(e){this.event.on(`publish`,e)}postMessage(e){window.frames[this.iframe.name].DiminaRenderBridge.onMessage(e)}bindBackEvent(){let e=this.el.querySelector(`.dimina-native-webview__navigation-left-btn`);e.onclick=()=>{this.parent.parent.navigateBack()}}frameLoaded(){return new Promise(e=>{this.iframe.onload=()=>{e()}})}setInitialStyle(){let e=this.opts.configInfo,t=this.el.querySelector(`.dimina-native-webview`),n=this.el.querySelector(`.dimina-native-webview__navigation-title`),r=this.el.querySelector(`.dimina-native-webview__navigation`),i=this.el.querySelector(`.dimina-native-webview__navigation-left-btn`),a=this.el.querySelector(`.dimina-native-webview__root`);this.opts.isRoot?i.style.display=`none`:i.style.display=`block`,e.navigationBarTextStyle===`white`?r.classList.add(`dimina-native-webview__navigation--white`):r.classList.add(`dimina-native-webview__navigation--black`),e.navigationStyle===`custom`&&t.classList.add(`dimina-native-webview--custom-nav`),a.style.backgroundColor=e.backgroundColor,r.style.backgroundColor=e.navigationBarBackgroundColor,n.textContent=e.navigationBarTitleText}},L=class{constructor(e){this.id=`bridge_${k()}`,this.opts=e,this.webview=null,this.jscore=e.jscore,this.parent=null,this.resetStatus()}async init(){this.jscore.invoke(e=>this.messageInvoke(`service`,e)),this.jscore.publish(e=>this.messagePublish(e)),this.webview=await this.createWebview(),this.webview.invoke(e=>this.messageInvoke(`render`,e)),this.webview.publish(e=>this.messagePublish(e))}messagePublish(e){if(this.destroyed)return;typeof e==`string`&&(e=JSON.parse(e));let{body:t,target:n}=e;t.bridgeId&&t.bridgeId!==this.id||(n===`service`?this.jscore.postMessage(e):n===`render`&&this.webview.postMessage(e))}messageInvoke(e,t){if(this.destroyed)return;typeof t==`string`&&(t=JSON.parse(t));let{type:n,body:r,target:i}=t;if(r.bridgeId&&r.bridgeId!==this.id||r.resourceLoadId&&r.resourceLoadId!==this.resourceLoadId)return;console.log(D.green(`[container] receive msg from ${e}: `),t);let a={type:n,body:{bridgeId:this.id,pagePath:this.opts.pagePath,scene:this.opts.scene,query:this.opts.query,...r}};if(i===`service`){if(n===`serviceResourceLoaded`)if(this.serviceResource=!0,this.isResourceLoaded()&&!this.resourceLoadedForwarded)this.resourceLoadedForwarded=!0,a.type=`resourceLoaded`;else return;else if(n===`renderResourceLoaded`)if(this.renderResource=!0,this.isResourceLoaded()&&!this.resourceLoadedForwarded)this.resourceLoadedForwarded=!0,a.type=`resourceLoaded`;else return;else n===`renderResourceLoadFailed`&&(this.renderResource=!1,this.resourceLoadedForwarded=!1,a.type=`resourceLoadFailed`);this.jscore.postMessage(a),a.type===`resourceLoaded`&&this.#e()}else if(i===`container`&&n===`invokeAPI`){let{name:e,params:t}=r;this.parent.invokeApi(e,t)}}start(e={}){this.resourceLoadId=k(),Object.prototype.hasOwnProperty.call(e,`visible`)?this.desiredPageVisible=e.visible:this.desiredPageVisible===null&&(this.desiredPageVisible=!0),this.webview.postMessage({type:`loadResource`,body:{bridgeId:this.id,resourceLoadId:this.resourceLoadId,appId:this.opts.appId,pagePath:this.opts.pagePath,root:this.opts.root,baseUrl:`/`}}),this.jscore.postMessage({type:`loadResource`,body:{bridgeId:this.id,resourceLoadId:this.resourceLoadId,appId:this.opts.appId,pagePath:this.opts.pagePath,scene:this.opts.scene,query:this.opts.query,root:this.opts.root,baseUrl:`/`,hostEnv:this.parent.getHostEnvSnapshot()}}),this.opts.isRoot&&this.jscore.postMessage({type:`onUpdateStatusChange`,body:{bridgeId:this.id,event:`noupdate`}})}resetStatus(){this.destroyed=!1,this.serviceResource=!1,this.renderResource=!1,this.resourceLoadedForwarded=!1,this.resourceLoadId=null,this.desiredPageVisible=null,this.sentPageVisible=null}createWebview(){return new Promise(e=>{let t=new I({configInfo:this.opts.configInfo,isRoot:this.opts.isRoot});t.parent=this,t.init(()=>{e(t)}),this.opts.isRoot||t.el.classList.add(`dimina-native-view--before-enter`),this.parent.webviewsContainer.appendChild(t.el)})}isResourceLoaded(){return this.serviceResource&&this.renderResource}appShow(){this.isResourceLoaded()&&this.jscore.postMessage({type:`appShow`,body:{}})}appHide(){this.isResourceLoaded()&&this.jscore.postMessage({type:`appHide`,body:{}})}pageShow(){this.desiredPageVisible=!0,this.#e()}pageHide(){this.desiredPageVisible=!1,this.#e()}#e(){!this.isResourceLoaded()||this.desiredPageVisible===null||this.sentPageVisible===this.desiredPageVisible||(this.jscore.postMessage({type:this.desiredPageVisible?`pageShow`:`pageHide`,body:{bridgeId:this.id}}),this.sentPageVisible=this.desiredPageVisible)}destroy(){let e=this.isResourceLoaded();this.destroyed=!0,this.serviceResource=!1,this.renderResource=!1,this.resourceLoadedForwarded=!1,this.resourceLoadId=null,this.desiredPageVisible=null,this.sentPageVisible=null,e&&this.jscore.postMessage({type:`pageUnload`,body:{bridgeId:this.id}})}},R=`/assets/service.js`,z=class{constructor(e){this.parent=e,this.worker=null,this.event=O()}async init(){let e=this.parent.getApiNamespaces?.()||[],t=Object.keys(this.parent.apiRegistry??{}),n=JSON.stringify({apiNamespaces:e,registeredApis:t});this.worker=new Worker(R,{type:`classic`,name:n}),this.worker.onmessage=e=>{let t=e.data;this.event.emit(t.method,t)}}invoke(e){this.event.on(`invoke`,e)}publish(e){this.event.on(`publish`,e)}postMessage(e){this.worker.postMessage(e)}destroy(){this.worker.terminate()}},B=class{static ROUTE_QUERY_KEYS=[`appId`,`entry`,`page`];static _encodePage(e,t){return t&&Object.keys(t).length>0?`${e}?${Object.entries(t).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join(`&`)}`:e}static _decodePage(e){let t=e.indexOf(`?`);if(t===-1)return{pagePath:e,query:{}};let n=e.slice(0,t),r={};return new URLSearchParams(e.slice(t+1)).forEach((e,t)=>{r[t]=e}),{pagePath:n,query:r}}static _encodeSearchValue(e){return encodeURIComponent(e).replace(/%2F/g,`/`)}static _normalizeSearch(e){return e?e.startsWith(`?`)?e.slice(1):e:``}static _stringifySearchParams(e){return Array.from(e.entries()).map(([e,t])=>`${encodeURIComponent(e)}=${this._encodeSearchValue(t)}`).join(`&`)}static buildRouteSearch(e,t,n=typeof window<`u`?window.location.search:``){let r=new URLSearchParams(this._normalizeSearch(n));if(this.ROUTE_QUERY_KEYS.forEach(e=>r.delete(e)),!e||!t?.length)return this._stringifySearchParams(r);let i=t[0],a=t[t.length-1];return r.set(`appId`,e),r.set(`entry`,this._encodePage(i.pagePath,i.query||{})),r.set(`page`,this._encodePage(a.pagePath,a.query||{})),this._stringifySearchParams(r)}static buildRouteURL(e,t,n=typeof window<`u`?`${window.location.origin}${window.location.pathname}`:``){let r=this.buildRouteSearch(e,t);return`${n}${r?`?${r}`:``}`}static syncStack(e,t){let n=this.buildRouteSearch(e,t);history.replaceState(null,``,`${window.location.pathname}${n?`?${n}`:``}`)}static clear(){let e=new URLSearchParams(this._normalizeSearch(window.location.search));this.ROUTE_QUERY_KEYS.forEach(t=>e.delete(t));let t=this._stringifySearchParams(e);history.replaceState(null,``,`${window.location.pathname}${t?`?${t}`:``}`)}static parseSearch(e){let t=new URLSearchParams(this._normalizeSearch(e)),n=t.get(`appId`),r=t.get(`entry`),i=t.get(`page`)||r;if(!n||!r)return null;let a=this._decodePage(r);if(!a.pagePath)return null;let o=[a];if(i&&i!==r){let e=this._decodePage(i);e.pagePath&&o.push(e)}return{appId:n,stack:o}}static parseHash(e){if(!e||e.length<=1)return null;let t=e.slice(1).split(`|`);if(t.length<2)return null;let n=t[0],r=t.slice(1).map(e=>this._decodePage(e));return!n||r.length===0?null:{appId:n,stack:r}}static parse(e,t=typeof window<`u`?window.location.search:``){return this.parseSearch(t)||this.parseHash(e)}},V=`<div class="dimina-mini-app">
|
|
21
21
|
<!-- 右上方药丸按钮 -->
|
|
22
22
|
<ul class="dimina-mini-app-navigation__actions">
|
|
23
23
|
<li class="dimina-mini-app-navigation__actions-variable"></li>
|
|
@@ -63,12 +63,12 @@ var e=(e=0)=>t=>`\u001B[${t+e}m`,t=(e=0)=>t=>`\u001B[${38+e};5;${t}m`,n=(e=0)=>(
|
|
|
63
63
|
</div>
|
|
64
64
|
</div>
|
|
65
65
|
</div>
|
|
66
|
-
`,H=(e,t,n=560)=>new Promise(r=>{let i=setTimeout(r,n),a=n=>{(!t||n.propertyName===t)&&(clearTimeout(i),e.removeEventListener(`transitionend`,a),r())};e.addEventListener(`transitionend`,a)}),U=class{constructor(e){this.appInfo=e,this.id=`mini_app_${k()}`,this.parent=null,this.appId=e.appId,this.appConfig=null,this.bridgeList=[],this.jscore=new z(this),this.webviewsContainer=null,this.webviewAnimaEnd=!0,this.el=document.createElement(`div`),this.el.classList.add(`dimina-native-view`),this.toastInfo={dom:null,timer:null},this.color=null,this.apiRegistry={},this._extSubscriptions=new Map,this.tabBarConfig=null,this.tabBarPaths=[],this.tabBarBridges=new Map,this.currentTabPath=null,this.tabBarEl=null,this.tabBarHeight=0,this.tabBarBadges=[],this.tabBarRedDots=[],this.tabBarApiVisible=!0,this._modalStack=[],this._modalPendingTimers=new Set,this._destroyed=!1}_normalizePagePath(e){return e?e.startsWith(`/`)?e.slice(1):e:``}_isTabBarPage(e){return this.tabBarPaths.includes(this._normalizePagePath(e))}getCurrentPagePath(){return this.bridgeList[this.bridgeList.length-1]?.opts?.pagePath||this.appInfo.pagePath||this.appConfig?.app?.entryPagePath||``}getCurrentPageQuery(){return this.bridgeList[this.bridgeList.length-1]?.opts?.query||this.appInfo.query||{}}getEntryPagePath(){return this.appInfo.pagePath||this.appConfig?.app?.entryPagePath||``}async copyText(e,t){try{if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(e);else{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,`readonly`),t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select(),document.execCommand(`copy`),document.body.removeChild(t)}this.showToast({title:t,icon:`success`})}catch{this.showToast({title:`复制失败`,icon:`none`})}}closeMiniProgram(){B.clear(),this.closeMiniAppMenu(),Z.closeApp(this)}renderMiniAppMenu(){let e=this.el.querySelector(`.dimina-mini-app-menu__app-name`),t=this.el.querySelector(`.dimina-mini-app-menu__app-id`),n=this.el.querySelector(`.dimina-mini-app-menu__app-desc`),r=this.el.querySelector(`.dimina-mini-app-menu__app-logo-img`),i=this.el.querySelector(`.dimina-mini-app-menu__quick-actions`),a=this.getCurrentPagePath(),o=this.getEntryPagePath(),s=this.getCurrentPageQuery(),c=a||o||``,l=B.buildRouteURL(this.appId,[{pagePath:o,query:this.appInfo.query||{}},{pagePath:c,query:s}]);e.textContent=this.appInfo.name||`未命名小程序`,t.textContent=`AppID:${this.appId||`--`}`,n.textContent=`当前页面:${c||`--`}`,r.src=this.appInfo.logo||``;let u=[{label:`复制链接`,icon:`↗`,handler:()=>this.copyText(l,`链接已复制`)},{label:`重新进入`,icon:`↻`,handler:()=>{this.closeMiniAppMenu(),this.reLaunch({url:o||a})}},{label:`关闭小程序`,icon:`×`,danger:!0,handler:()=>this.closeMiniProgram()}];i.innerHTML=u.map((e,t)=>`
|
|
66
|
+
`,H=(e,t,n=560)=>new Promise(r=>{let i=setTimeout(r,n),a=n=>{(!t||n.propertyName===t)&&(clearTimeout(i),e.removeEventListener(`transitionend`,a),r())};e.addEventListener(`transitionend`,a)}),U=class{constructor(e){this.appInfo=e,this.id=`mini_app_${k()}`,this.parent=null,this.appId=e.appId,this.appConfig=null,this.bridgeList=[],this.jscore=new z(this),this.webviewsContainer=null,this.webviewAnimaEnd=!0,this.el=document.createElement(`div`),this.el.classList.add(`dimina-native-view`),this.toastInfo={dom:null,timer:null},this.color=null,this.apiRegistry={},this._extSubscriptions=new Map,this._windowResizeHandlers=new Set,this.tabBarConfig=null,this.tabBarPaths=[],this.tabBarBridges=new Map,this.currentTabPath=null,this.tabBarEl=null,this.tabBarHeight=0,this.tabBarBadges=[],this.tabBarRedDots=[],this.tabBarApiVisible=!0,this._modalStack=[],this._modalPendingTimers=new Set,this._destroyed=!1}_normalizePagePath(e){return e?e.startsWith(`/`)?e.slice(1):e:``}_isTabBarPage(e){return this.tabBarPaths.includes(this._normalizePagePath(e))}getCurrentPagePath(){return this.bridgeList[this.bridgeList.length-1]?.opts?.pagePath||this.appInfo.pagePath||this.appConfig?.app?.entryPagePath||``}getCurrentPageQuery(){return this.bridgeList[this.bridgeList.length-1]?.opts?.query||this.appInfo.query||{}}getEntryPagePath(){return this.appInfo.pagePath||this.appConfig?.app?.entryPagePath||``}async copyText(e,t){try{if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(e);else{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,`readonly`),t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select(),document.execCommand(`copy`),document.body.removeChild(t)}this.showToast({title:t,icon:`success`})}catch{this.showToast({title:`复制失败`,icon:`none`})}}closeMiniProgram(){B.clear(),this.closeMiniAppMenu(),Z.closeApp(this)}renderMiniAppMenu(){let e=this.el.querySelector(`.dimina-mini-app-menu__app-name`),t=this.el.querySelector(`.dimina-mini-app-menu__app-id`),n=this.el.querySelector(`.dimina-mini-app-menu__app-desc`),r=this.el.querySelector(`.dimina-mini-app-menu__app-logo-img`),i=this.el.querySelector(`.dimina-mini-app-menu__quick-actions`),a=this.getCurrentPagePath(),o=this.getEntryPagePath(),s=this.getCurrentPageQuery(),c=a||o||``,l=B.buildRouteURL(this.appId,[{pagePath:o,query:this.appInfo.query||{}},{pagePath:c,query:s}]);e.textContent=this.appInfo.name||`未命名小程序`,t.textContent=`AppID:${this.appId||`--`}`,n.textContent=`当前页面:${c||`--`}`,r.src=this.appInfo.logo||``;let u=[{label:`复制链接`,icon:`↗`,handler:()=>this.copyText(l,`链接已复制`)},{label:`重新进入`,icon:`↻`,handler:()=>{this.closeMiniAppMenu(),this.reLaunch({url:o||a})}},{label:`关闭小程序`,icon:`×`,danger:!0,handler:()=>this.closeMiniProgram()}];i.innerHTML=u.map((e,t)=>`
|
|
67
67
|
<button type="button" class="dimina-mini-app-menu__quick-action${e.danger?` is-danger`:``}" data-quick-index="${t}">
|
|
68
68
|
<span class="dimina-mini-app-menu__quick-action-icon">${e.icon}</span>
|
|
69
69
|
<span class="dimina-mini-app-menu__quick-action-label">${e.label}</span>
|
|
70
70
|
</button>
|
|
71
|
-
`).join(``),i.querySelectorAll(`[data-quick-index]`).forEach((e,t)=>{e.onclick=()=>u[t].handler()})}openMiniAppMenu(){let e=this.el.querySelector(`.dimina-mini-app-menu__mask`),t=this.el.querySelector(`.dimina-mini-app-menu`);this.renderMiniAppMenu(),e.style.display=`block`,requestAnimationFrame(()=>{e.classList.add(`show`),t.classList.add(`show`)})}closeMiniAppMenu(){let e=this.el.querySelector(`.dimina-mini-app-menu__mask`),t=this.el.querySelector(`.dimina-mini-app-menu`);e.classList.remove(`show`),t.classList.remove(`show`)}registerApi(e,t){this.apiRegistry[e]=t}invokeApi(e,t){let n=this.apiRegistry[e];n?n.call(this,t):typeof this[e]==`function`?this[e](t):this._handleExtCall(e,t)}viewDidLoad(){this.initPageFrame(),this.webviewsContainer=this.el.querySelector(`.dimina-mini-app__webviews`),this.showLaunchScreen(),this.bindMoreEvent(),this.bindCloseEvent(),this.initApp()}async initApp(){await this.jscore.init();let e=`main`,t=`${this.appInfo.appId}/${e}/app-config.json`,[n]=await Promise.all([N(`/${t}`),A(560)]);if(!n)return;this.appConfig=JSON.parse(n),this._initTabBar();let r=this.appInfo.pagePath||this.appConfig.app.entryPagePath,i=this.appConfig.modules[r],a=P(this.appConfig.app,i);this.updateTargetPageColorStyle(a);let o=await this.createBridge({pagePath:r,query:this.appInfo.query,scene:this.appInfo.scene,jscore:this.jscore,isRoot:!0,root:e,appId:this.appInfo.appId,pages:this.appConfig.app.pages,configInfo:a});if(this.bridgeList.push(o),this._isTabBarPage(r)){let e=this._normalizePagePath(r);this.tabBarBridges.set(e,o),this.currentTabPath=e,this._setTabBarVisible(!0),this._updateTabBarSelection(e)}o.start(),this.appInfo.restoreStack&&this.appInfo.restoreStack.length>1&&await this.restorePageStack(this.appInfo.restoreStack.slice(1)),this._syncHash(),this.hideLaunchScreen()}async restorePageStack(e){for(let t=0;t<e.length;t++){let{pagePath:n,query:r}=e[t],i=t===e.length-1,a=n.startsWith(`/`)?n.slice(1):n,o=this.appConfig.modules[a],s=P(this.appConfig.app,o),c=await this.createBridge({pagePath:a,query:r,scene:this.appInfo.scene,jscore:this.jscore,isRoot:!1,root:o?.root||`main`,appId:this.appInfo.appId,pages:this.appConfig.app.pages,configInfo:s}),l=this.bridgeList[this.bridgeList.length-1];l.webview.el.classList.remove(`dimina-native-view--instage`),l.webview.el.classList.add(`dimina-native-view--slide-out`),this.bridgeList.push(c),c.webview.el.style.zIndex=this.bridgeList.length+1,c.webview.el.classList.remove(`dimina-native-view--before-enter`),i||c.webview.el.classList.add(`dimina-native-view--slide-out`),c.start()}if(e.length>0){let e=this.bridgeList[this.bridgeList.length-1],t=this.appConfig.modules[e.opts.pagePath],n=P(this.appConfig.app,t);this.updateTargetPageColorStyle(n),this._isTabBarPage(e.opts.pagePath)||this._setTabBarVisible(!1)}}_syncHash(){let e=this.bridgeList.map(e=>({pagePath:e.opts.pagePath.startsWith(`/`)?e.opts.pagePath.slice(1):e.opts.pagePath,query:e.opts.query||{}}));B.syncStack(this.appId,e)}async createBridge(e){let{jscore:t,configInfo:n,isRoot:r,appId:i,pagePath:a,query:o,scene:s,pages:c,root:l}=e,u=new L({jscore:t,configInfo:n,isRoot:r,appId:i,pagePath:a,query:o,scene:s,pages:c,root:l});return u.parent=this,await u.init(),u}onPresentIn(){let e=this.bridgeList[this.bridgeList.length-1];e?.appShow(),e?.pageShow()}onPresentOut(){let e=this.bridgeList[this.bridgeList.length-1];e?.appHide(),e?.pageHide()}initPageFrame(){this.el.innerHTML=V}updateTargetPageColorStyle(e){let{navigationBarTextStyle:t}=e;this.updateActionColorStyle(t)}showLaunchScreen(){let e=this.el.querySelector(`.dimina-mini-app__launch-screen`),t=this.el.querySelector(`.dimina-mini-app__name`),n=this.el.querySelector(`.dimina-mini-app__logo-img-url`);this.updateActionColorStyle(`black`),t.innerHTML=this.appInfo.name,n.src=this.appInfo.logo,e.style.display=`block`}hideLaunchScreen(){let e=this.el.querySelector(`.dimina-mini-app__launch-screen`);e.style.display=`none`}updateActionColorStyle(e){this.color=e;let t=this.el.querySelector(`.dimina-mini-app-navigation__actions`);e===`white`?(t.classList.remove(`dimina-mini-app-navigation__actions--black`),t.classList.add(`dimina-mini-app-navigation__actions--white`)):e===`black`&&(t.classList.remove(`dimina-mini-app-navigation__actions--white`),t.classList.add(`dimina-mini-app-navigation__actions--black`)),this.parent.updateStatusBarColor(e)}restoreColorStyle(){this.updateActionColorStyle(this.color)}createCallbackFunction(e){if(e)return t=>{this.jscore.postMessage({type:`triggerCallback`,body:{id:e,args:t}})}}_createApiCallbacks({success:e,fail:t,complete:n}={}){return{onSuccess:this.createCallbackFunction(e),onFail:this.createCallbackFunction(t),onComplete:this.createCallbackFunction(n)}}async navigateTo(e){let{url:t,success:n,fail:r,complete:i}=e,{query:a,pagePath:o}=j(t),s=this.createCallbackFunction(n),c=this.createCallbackFunction(r),l=this.createCallbackFunction(i);if(this._isTabBarPage(o)){c?.({errMsg:`navigateTo:fail can not navigateTo a tabbar page`}),l?.();return}if(!this.webviewAnimaEnd)return;this.webviewAnimaEnd=!1;let u=this.appConfig.modules[o],d=P(this.appConfig.app,u);this.updateTargetPageColorStyle(d);let f=await this.createBridge({pagePath:o,query:a,scene:this.appInfo.scene,jscore:this.jscore,isRoot:!1,root:u?.root||`main`,appId:this.appInfo.appId,pages:this.appConfig.app.pages,configInfo:d}),p=this.bridgeList[this.bridgeList.length-1],m=p.webview;this.bridgeList.push(f),f.start(),this._syncHash(),m.el.classList.remove(`dimina-native-view--instage`),m.el.classList.add(`dimina-native-view--slide-out`),m.el.classList.add(`dimina-native-view--linear-anima`),p?.pageHide(),this._setTabBarVisible(!1),f.webview.el.style.zIndex=this.bridgeList.length+1,f.webview.el.classList.add(`dimina-native-view--enter-anima`),f.webview.el.classList.add(`dimina-native-view--instage`),await H(f.webview.el,`transform`),this.webviewAnimaEnd=!0,m.el.classList.remove(`dimina-native-view--linear-anima`),f.webview.el.classList.remove(`dimina-native-view--before-enter`),f.webview.el.classList.remove(`dimina-native-view--enter-anima`),f.webview.el.classList.remove(`dimina-native-view--instage`),s?.({errMsg:`navigateTo:ok`}),l?.()}reLaunch(e){if(!this.webviewAnimaEnd)return;this.webviewAnimaEnd=!1;let{url:t,success:n,fail:r,complete:i}=e,{query:a,pagePath:o}=j(t),s=this.createCallbackFunction(n),c=this.createCallbackFunction(r),l=this.createCallbackFunction(i);try{let e=this.appConfig.modules[o],t=P(this.appConfig.app,e);this.updateTargetPageColorStyle(t);let n=new Set([...this.bridgeList,...this.tabBarBridges.values()]);for(let e of n)e.destroy(),e.webview?.el?.remove();this.bridgeList.length=0,this.tabBarBridges.clear(),this.currentTabPath=null,this.webviewsContainer&&(this.webviewsContainer.innerHTML=``),this.createBridge({pagePath:o,query:a,scene:this.appInfo.scene,jscore:this.jscore,isRoot:!0,root:e?.root||`main`,appId:this.appInfo.appId,pages:this.appConfig.app.pages,configInfo:t}).then(e=>{if(this.bridgeList.push(e),this._isTabBarPage(o)){let t=this._normalizePagePath(o);this.tabBarBridges.set(t,e),this.currentTabPath=t,this._setTabBarVisible(!0),this._updateTabBarSelection(t)}else this._setTabBarVisible(!1);e.start(),this._syncHash(),e.webview.el.style.zIndex=1,this.webviewAnimaEnd=!0,s?.({errMsg:`reLaunch:ok`}),l?.()}).catch(e=>{c?.({errMsg:`reLaunch:fail ${e.message}`}),l?.(),this.webviewAnimaEnd=!0})}catch(e){c?.({errMsg:`reLaunch:fail ${e.message}`}),l?.(),this.webviewAnimaEnd=!0}}applyUpdate(){this.reLaunch({url:this.getEntryPagePath()})}redirectTo(e){let{url:t,success:n,fail:r,complete:i}=e,{query:a,pagePath:o}=j(t),s=this.createCallbackFunction(n),c=this.createCallbackFunction(r),l=this.createCallbackFunction(i);if(this._isTabBarPage(o)){c?.({errMsg:`redirectTo:fail can not redirectTo a tabbar page`}),l?.();return}if(!this.webviewAnimaEnd)return;this.webviewAnimaEnd=!1;let u=this.bridgeList[this.bridgeList.length-1],d=this._normalizePagePath(u.opts.pagePath),f=this.appConfig.modules[o],p=P(this.appConfig.app,f);this.updateTargetPageColorStyle(p),u.destroy(),u.opts={...u.opts,pagePath:o,query:a,configInfo:p},u.resetStatus(),u.start(),this._syncHash(),this.tabBarBridges.get(d)===u&&(this.tabBarBridges.delete(d),this.currentTabPath===d&&(this.currentTabPath=null)),this._setBridgeTabBarInset(u,!1),this._setTabBarVisible(!1),this.webviewAnimaEnd=!0,s?.({errMsg:`redirectTo:ok`}),l?.()}async navigateBack(){if(this.bridgeList.length<2||!this.webviewAnimaEnd)return;this.webviewAnimaEnd=!1;let e=this.bridgeList.pop(),t=this.bridgeList[this.bridgeList.length-1],n=this.appConfig.modules[t.opts.pagePath],r=P(this.appConfig.app,n);if(this.updateTargetPageColorStyle(r),e.webview.el.classList.add(`dimina-native-view--before-enter`),e.webview.el.classList.add(`dimina-native-view--enter-anima`),e?.destroy(),t.webview.el.classList.remove(`dimina-native-view--slide-out`),t.webview.el.classList.add(`dimina-native-view--instage`),t.webview.el.classList.add(`dimina-native-view--enter-anima`),t?.pageShow(),this._syncHash(),this._isTabBarPage(t.opts.pagePath)){let e=this._normalizePagePath(t.opts.pagePath);this.currentTabPath=e,this._setTabBarVisible(!0),this._updateTabBarSelection(e)}await H(t.webview.el,`transform`),this.webviewAnimaEnd=!0,t.webview.el.classList.remove(`dimina-native-view--enter-anima`),t.webview.el.classList.remove(`dimina-native-view--instage`),e.webview.el.parentNode.removeChild(e.webview.el)}async switchTab(e){let{url:t,success:n,fail:r,complete:i}=e,{query:a,pagePath:o}=j(t),s=this._normalizePagePath(o),c=this.createCallbackFunction(n),l=this.createCallbackFunction(r),u=this.createCallbackFunction(i);if(!this._isTabBarPage(s)){l?.({errMsg:`switchTab:fail not a tabBar page: ${s}`}),u?.();return}if(!this.webviewAnimaEnd){l?.({errMsg:`switchTab:fail busy`}),u?.();return}if(this.currentTabPath===s&&this.bridgeList.length===1){this._setTabBarVisible(!0),this._updateTabBarSelection(s),c?.({errMsg:`switchTab:ok`}),u?.();return}this.webviewAnimaEnd=!1;try{let e=this.currentTabPath,t=e?this.tabBarBridges.get(e):null,n=!!t&&this.bridgeList.length===1&&this.bridgeList[0]===t;for(;this.bridgeList.length>0;){let e=this.bridgeList[this.bridgeList.length-1];if(this._isTabBarPage(e.opts.pagePath))break;e.pageHide(),e.destroy(),e.webview?.el?.remove(),this.bridgeList.pop()}if(t&&t!==this.tabBarBridges.get(s)){n&&t.pageHide(),t.webview?.el&&(t.webview.el.style.display=`none`);let e=this.bridgeList.indexOf(t);e>=0&&this.bridgeList.splice(e,1)}let r=this.tabBarBridges.get(s),i=this.appConfig.modules[s],o=P(this.appConfig.app,i);this.updateTargetPageColorStyle(o),r||(r=await this.createBridge({pagePath:s,query:a,scene:this.appInfo.scene,jscore:this.jscore,isRoot:!0,root:i?.root||`main`,appId:this.appInfo.appId,pages:this.appConfig.app.pages,configInfo:o}),this.tabBarBridges.set(s,r),r.start());let l=r.webview.el;this._setBridgeTabBarInset(r,!0),l.classList.remove(`dimina-native-view--before-enter`,`dimina-native-view--slide-out`,`dimina-native-view--enter-anima`,`dimina-native-view--linear-anima`,`dimina-native-view--instage`),l.style.display=``,l.style.zIndex=1,this.bridgeList.includes(r)||this.bridgeList.push(r),this.currentTabPath=s,r.pageShow(),this._setTabBarVisible(!0),this._updateTabBarSelection(s),this._syncHash(),c?.({errMsg:`switchTab:ok`})}catch(e){l?.({errMsg:`switchTab:fail ${e.message}`})}finally{this.webviewAnimaEnd=!0,u?.()}}_initTabBar(){let e=this.appConfig?.app?.tabBar;!e||!Array.isArray(e.list)||e.list.length===0||(this.tabBarConfig=e,this.tabBarPaths=e.list.map(e=>this._normalizePagePath(e.pagePath)),this.tabBarBadges=e.list.map(()=>``),this.tabBarRedDots=e.list.map(()=>!1),this.tabBarApiVisible=!0,this._renderTabBar())}_renderTabBar(){if(this.tabBarEl=this.el.querySelector(`.dimina-mini-app__tabbar`),!this.tabBarEl)return;let{color:e,backgroundColor:t,borderStyle:n,list:r}=this.tabBarConfig,i=this._sanitizeCssColor(e)||`#999999`,a=this._sanitizeCssColor(t)||`#ffffff`;this.tabBarEl.textContent=``;let o=document.createElement(`div`);o.className=`dimina-tabbar`,o.style.backgroundColor=a,o.style.borderTopColor=this._getTabBarBorderColor(n),r.forEach((e,t)=>{let n=this._normalizePagePath(e.pagePath),r=document.createElement(`div`);r.className=`dimina-tabbar-item`,r.dataset.path=n,r.dataset.index=String(t);let a=this._resolveTabBarIcon(e.iconPath);a&&r.appendChild(this._createTabBarIcon(a,`dimina-tabbar-icon-default`));let s=this._resolveTabBarIcon(e.selectedIconPath);s&&r.appendChild(this._createTabBarIcon(s,`dimina-tabbar-icon-selected`));let c=document.createElement(`span`);c.className=`dimina-tabbar-text`,c.style.color=i,c.textContent=e.text||``,r.appendChild(c);let l=document.createElement(`span`);l.className=`dimina-tabbar-badge`,l.hidden=!0,r.appendChild(l);let u=document.createElement(`span`);u.className=`dimina-tabbar-red-dot`,u.hidden=!0,r.appendChild(u),o.appendChild(r)}),this.tabBarEl.appendChild(o),this.tabBarEl.addEventListener(`click`,e=>{let t=e.target.closest(`.dimina-tabbar-item`);if(!t)return;let n=t.dataset.path;n&&n!==this.currentTabPath&&this.switchTab({url:`/${n}`})}),typeof ResizeObserver<`u`&&(this._tabBarResizeObserver?.disconnect(),this._tabBarResizeObserver=new ResizeObserver(()=>this._syncTabBarHeightVar()),this._tabBarResizeObserver.observe(this.tabBarEl))}_createTabBarIcon(e,t){let n=document.createElement(`img`);return n.className=`dimina-tabbar-icon ${t}`,n.src=e,n.alt=``,n.addEventListener(`error`,()=>{n.style.display=`none`}),n}_sanitizeCssColor(e){if(!e||typeof e!=`string`)return``;let t=e.trim();return t.length===0||t.length>64?``:/[<>"';{}()\\]/.test(t)?/^(?:rgb|rgba|hsl|hsla)\(\s*[\d.,%\s/-]+\)$/i.test(t)?t:``:t}_getTabBarBorderColor(e){return e===`white`?`#ffffff`:`#e0e0e0`}_getTabBarHeight(){if(!this.tabBarEl)return this.tabBarHeight;let e=this.tabBarEl.getBoundingClientRect().height;if(!e&&this.tabBarEl.style.display===`none`){let t=this.tabBarEl.style.display,n=this.tabBarEl.style.visibility;this.tabBarEl.style.visibility=`hidden`,this.tabBarEl.style.display=`block`,e=this.tabBarEl.getBoundingClientRect().height,this.tabBarEl.style.display=t,this.tabBarEl.style.visibility=n}return e>0&&(this.tabBarHeight=e),this.tabBarHeight}_syncTabBarHeightVar(){let e=this._getTabBarHeight();this.el.style.setProperty(`--dimina-tabbar-height`,`${e}px`),this._syncTabBarBridgeInsets()}_setBridgeTabBarInset(e,t){let n=e?.webview?.el;if(n){if(!t){n.style.removeProperty(`bottom`);return}n.style.bottom=`${this._getTabBarHeight()}px`}}_syncTabBarBridgeInsets(){for(let e of this.tabBarBridges.values())this._setBridgeTabBarInset(e,!0)}_joinBaseUrl(...e){return`${`/`.endsWith(`/`)?`/`:`//`}${e.map(e=>String(e).trim().replace(/^\/+|\/+$/g,``)).filter(Boolean).join(`/`)}`}_resolveTabBarIcon(e){if(!e||typeof e!=`string`)return null;let t=e.trim();if(!t)return null;if(/^(?:data:|blob:|https?:|\/\/)/i.test(t))return t;let n=t.replace(/^\/+/,``).replace(/^\.\//,``),r=`${this.appId}/`;return n.startsWith(r)?this._joinBaseUrl(n):this._joinBaseUrl(this.appId,`main`,n)}_setTabBarVisible(e){if(!this.tabBarEl)return;let t=this.bridgeList[this.bridgeList.length-1],n=this._normalizePagePath(t?.opts?.pagePath),r=!!n&&n===this.currentTabPath&&this._isTabBarPage(n),i=e&&this.tabBarApiVisible&&r;this.tabBarEl.style.display=i?`block`:`none`,this._syncTabBarHeightVar()}_updateTabBarSelection(e){if(!this.tabBarEl||!this.tabBarConfig)return;let t=this.tabBarConfig.color||`#999999`,n=this.tabBarConfig.selectedColor||`#1890ff`;this.tabBarEl.querySelectorAll(`.dimina-tabbar-item`).forEach(r=>{let i=r.getAttribute(`data-path`)===e,a=r.querySelector(`.dimina-tabbar-text`),o=r.querySelector(`.dimina-tabbar-icon-default`),s=r.querySelector(`.dimina-tabbar-icon-selected`);a&&(a.style.color=i?n:t),o&&(o.style.display=i?`none`:`block`),s&&(s.style.display=i?`block`:`none`),r.classList.toggle(`dimina-tabbar-item--selected`,i)})}_getTabBarItemEl(e){return this.tabBarEl?.querySelector(`.dimina-tabbar-item[data-index="${e}"]`)||null}_validateTabBarIndex(e,t,n,r){let i=this.tabBarConfig?.list?.length||0;if(!i||!this.tabBarEl)return n?.({errMsg:`${e}:fail tabBar not configured`}),r?.(),!1;let a=Number(t);return t==null||!Number.isInteger(a)||a<0||a>=i?(n?.({errMsg:`${e}:fail invalid index ${t}`}),r?.(),!1):!0}_replaceTabBarItemIcons(e,t){let n=e.querySelector(`.dimina-tabbar-text`);e.querySelectorAll(`.dimina-tabbar-icon-default, .dimina-tabbar-icon-selected`).forEach(e=>e.remove());let r=this._resolveTabBarIcon(t.iconPath);r&&e.insertBefore(this._createTabBarIcon(r,`dimina-tabbar-icon-default`),n);let i=this._resolveTabBarIcon(t.selectedIconPath);i&&e.insertBefore(this._createTabBarIcon(i,`dimina-tabbar-icon-selected`),n)}setTabBarStyle(e={}){let{color:t,selectedColor:n,backgroundColor:r,borderStyle:i,success:a,fail:o,complete:s}=e,c=this.createCallbackFunction(a),l=this.createCallbackFunction(o),u=this.createCallbackFunction(s);if(!this.tabBarConfig||!this.tabBarEl){l?.({errMsg:`setTabBarStyle:fail tabBar not configured`}),u?.();return}let d=i===`black`||i===`white`?i:null,f=t===void 0?null:this._sanitizeCssColor(t),p=n===void 0?null:this._sanitizeCssColor(n),m=r===void 0?null:this._sanitizeCssColor(r);f&&(this.tabBarConfig.color=f),p&&(this.tabBarConfig.selectedColor=p),m&&(this.tabBarConfig.backgroundColor=m),d&&(this.tabBarConfig.borderStyle=d);let h=this.tabBarEl.querySelector(`.dimina-tabbar`);h&&(m&&(h.style.backgroundColor=m),d&&(h.style.borderTopColor=this._getTabBarBorderColor(d))),this._updateTabBarSelection(this.currentTabPath),c?.({errMsg:`setTabBarStyle:ok`}),u?.()}setTabBarItem(e={}){let{index:t,text:n,iconPath:r,selectedIconPath:i}=e,{onSuccess:a,onFail:o,onComplete:s}=this._createApiCallbacks(e);if(!this._validateTabBarIndex(`setTabBarItem`,t,o,s))return;let c=Number(t),l=this.tabBarConfig.list[c],u={...l,text:n===void 0?l.text:n,iconPath:r===void 0?l.iconPath:r,selectedIconPath:i===void 0?l.selectedIconPath:i};this.tabBarConfig.list[c]=u;let d=this._getTabBarItemEl(c);if(d){let e=d.querySelector(`.dimina-tabbar-text`);e&&(e.textContent=u.text||``),(r!==void 0||i!==void 0)&&this._replaceTabBarItemIcons(d,u),this._updateTabBarSelection(this.currentTabPath)}a?.({errMsg:`setTabBarItem:ok`}),s?.()}showTabBar(e={}){let{onSuccess:t,onComplete:n}=this._createApiCallbacks(e);this.tabBarApiVisible=!0,this._setTabBarVisible(!0),t?.({errMsg:`showTabBar:ok`}),n?.()}hideTabBar(e={}){let{onSuccess:t,onComplete:n}=this._createApiCallbacks(e);this.tabBarApiVisible=!1,this._setTabBarVisible(!1),t?.({errMsg:`hideTabBar:ok`}),n?.()}setTabBarBadge(e={}){let{index:t,text:n=``}=e,{onSuccess:r,onFail:i,onComplete:a}=this._createApiCallbacks(e);if(!this._validateTabBarIndex(`setTabBarBadge`,t,i,a))return;let o=Number(t);this.tabBarBadges[o]=String(n),this.tabBarRedDots[o]=!1;let s=this._getTabBarItemEl(o),c=s?.querySelector(`.dimina-tabbar-badge`),l=s?.querySelector(`.dimina-tabbar-red-dot`);c&&(c.textContent=this.tabBarBadges[o],c.hidden=this.tabBarBadges[o].length===0),l&&(l.hidden=!0),r?.({errMsg:`setTabBarBadge:ok`}),a?.()}removeTabBarBadge(e={}){let{index:t}=e,{onSuccess:n,onFail:r,onComplete:i}=this._createApiCallbacks(e);if(!this._validateTabBarIndex(`removeTabBarBadge`,t,r,i))return;let a=Number(t);this.tabBarBadges[a]=``;let o=this._getTabBarItemEl(a)?.querySelector(`.dimina-tabbar-badge`);o&&(o.textContent=``,o.hidden=!0),n?.({errMsg:`removeTabBarBadge:ok`}),i?.()}showTabBarRedDot(e={}){let{index:t}=e,{onSuccess:n,onFail:r,onComplete:i}=this._createApiCallbacks(e);if(!this._validateTabBarIndex(`showTabBarRedDot`,t,r,i))return;let a=Number(t);this.tabBarRedDots[a]=!0,this.tabBarBadges[a]=``;let o=this._getTabBarItemEl(a),s=o?.querySelector(`.dimina-tabbar-badge`),c=o?.querySelector(`.dimina-tabbar-red-dot`);s&&(s.textContent=``,s.hidden=!0),c&&(c.hidden=!1),n?.({errMsg:`showTabBarRedDot:ok`}),i?.()}hideTabBarRedDot(e={}){let{index:t}=e,{onSuccess:n,onFail:r,onComplete:i}=this._createApiCallbacks(e);if(!this._validateTabBarIndex(`hideTabBarRedDot`,t,r,i))return;let a=Number(t);this.tabBarRedDots[a]=!1;let o=this._getTabBarItemEl(a)?.querySelector(`.dimina-tabbar-red-dot`);o&&(o.hidden=!0),n?.({errMsg:`hideTabBarRedDot:ok`}),i?.()}navigateToMiniProgram(e){let{appId:t,path:n}=e;Z.openApp({appId:t,path:n,scene:1037},this.parent)}bindMoreEvent(){let e=this.el.querySelector(`.dimina-mini-app-navigation__actions-variable`),t=this.el.querySelector(`.dimina-mini-app-menu__mask`),n=this.el.querySelector(`.dimina-mini-app-menu`),r=this.el.querySelector(`.dimina-mini-app-menu__footer-btn--cancel`);t.addEventListener(`transitionend`,()=>{t.classList.contains(`show`)||(t.style.display=`none`)}),e.onclick=()=>this.openMiniAppMenu(),t.onclick=()=>this.closeMiniAppMenu(),r.onclick=()=>this.closeMiniAppMenu(),n.onclick=e=>e.stopPropagation()}bindCloseEvent(){let e=this.el.querySelector(`.dimina-mini-app-navigation__actions-close`);e.onclick=()=>{this.closeMiniProgram()}}destroy(){this._destroyed=!0;for(let e of this._extSubscriptions.values())e?.();this._extSubscriptions.clear(),this._tabBarResizeObserver?.disconnect(),this._tabBarResizeObserver=null;for(let e of this._modalPendingTimers)clearTimeout(e);this._modalPendingTimers.clear();for(let e of this._modalStack)e.mask?.remove(),e.dialog?.remove();this._modalStack.length=0,this.hideToast({}),Z.popView(),this.jscore.destroy()}getNetworkType(e){let{success:t}=e;this.createCallbackFunction(t)?.({networkType:`wifi`})}request({url:e,data:t,header:n={},timeout:r=0,method:i=`GET`,dataType:a=`json`,responseType:o=`text`,success:s,fail:c,complete:l}){let u={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({url:e,data:t,header:n,timeout:r,method:i,dataType:a,responseType:o})},d=this.createCallbackFunction(s),f=this.createCallbackFunction(c),p=this.createCallbackFunction(l);fetch(`http://localhost:7788/proxy`,u).then(e=>{if(!e.ok){let t=Error(e.statusText);throw t.code=e.status,t}let t={};switch(e.headers.forEach((e,n)=>{t[n]=e}),a){case`json`:return e.json().then(n=>({data:JSON.parse(n),header:t,statusCode:e.status}));case`arraybuffer`:return e.arrayBuffer().then(n=>({data:n,header:t,statusCode:e.status}));default:return e.text().then(n=>({data:n,header:t,statusCode:e.status}))}}).then(e=>{d?.(e)}).catch(e=>{f?.({errMsg:e.message,errno:e.code})}).finally(()=>{p?.()})}getSystemInfoAsync(e){let t=this.parent.parent.root.querySelector(`.iphone__status-bar`).getBoundingClientRect(),n=this.parent.el.querySelector(`.dimina-native-webview__root`).getBoundingClientRect(),{success:r,complete:i}=e,a=this.createCallbackFunction(r),o=this.createCallbackFunction(i);a?.({statusBarHeight:t.height,brand:`devtools`,mode:`default`,model:`web`,platform:`devtools`,system:`web`,deviceOrientation:`portrait`,SDKVersion:`3.0.0`,language:`zh_CN`,wifiEnabled:!0,safeArea:{width:n.width,height:n.height,top:n.top,bottom:n.bottom,left:n.left,right:n.right}}),o?.()}getMenuButtonBoundingClientRect(){let e=this.el.querySelector(`.dimina-mini-app-navigation__actions`).getBoundingClientRect(),t=(this.parent.parent.root.querySelector(`.iphone__status-bar`)?.getBoundingClientRect().height||20)+4,n=t+e.height;return{top:t,right:e.right,bottom:n,left:e.left,width:e.width,height:e.height,x:e.x,y:t}}getHostEnvSnapshot(){return{menuRect:this.getMenuButtonBoundingClientRect(),systemInfo:this.getSystemInfoSync()}}getSystemInfoSync(){let e=this.parent.parent.root.querySelector(`.iphone__status-bar`),t=this.parent.el.querySelector(`.dimina-native-webview__root`)?.getBoundingClientRect(),n=t?.width||this.el.clientWidth||375,r=t?.height||this.el.clientHeight||667,i=e?.getBoundingClientRect().height||20;return{brand:`devtools`,model:`web`,platform:`devtools`,system:`web`,SDKVersion:`3.0.0`,pixelRatio:globalThis.devicePixelRatio||1,screenWidth:n,screenHeight:r,windowWidth:n,windowHeight:r,statusBarHeight:i,safeArea:{left:0,right:n,top:i,bottom:r,width:n,height:Math.max(r-i,0)},enableDebug:!1,host:{appId:``},language:navigator.language||`zh_CN`,version:``,theme:globalThis.matchMedia?.(`(prefers-color-scheme: dark)`)?.matches?`dark`:`light`,fontSizeScaleFactor:1,fontSizeSetting:16}}showToast(e={}){let{title:t=``,duration:n=1500,icon:r=`success`,mask:i=!1,success:a,complete:o}=e;if(!t)return;this.hideToast({});let s=this.createCallbackFunction(a),c=this.createCallbackFunction(o),l=null;i&&(l=document.createElement(`div`),l.className=`dimina-toast-mask`,this.el.appendChild(l));let u=document.createElement(`div`);u.className=`dimina-toast dimina-toast--${r}`,r===`none`&&u.classList.add(`dimina-toast--text-only`);let d=document.createElement(`p`);d.textContent=String(t),u.appendChild(d),this.el.appendChild(u),this.toastInfo.dom=u,this.toastInfo.maskEl=l,this.toastInfo.timer=setTimeout(()=>{u.remove(),l?.remove(),this.toastInfo.dom===u&&(this.toastInfo.dom=null,this.toastInfo.maskEl=null,this.toastInfo.timer=null)},n),s?.(),c?.()}hideToast(e={}){let{success:t,complete:n}=e,r=this.createCallbackFunction(t),i=this.createCallbackFunction(n);this.toastInfo.dom&&(this.toastInfo.dom.remove(),this.toastInfo.dom=null),this.toastInfo.maskEl&&(this.toastInfo.maskEl.remove(),this.toastInfo.maskEl=null),this.toastInfo.timer&&(clearTimeout(this.toastInfo.timer),this.toastInfo.timer=null),r?.(),i?.()}showLoading(e={}){this.showToast({...e,icon:`loading`})}hideLoading(e={}){this.hideToast(e)}showModal(e){if(this._destroyed)return;let t=this._mountModal(e||{});this._modalStack.push(t),this._updateModalView(),t.mask.classList.add(`show`);let n=setTimeout(()=>{this._modalPendingTimers.delete(n),!this._destroyed&&this._modalStack.includes(t)&&t.dialog.classList.add(`show`)},100);this._modalPendingTimers.add(n)}_updateModalView(){let e=this._modalStack.length-1;for(let t=0;t<this._modalStack.length;t++){let n=this._modalStack[t];t===e?(n.mask.classList.remove(`dimina-modal--occluded`),n.dialog.classList.remove(`dimina-modal--occluded`)):(n.mask.classList.add(`dimina-modal--occluded`),n.dialog.classList.add(`dimina-modal--occluded`))}}_mountModal(e){let{title:t=``,content:n=``,showCancel:r=!0,cancelText:i=`取消`,cancelColor:a=`#000`,confirmText:o=`确定`,confirmColor:s=`#576b95`,success:c,complete:l}=e,u=this.createCallbackFunction(c),d=this.createCallbackFunction(l),f=document.createElement(`div`);f.className=`dimina-dialog-mask`;let p=document.createElement(`div`);p.className=`dimina-dialog`;let m=this._modalStack.length;if(f.style.zIndex=String(1100+m*20),p.style.zIndex=String(1110+m*20),t){let e=document.createElement(`h2`);e.className=`dimina-dialog__title`,e.textContent=String(t),p.appendChild(e)}if(n){let e=document.createElement(`p`);e.className=`dimina-dialog__content`,e.textContent=String(n),p.appendChild(e)}let h=document.createElement(`div`);h.className=`dimina-dialog__buttons`;let g=!1,_={mask:f,dialog:p,close:null},v=e=>{if(g)return;g=!0;let t=this._modalStack.indexOf(_);t>=0&&this._modalStack.splice(t,1),this._modalStack.length===0?(f.classList.remove(`show`),p.classList.remove(`show`),setTimeout(()=>{f.remove(),p.remove()},200)):(f.remove(),p.remove()),this._updateModalView(),u?.(e),d?.()};if(_.close=v,r){let e=document.createElement(`button`);e.type=`button`,e.className=`dimina-dialog__button`,e.style.color=a,e.textContent=String(i),e.addEventListener(`click`,()=>{v({cancel:!0,confirm:!1,errMsg:`showModal:ok`})}),h.appendChild(e)}let y=document.createElement(`button`);return y.type=`button`,y.className=`dimina-dialog__button`,y.style.color=s,y.textContent=String(o),y.addEventListener(`click`,()=>{v({cancel:!1,confirm:!0,errMsg:`showModal:ok`})}),h.appendChild(y),p.appendChild(h),this.el.appendChild(f),this.el.appendChild(p),_}showActionSheet(e){let{itemList:t=[],itemColor:n=`#000`,success:r,fail:i,complete:a}=e||{};if(!Array.isArray(t)||t.length===0){i&&this.createCallbackFunction(i)({errMsg:`showActionSheet:fail`}),a&&this.createCallbackFunction(a)();return}let o=document.createElement(`div`);o.className=`dimina-action-sheet-mask`;let s=document.createElement(`div`);s.className=`dimina-action-sheet`;let c=()=>{o.remove(),s.remove()};t.forEach((e,t)=>{let i=document.createElement(`div`);i.className=`dimina-action-sheet-item`,i.style.color=n,i.textContent=e,i.onclick=()=>{c(),r&&this.createCallbackFunction(r)({tapIndex:t}),a&&this.createCallbackFunction(a)()},s.appendChild(i)});let l=document.createElement(`div`);l.className=`dimina-action-sheet-cancel`,l.textContent=`取消`,l.onclick=()=>{c(),i&&this.createCallbackFunction(i)({errMsg:`showActionSheet:fail cancel`}),a&&this.createCallbackFunction(a)()},s.appendChild(l),o.onclick=c,this.el.appendChild(o),this.el.appendChild(s),requestAnimationFrame(()=>requestAnimationFrame(()=>{s.classList.add(`show`),o.classList.add(`show`)}))}setNavigationBarTitle(e){let{title:t,success:n,fail:r,complete:i}=e,a=this.createCallbackFunction(n),o=this.createCallbackFunction(r),s=this.createCallbackFunction(i);try{let e=this.bridgeList[this.bridgeList.length-1].webview.el.querySelector(`.dimina-native-webview__navigation-title`);e?(e.textContent=t||``,a?.({errMsg:`setNavigationBarTitle:ok`})):o?.({errMsg:`setNavigationBarTitle:fail Navigation title element not found`})}catch(e){o?.({errMsg:`setNavigationBarTitle:fail ${e.message}`})}finally{s?.()}}setNavigationBarColor(e){let{frontColor:t,backgroundColor:n,success:r,fail:i,complete:a}=e,o=this.createCallbackFunction(r),s=this.createCallbackFunction(i),c=this.createCallbackFunction(a);try{let e=this.bridgeList[this.bridgeList.length-1].webview.el.querySelector(`.dimina-native-webview__navigation`);e?(t&&(e.querySelector(`.dimina-native-webview__navigation-title`).style.color=t),n&&(e.style.backgroundColor=n),o?.({errMsg:`setNavigationBarColor:ok`})):s?.({errMsg:`setNavigationBarColor:fail Navigation element not found`})}catch(e){s?.({errMsg:`setNavigationBarColor:fail ${e.message}`})}finally{c?.()}}pageScrollTo(e){let{scrollTop:t,duration:n=300,success:r,fail:i,complete:a}=e,o=this.createCallbackFunction(r),s=this.createCallbackFunction(i),c=this.createCallbackFunction(a);try{let e=this.bridgeList[this.bridgeList.length-1].webview.iframe.contentWindow.document.documentElement;e?(e.scrollTo({top:t,behavior:n>0?`smooth`:`auto`}),setTimeout(()=>{o?.({errMsg:`pageScrollTo:ok`}),c?.()},n)):(s?.({errMsg:`pageScrollTo:fail Webview root element not found`}),c?.())}catch(e){s?.({errMsg:`pageScrollTo:fail ${e.message}`}),c?.()}}setClipboardData(e){let{data:t,success:n,fail:r,complete:i}=e,a=this.createCallbackFunction(n),o=this.createCallbackFunction(r),s=this.createCallbackFunction(i);try{navigator.clipboard.writeText(t).then(()=>{a?.({errMsg:`setClipboardData:ok`}),s?.()}).catch(e=>{o?.({errMsg:`setClipboardData:fail ${e.message}`}),s?.()})}catch(e){o?.({errMsg:`setClipboardData:fail ${e.message}`}),s?.()}}getClipboardData(e){let{success:t,fail:n,complete:r}=e,i=this.createCallbackFunction(t),a=this.createCallbackFunction(n),o=this.createCallbackFunction(r);try{navigator.clipboard.readText().then(e=>{i?.({data:e,errMsg:`getClipboardData:ok`}),o?.()}).catch(e=>{a?.({errMsg:`getClipboardData:fail ${e.message}`}),o?.()})}catch(e){a?.({errMsg:`getClipboardData:fail ${e.message}`}),o?.()}}setStorage(e){let{key:t,data:n,success:r,fail:i,complete:a}=e,o=this.createCallbackFunction(r),s=this.createCallbackFunction(i),c=this.createCallbackFunction(a);try{let e=`${this.appId}_${t}`,r=typeof n==`object`?JSON.stringify(n):String(n);localStorage.setItem(e,r),o?.({errMsg:`setStorage:ok`})}catch(e){s?.({errMsg:`setStorage:fail ${e.message}`})}finally{c?.()}}getStorage(e){let{key:t,success:n,fail:r,complete:i}=e,a=this.createCallbackFunction(n),o=this.createCallbackFunction(r),s=this.createCallbackFunction(i);try{let e=`${this.appId}_${t}`,n=localStorage.getItem(e);if(n!==null){let e=n;try{e=JSON.parse(n)}catch{}a?.({data:e,errMsg:`getStorage:ok`})}else o?.({errMsg:`getStorage:fail data not found`})}catch(e){o?.({errMsg:`getStorage:fail ${e.message}`})}finally{s?.()}}removeStorage(e){let{key:t,success:n,fail:r,complete:i}=e,a=this.createCallbackFunction(n),o=this.createCallbackFunction(r),s=this.createCallbackFunction(i);try{let e=`${this.appId}_${t}`;localStorage.getItem(e)===null||localStorage.removeItem(e),a?.({errMsg:`removeStorage:ok`})}catch(e){o?.({errMsg:`removeStorage:fail ${e.message}`})}finally{s?.()}}clearStorage(e){let{success:t,fail:n,complete:r}=e||{},i=this.createCallbackFunction(t),a=this.createCallbackFunction(n),o=this.createCallbackFunction(r);try{let e=`${this.appId}_`,t=[];for(let n=0;n<localStorage.length;n++){let r=localStorage.key(n);r.startsWith(e)&&t.push(r)}t.forEach(e=>localStorage.removeItem(e)),i?.({errMsg:`clearStorage:ok`})}catch(e){a?.({errMsg:`clearStorage:fail ${e.message}`})}finally{o?.()}}getStorageInfo(e){let{success:t,fail:n,complete:r}=e||{},i=this.createCallbackFunction(t),a=this.createCallbackFunction(n),o=this.createCallbackFunction(r);try{let e=[],t=0,n=`${this.appId}_`;for(let r=0;r<localStorage.length;r++){let i=localStorage.key(r);if(i.startsWith(n)){let r=i.substring(n.length);e.push(r);let a=localStorage.getItem(i);t+=a?a.length*2:0}}i?.({keys:e,currentSize:t,limitSize:10485760,errMsg:`getStorageInfo:ok`})}catch(e){a?.({errMsg:`getStorageInfo:fail ${e.message}`})}finally{o?.()}}_parseExtEventKey(e){let t=Z.getExtModules();for(let n of Object.keys(t)){let t=`${n}_`;if(e.startsWith(t))return{module:n,event:e.slice(t.length)}}return{module:null,event:null}}_handleExtCall(e,t={}){t.module===void 0?t.success?this._extOnBridgeCall(e,t):this._extOffBridgeCall(e):this._extBridgeCall(e,t)}_extBridgeCall(e,t){let{module:n,data:r={},success:i,fail:a,complete:o}=t,s=this.createCallbackFunction(i),c=this.createCallbackFunction(a),l=this.createCallbackFunction(o),u=Z.getExtModule(n);if(!u){let e=`extBridge:fail module "${n}" not registered`;console.error(`[container] ${e}`),c?.({errMsg:e}),l?.();return}try{u({event:e,data:r,success:e=>{s?.(e),l?.()},fail:e=>{c?.(e),l?.()}})}catch(e){c?.({errMsg:`extBridge:fail ${e.message}`}),l?.()}}_extOnBridgeCall(e,t){let{success:n}=t,r=this.createCallbackFunction(n),{module:i,event:a}=this._parseExtEventKey(e);if(!i){console.error(`[container] extOnBridge:fail no registered module matched for key "${e}"`);return}let o=Z.getExtModule(i);this._extSubscriptions.get(e)?.();try{let t=o({event:a,data:{isSustain:!0},success:e=>r?.(e),fail:t=>console.error(`[container] extOnBridge error (${e}):`,t)});this._extSubscriptions.set(e,t??null)}catch(e){console.error(`[container] extOnBridge:fail ${e.message}`)}}_extOffBridgeCall(e){let t=this._extSubscriptions.get(e);t&&(t(),this._extSubscriptions.delete(e))}};function W(e){let t=new Map;return function(...n){let r=n.length===1?n[0]:JSON.stringify(n);if(t.has(r))return t.get(r);let i=e.apply(this,n);return t.set(r,i),i}}var G=W(async()=>{let e=await fetch(`/appList.json`).then(e=>e.json());return e.forEach(e=>{let t=JSON.stringify(e),n=sessionStorage.getItem(t);if(n)e.logo=n;else{let n=X(e);sessionStorage.setItem(t,n),e.logo=n}}),e});async function K(e){let t=await G();for(let n of t)if(n.appId===e)return n}function q(e){if(!e||e.length===0)return`#2196F3`;let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;let n=J(Math.abs(t%360),.7+Math.abs(t%3e3)/1e4,.8+Math.abs(t%2e3)/1e4);return Y(n[0],n[1],n[2])}function J(e,t,n){let r,i,a,o=Math.floor(e/60),s=e/60-o,c=n*(1-t),l=n*(1-s*t),u=n*(1-(1-s)*t);switch(o%6){case 0:r=n,i=u,a=c;break;case 1:r=l,i=n,a=c;break;case 2:r=c,i=n,a=u;break;case 3:r=c,i=l,a=n;break;case 4:r=u,i=c,a=n;break;case 5:r=n,i=c,a=l;break}return[Math.round(r*255),Math.round(i*255),Math.round(a*255)]}function Y(e,t,n){return`#${((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)}`}function X(e){let t=[60,60],n=window.devicePixelRatio||1,r=document.createElement(`canvas`);r.style.width=t[0]+`px`,r.style.height=t[1]+`px`,r.width=t[0]*n,r.height=t[1]*n;let i=r.getContext(`2d`);i.scale(n,n),i.imageSmoothingEnabled=!0,i.imageSmoothingQuality=`high`,i.textRenderingOptimization=`optimizeQuality`,i.fillStyle=q(e.name),i.fillRect(0,0,t[0],t[1]),i.fillStyle=`rgb(255,255,255)`,i.font=`${t[0]*.6}px Arial`;let a=e.name.charAt(0),o=i.measureText(a),s=t[0]/2,c=t[1]/2+(o.actualBoundingBoxAscent-o.actualBoundingBoxDescent)/2;return i.textAlign=`center`,i.fillText(a,s,c),r.toDataURL(`image/png`,1)}var Z=class{static appStack=[];static _extModules={};static registerExtModule(e,t){this._extModules[e]=t}static getExtModule(e){return this._extModules[e]}static getExtModules(){return this._extModules}static async openApp(e,t){let{appId:n,path:r,scene:i,destroy:a,restoreStack:o}=e,{pagePath:s,query:c}=j(r),{name:l,logo:u}=await K(n);if(a)for(let e of this.appStack)e.appId!==n&&(e.bridgeList.pop()?.destroy(),t.destroyRootView(e));let d=this.getAppById(n);if(d)t.presentView(d,!0);else{let e=new U({appId:n,scene:i,name:l,logo:u,pagePath:s,query:c,restoreStack:o});this.appStack.push(e),t.presentView(e,!1)}}static getAppById(e){for(let t of this.appStack)if(t.appId===e)return t;return null}static popView(){this.appStack.pop()}static closeApp(e){e.parent.dismissView({destroy:!1})}},Q=()=>new Promise(e=>requestAnimationFrame(()=>requestAnimationFrame(e))),$=(e,t,n=560)=>new Promise(r=>{let i=setTimeout(r,n),a=n=>{(!t||n.propertyName===t)&&(clearTimeout(i),e.removeEventListener(`transitionend`,a),r())};e.addEventListener(`transitionend`,a)}),te=class{constructor(){this.el=null,this.window=null,this.root=null,this.views=[],this.rootView=null,this.parent=null,this.done=!0,this.isSleeping=!1,this._queue=Promise.resolve(),this.init()}_enqueue(e){return this._queue=this._queue.then(()=>e()),this._queue}init(){this.el=document.createElement(`div`),this.el.classList.add(`dimina-application`),this.window=document.createElement(`div`),this.window.classList.add(`dimina-native-window`),this.el.appendChild(this.window)}initRootView(e){this.rootView=e,e.parent=this,e.el.classList.add(`dimina-native-view--instage`),e.el.style.zIndex=1,this.root=e,this.window.appendChild(e.el),e.viewDidLoad()}async pushView(e){if(!this.done)return;this.done=!1;let t=this.views[this.views.length-1];e.parent=this,this.views.push(e),e.el.style.zIndex=this.views.length,e.el.classList.add(`dimina-native-view--before-enter`),this.window.appendChild(e.el),e?.viewDidLoad(),await Q(),t.el.classList.remove(`dimina-native-view--instage`),t.el.classList.add(`dimina-native-view--slide-out`),t.el.classList.add(`dimina-native-view--linear-anima`),e.el.classList.add(`dimina-native-view--enter-anima`),e.el.classList.add(`dimina-native-view--instage`),await $(e.el,`transform`),t.el.classList.remove(`dimina-native-view--linear-anima`),e.el.classList.remove(`dimina-native-view--before-enter`),e.el.classList.remove(`dimina-native-view--enter-anima`),e.el.classList.remove(`dimina-native-view--instage`),this.done=!0}async popView(){if(this.views.length<2||!this.done)return;this.done=!1;let e=this.views[this.views.length-2],t=this.views[this.views.length-1];e.el.classList.remove(`dimina-native-view--slide-out`),e.el.classList.add(`dimina-native-view--instage`),e.el.classList.add(`dimina-native-view--enter-anima`),t.el.classList.remove(`dimina-native-view--instage`),t.el.classList.add(`dimina-native-view--before-enter`),t.el.classList.add(`dimina-native-view--enter-anima`),await $(t.el,`transform`),this.views.pop(),this.window.removeChild(t.el),e.el.classList.remove(`dimina-native-view--enter-anima`),this.done=!0}presentView(e,t){return this._enqueue(()=>this._presentView(e,t))}async _presentView(e,t){if(!this.done)return;this.done=!1;let n=this.views[this.views.length-1];e.parent=this,e.el.style.zIndex=this.views.length+1,e.el.classList.add(`dimina-native-view--before-present`),e.el.classList.add(`dimina-native-view--enter-anima`),n?.el.classList.add(`dimina-native-view--before-presenting`),n?.el.classList.remove(`dimina-native-view--instage`),n?.el.classList.add(`dimina-native-view--enter-anima`),n?.onPresentOut(),e.onPresentIn(),!t&&this.el.appendChild(e.el),this.views.push(e),!t&&e.viewDidLoad&&e.viewDidLoad(),t&&e.restoreColorStyle(),await Q(),n?.el.classList.add(`dimina-native-view--presenting`),e.el.classList.add(`dimina-native-view--instage`),await $(e.el,`transform`),e.el.classList.remove(`dimina-native-view--before-present`),e.el.classList.remove(`dimina-native-view--enter-anima`),n?.el.classList.remove(`dimina-native-view--enter-anima`),n?.el.classList.remove(`dimina-native-view--before-presenting`),this.done=!0}dismissView(e={}){return this._enqueue(()=>this._dismissView(e))}async _dismissView(e={}){if(!this.done)return;this.done=!1;let t=this.views[this.views.length-2],n=this.views[this.views.length-1],{destroy:r=!0}=e;n.el.classList.add(`dimina-native-view--enter-anima`),t?.el.classList.add(`dimina-native-view--enter-anima`),t?.el.classList.add(`dimina-native-view--before-presenting`),await Q(),n.el.classList.add(`dimina-native-view--before-present`),n.el.classList.remove(`dimina-native-view--instage`),t?.el.classList.remove(`dimina-native-view--presenting`),t?.onPresentIn(),n?.onPresentOut(),await $(n.el,`transform`),r&&(n.destroy(),this.el.removeChild(n.el)),this.views.pop(),t?.el.classList.remove(`dimina-native-view--enter-anima`),t?.el.classList.remove(`dimina-native-view--before-presenting`),this.done=!0}async destroyRootView(e){e.destroy(),this.el.removeChild(e.el)}getActiveView(){return this.views[this.views.length-1]||this.rootView}sleepActiveView(){this.isSleeping||(this.isSleeping=!0,this.getActiveView()?.onPresentOut?.())}wakeActiveView(){if(!this.isSleeping)return;this.isSleeping=!1;let e=this.getActiveView();e?.restoreColorStyle?.(),e?.onPresentIn?.()}updateStatusBarColor(e){this.parent?.updateDeviceBarColor(e)}},ne=`<div class="dimina-app__page-view dimina-app__mini">
|
|
71
|
+
`).join(``),i.querySelectorAll(`[data-quick-index]`).forEach((e,t)=>{e.onclick=()=>u[t].handler()})}openMiniAppMenu(){let e=this.el.querySelector(`.dimina-mini-app-menu__mask`),t=this.el.querySelector(`.dimina-mini-app-menu`);this.renderMiniAppMenu(),e.style.display=`block`,requestAnimationFrame(()=>{e.classList.add(`show`),t.classList.add(`show`)})}closeMiniAppMenu(){let e=this.el.querySelector(`.dimina-mini-app-menu__mask`),t=this.el.querySelector(`.dimina-mini-app-menu`);e.classList.remove(`show`),t.classList.remove(`show`)}registerApi(e,t){this.apiRegistry[e]=t}invokeApi(e,t){let n=this.apiRegistry[e];n?n.call(this,t):typeof this[e]==`function`?this[e](t):t?.module!==void 0||t?.evtId!==void 0?this._handleExtCall(e,t):this._handleUnsupportedApi(e,t)}_handleUnsupportedApi(e,t={}){let{onFail:n,onComplete:r}=this._createApiCallbacks(t),i={errMsg:`${e}:fail api is not supported`};n?n(i):console.warn(`[container] ${i.errMsg}`),r?.()}viewDidLoad(){this.initPageFrame(),this.webviewsContainer=this.el.querySelector(`.dimina-mini-app__webviews`),this.showLaunchScreen(),this.bindMoreEvent(),this.bindCloseEvent(),this.initApp()}async initApp(){await this.jscore.init(),this._bindThemeChange();let e=`main`,t=`${this.appInfo.appId}/${e}/app-config.json`,[n]=await Promise.all([N(`/${t}`),A(560)]);if(!n)return;this.appConfig=JSON.parse(n),this._initTabBar();let r=this.appInfo.pagePath||this.appConfig.app.entryPagePath,i=this.appConfig.modules[r],a=P(this.appConfig.app,i);this.updateTargetPageColorStyle(a);let o=await this.createBridge({pagePath:r,query:this.appInfo.query,scene:this.appInfo.scene,jscore:this.jscore,isRoot:!0,root:e,appId:this.appInfo.appId,pages:this.appConfig.app.pages,configInfo:a});if(this.bridgeList.push(o),this._isTabBarPage(r)){let e=this._normalizePagePath(r);this.tabBarBridges.set(e,o),this.currentTabPath=e,this._setTabBarVisible(!0),this._updateTabBarSelection(e)}let s=this.appInfo.restoreStack?.length>1;o.start({visible:!s}),s&&await this.restorePageStack(this.appInfo.restoreStack.slice(1)),this._syncHash(),this.hideLaunchScreen()}async restorePageStack(e){for(let t=0;t<e.length;t++){let{pagePath:n,query:r}=e[t],i=t===e.length-1,a=n.startsWith(`/`)?n.slice(1):n,o=this.appConfig.modules[a],s=P(this.appConfig.app,o),c=await this.createBridge({pagePath:a,query:r,scene:this.appInfo.scene,jscore:this.jscore,isRoot:!1,root:o?.root||`main`,appId:this.appInfo.appId,pages:this.appConfig.app.pages,configInfo:s}),l=this.bridgeList[this.bridgeList.length-1];l.webview.el.classList.remove(`dimina-native-view--instage`),l.webview.el.classList.add(`dimina-native-view--slide-out`),this.bridgeList.push(c),c.webview.el.style.zIndex=this.bridgeList.length+1,c.webview.el.classList.remove(`dimina-native-view--before-enter`),i||c.webview.el.classList.add(`dimina-native-view--slide-out`),c.start({visible:i})}if(e.length>0){let e=this.bridgeList[this.bridgeList.length-1],t=this.appConfig.modules[e.opts.pagePath],n=P(this.appConfig.app,t);this.updateTargetPageColorStyle(n),this._isTabBarPage(e.opts.pagePath)||this._setTabBarVisible(!1)}}_syncHash(){let e=this.bridgeList.map(e=>({pagePath:e.opts.pagePath.startsWith(`/`)?e.opts.pagePath.slice(1):e.opts.pagePath,query:e.opts.query||{}}));B.syncStack(this.appId,e)}async createBridge(e){let{jscore:t,configInfo:n,isRoot:r,appId:i,pagePath:a,query:o,scene:s,pages:c,root:l}=e,u=new L({jscore:t,configInfo:n,isRoot:r,appId:i,pagePath:a,query:o,scene:s,pages:c,root:l});return u.parent=this,await u.init(),u}onPresentIn(){let e=this.bridgeList[this.bridgeList.length-1];e?.appShow(),e?.pageShow()}onPresentOut(){let e=this.bridgeList[this.bridgeList.length-1];e?.appHide(),e?.pageHide()}initPageFrame(){this.el.innerHTML=V}updateTargetPageColorStyle(e){let{navigationBarTextStyle:t}=e;this.updateActionColorStyle(t)}showLaunchScreen(){let e=this.el.querySelector(`.dimina-mini-app__launch-screen`),t=this.el.querySelector(`.dimina-mini-app__name`),n=this.el.querySelector(`.dimina-mini-app__logo-img-url`);this.updateActionColorStyle(`black`),t.textContent=this.appInfo.name,n.src=this.appInfo.logo,e.style.display=`block`}hideLaunchScreen(){let e=this.el.querySelector(`.dimina-mini-app__launch-screen`);e.style.display=`none`}updateActionColorStyle(e){this.color=e;let t=this.el.querySelector(`.dimina-mini-app-navigation__actions`);e===`white`?(t.classList.remove(`dimina-mini-app-navigation__actions--black`),t.classList.add(`dimina-mini-app-navigation__actions--white`)):e===`black`&&(t.classList.remove(`dimina-mini-app-navigation__actions--white`),t.classList.add(`dimina-mini-app-navigation__actions--black`)),this.parent.updateStatusBarColor(e)}restoreColorStyle(){this.updateActionColorStyle(this.color)}createCallbackFunction(e){if(e)return t=>{this.jscore.postMessage({type:`triggerCallback`,body:{id:e,args:t}})}}_createApiCallbacks({success:e,fail:t,complete:n}={}){return{onSuccess:this.createCallbackFunction(e),onFail:this.createCallbackFunction(t),onComplete:this.createCallbackFunction(n)}}async navigateTo(e){let{url:t,success:n,fail:r,complete:i}=e,{query:a,pagePath:o}=j(t),s=this.createCallbackFunction(n),c=this.createCallbackFunction(r),l=this.createCallbackFunction(i);if(this._isTabBarPage(o)){c?.({errMsg:`navigateTo:fail can not navigateTo a tabbar page`}),l?.();return}if(!this.webviewAnimaEnd){c?.({errMsg:`navigateTo:fail busy`}),l?.();return}this.webviewAnimaEnd=!1;try{let e=this.appConfig.modules[o],t=P(this.appConfig.app,e);this.updateTargetPageColorStyle(t);let n=await this.createBridge({pagePath:o,query:a,scene:this.appInfo.scene,jscore:this.jscore,isRoot:!1,root:e?.root||`main`,appId:this.appInfo.appId,pages:this.appConfig.app.pages,configInfo:t}),r=this.bridgeList[this.bridgeList.length-1],i=r.webview;this.bridgeList.push(n),n.start(),this._syncHash(),i.el.classList.remove(`dimina-native-view--instage`),i.el.classList.add(`dimina-native-view--slide-out`),i.el.classList.add(`dimina-native-view--linear-anima`),r?.pageHide(),this._setTabBarVisible(!1),n.webview.el.style.zIndex=this.bridgeList.length+1,n.webview.el.classList.add(`dimina-native-view--enter-anima`),n.webview.el.classList.add(`dimina-native-view--instage`),await H(n.webview.el,`transform`),i.el.classList.remove(`dimina-native-view--linear-anima`),n.webview.el.classList.remove(`dimina-native-view--before-enter`),n.webview.el.classList.remove(`dimina-native-view--enter-anima`),n.webview.el.classList.remove(`dimina-native-view--instage`),s?.({errMsg:`navigateTo:ok`})}catch(e){c?.({errMsg:`navigateTo:fail ${e.message}`})}finally{this.webviewAnimaEnd=!0,l?.()}}reLaunch(e){let{url:t,success:n,fail:r,complete:i}=e,a=this.createCallbackFunction(n),o=this.createCallbackFunction(r),s=this.createCallbackFunction(i);if(!this.webviewAnimaEnd){o?.({errMsg:`reLaunch:fail busy`}),s?.();return}this.webviewAnimaEnd=!1;let{query:c,pagePath:l}=j(t);try{let e=this.appConfig.modules[l],t=P(this.appConfig.app,e);this.updateTargetPageColorStyle(t);let n=new Set([...this.bridgeList,...this.tabBarBridges.values()]);for(let e of n)e.destroy(),e.webview?.el?.remove();this.bridgeList.length=0,this.tabBarBridges.clear(),this.currentTabPath=null,this.webviewsContainer&&(this.webviewsContainer.innerHTML=``),this.createBridge({pagePath:l,query:c,scene:this.appInfo.scene,jscore:this.jscore,isRoot:!0,root:e?.root||`main`,appId:this.appInfo.appId,pages:this.appConfig.app.pages,configInfo:t}).then(e=>{if(this.bridgeList.push(e),this._isTabBarPage(l)){let t=this._normalizePagePath(l);this.tabBarBridges.set(t,e),this.currentTabPath=t,this._setTabBarVisible(!0),this._updateTabBarSelection(t)}else this._setTabBarVisible(!1);e.start(),this._syncHash(),e.webview.el.style.zIndex=1,this.webviewAnimaEnd=!0,a?.({errMsg:`reLaunch:ok`}),s?.()}).catch(e=>{o?.({errMsg:`reLaunch:fail ${e.message}`}),s?.(),this.webviewAnimaEnd=!0})}catch(e){o?.({errMsg:`reLaunch:fail ${e.message}`}),s?.(),this.webviewAnimaEnd=!0}}applyUpdate(){this.reLaunch({url:this.getEntryPagePath()})}redirectTo(e){let{url:t,success:n,fail:r,complete:i}=e,{query:a,pagePath:o}=j(t),s=this.createCallbackFunction(n),c=this.createCallbackFunction(r),l=this.createCallbackFunction(i);if(this._isTabBarPage(o)){c?.({errMsg:`redirectTo:fail can not redirectTo a tabbar page`}),l?.();return}if(!this.webviewAnimaEnd){c?.({errMsg:`redirectTo:fail busy`}),l?.();return}this.webviewAnimaEnd=!1;try{let e=this.bridgeList[this.bridgeList.length-1],t=this._normalizePagePath(e.opts.pagePath),n=this.appConfig.modules[o],r=P(this.appConfig.app,n);this.updateTargetPageColorStyle(r),e.destroy(),e.opts={...e.opts,pagePath:o,query:a,configInfo:r},e.resetStatus(),e.start(),this._syncHash(),this.tabBarBridges.get(t)===e&&(this.tabBarBridges.delete(t),this.currentTabPath===t&&(this.currentTabPath=null)),this._setBridgeTabBarInset(e,!1),this._setTabBarVisible(!1),s?.({errMsg:`redirectTo:ok`})}catch(e){c?.({errMsg:`redirectTo:fail ${e.message}`})}finally{this.webviewAnimaEnd=!0,l?.()}}async navigateBack(e={}){let{onSuccess:t,onFail:n,onComplete:r}=this._createApiCallbacks(e);if(this.bridgeList.length<2){n?.({errMsg:`navigateBack:fail cannot navigate back at first page`}),r?.();return}if(!this.webviewAnimaEnd){n?.({errMsg:`navigateBack:fail busy`}),r?.();return}this.webviewAnimaEnd=!1;try{let e=this.bridgeList.pop(),n=this.bridgeList[this.bridgeList.length-1],r=this.appConfig.modules[n.opts.pagePath],i=P(this.appConfig.app,r);if(this.updateTargetPageColorStyle(i),e.webview.el.classList.add(`dimina-native-view--before-enter`),e.webview.el.classList.add(`dimina-native-view--enter-anima`),e.destroy(),n.webview.el.classList.remove(`dimina-native-view--slide-out`),n.webview.el.classList.add(`dimina-native-view--instage`),n.webview.el.classList.add(`dimina-native-view--enter-anima`),n.pageShow(),this._syncHash(),this._isTabBarPage(n.opts.pagePath)){let e=this._normalizePagePath(n.opts.pagePath);this.currentTabPath=e,this._setTabBarVisible(!0),this._updateTabBarSelection(e)}await H(n.webview.el,`transform`),n.webview.el.classList.remove(`dimina-native-view--enter-anima`),n.webview.el.classList.remove(`dimina-native-view--instage`),e.webview.el.parentNode.removeChild(e.webview.el),t?.({errMsg:`navigateBack:ok`})}catch(e){n?.({errMsg:`navigateBack:fail ${e.message}`})}finally{this.webviewAnimaEnd=!0,r?.()}}async switchTab(e){let{url:t,success:n,fail:r,complete:i}=e,{query:a,pagePath:o}=j(t),s=this._normalizePagePath(o),c=this.createCallbackFunction(n),l=this.createCallbackFunction(r),u=this.createCallbackFunction(i);if(!this._isTabBarPage(s)){l?.({errMsg:`switchTab:fail not a tabBar page: ${s}`}),u?.();return}if(!this.webviewAnimaEnd){l?.({errMsg:`switchTab:fail busy`}),u?.();return}if(this.currentTabPath===s&&this.bridgeList.length===1){this._setTabBarVisible(!0),this._updateTabBarSelection(s),c?.({errMsg:`switchTab:ok`}),u?.();return}this.webviewAnimaEnd=!1;try{let e=this.currentTabPath,t=e?this.tabBarBridges.get(e):null,n=!!t&&this.bridgeList.length===1&&this.bridgeList[0]===t;for(;this.bridgeList.length>0;){let e=this.bridgeList[this.bridgeList.length-1];if(this._isTabBarPage(e.opts.pagePath))break;e.pageHide(),e.destroy(),e.webview?.el?.remove(),this.bridgeList.pop()}if(t&&t!==this.tabBarBridges.get(s)){n&&t.pageHide(),t.webview?.el&&(t.webview.el.style.display=`none`);let e=this.bridgeList.indexOf(t);e>=0&&this.bridgeList.splice(e,1)}let r=this.tabBarBridges.get(s),i=this.appConfig.modules[s],o=P(this.appConfig.app,i);this.updateTargetPageColorStyle(o),r||(r=await this.createBridge({pagePath:s,query:a,scene:this.appInfo.scene,jscore:this.jscore,isRoot:!0,root:i?.root||`main`,appId:this.appInfo.appId,pages:this.appConfig.app.pages,configInfo:o}),this.tabBarBridges.set(s,r),r.start());let l=r.webview.el;this._setBridgeTabBarInset(r,!0),l.classList.remove(`dimina-native-view--before-enter`,`dimina-native-view--slide-out`,`dimina-native-view--enter-anima`,`dimina-native-view--linear-anima`,`dimina-native-view--instage`),l.style.display=``,l.style.zIndex=1,this.bridgeList.includes(r)||this.bridgeList.push(r),this.currentTabPath=s,r.pageShow(),this._setTabBarVisible(!0),this._updateTabBarSelection(s),this._syncHash(),c?.({errMsg:`switchTab:ok`})}catch(e){l?.({errMsg:`switchTab:fail ${e.message}`})}finally{this.webviewAnimaEnd=!0,u?.()}}_initTabBar(){let e=this.appConfig?.app?.tabBar;if(!(!e||!Array.isArray(e.list)||e.list.length===0)){if(this.tabBarConfig=e,this.tabBarPaths=e.list.map(e=>this._normalizePagePath(e.pagePath)),this.tabBarBadges=e.list.map(()=>``),this.tabBarRedDots=e.list.map(()=>!1),this.tabBarApiVisible=!0,this.customTabBar=e.custom===!0,this.customTabBar){this.tabBarEl=this.el.querySelector(`.dimina-mini-app__tabbar`),this.tabBarEl&&(this.tabBarEl.textContent=``,this.tabBarEl.style.display=`none`),this.tabBarHeight=0,this.el.style.setProperty(`--dimina-tabbar-height`,`0px`);return}this._renderTabBar()}}_renderTabBar(){if(this.tabBarEl=this.el.querySelector(`.dimina-mini-app__tabbar`),!this.tabBarEl)return;let{color:e,backgroundColor:t,borderStyle:n,list:r}=this.tabBarConfig,i=this._sanitizeCssColor(e)||`#999999`,a=this._sanitizeCssColor(t)||`#ffffff`;this.tabBarEl.textContent=``;let o=document.createElement(`div`);o.className=`dimina-tabbar`,o.style.backgroundColor=a,o.style.borderTopColor=this._getTabBarBorderColor(n),r.forEach((e,t)=>{let n=this._normalizePagePath(e.pagePath),r=document.createElement(`div`);r.className=`dimina-tabbar-item`,r.dataset.path=n,r.dataset.index=String(t);let a=this._resolveTabBarIcon(e.iconPath);a&&r.appendChild(this._createTabBarIcon(a,`dimina-tabbar-icon-default`));let s=this._resolveTabBarIcon(e.selectedIconPath);s&&r.appendChild(this._createTabBarIcon(s,`dimina-tabbar-icon-selected`));let c=document.createElement(`span`);c.className=`dimina-tabbar-text`,c.style.color=i,c.textContent=e.text||``,r.appendChild(c);let l=document.createElement(`span`);l.className=`dimina-tabbar-badge`,l.hidden=!0,r.appendChild(l);let u=document.createElement(`span`);u.className=`dimina-tabbar-red-dot`,u.hidden=!0,r.appendChild(u),o.appendChild(r)}),this.tabBarEl.appendChild(o),this.tabBarEl.addEventListener(`click`,e=>{let t=e.target.closest(`.dimina-tabbar-item`);if(!t)return;let n=t.dataset.path;n&&n!==this.currentTabPath&&this.switchTab({url:`/${n}`})}),typeof ResizeObserver<`u`&&(this._tabBarResizeObserver?.disconnect(),this._tabBarResizeObserver=new ResizeObserver(()=>this._syncTabBarHeightVar()),this._tabBarResizeObserver.observe(this.tabBarEl))}_createTabBarIcon(e,t){let n=document.createElement(`img`);return n.className=`dimina-tabbar-icon ${t}`,n.src=e,n.alt=``,n.addEventListener(`error`,()=>{n.style.display=`none`}),n}_sanitizeCssColor(e){if(!e||typeof e!=`string`)return``;let t=e.trim();return t.length===0||t.length>64?``:/[<>"';{}()\\]/.test(t)?/^(?:rgb|rgba|hsl|hsla)\(\s*[\d.,%\s/-]+\)$/i.test(t)?t:``:t}_getTabBarBorderColor(e){return e===`white`?`#ffffff`:`#e0e0e0`}_getTabBarHeight(){if(this.customTabBar)return 0;if(!this.tabBarEl)return this.tabBarHeight;let e=this.tabBarEl.getBoundingClientRect().height;if(!e&&this.tabBarEl.style.display===`none`){let t=this.tabBarEl.style.display,n=this.tabBarEl.style.visibility;this.tabBarEl.style.visibility=`hidden`,this.tabBarEl.style.display=`block`,e=this.tabBarEl.getBoundingClientRect().height,this.tabBarEl.style.display=t,this.tabBarEl.style.visibility=n}return e>0&&(this.tabBarHeight=e),this.tabBarHeight}_syncTabBarHeightVar(){let e=this._getTabBarHeight();this.el.style.setProperty(`--dimina-tabbar-height`,`${e}px`),this._syncTabBarBridgeInsets()}_setBridgeTabBarInset(e,t){let n=e?.webview?.el;if(n){if(!t||this.customTabBar){n.style.removeProperty(`bottom`);return}n.style.bottom=`${this._getTabBarHeight()}px`}}_syncTabBarBridgeInsets(){for(let e of this.tabBarBridges.values())this._setBridgeTabBarInset(e,!0)}_joinBaseUrl(...e){return`${`/`.endsWith(`/`)?`/`:`//`}${e.map(e=>String(e).trim().replace(/^\/+|\/+$/g,``)).filter(Boolean).join(`/`)}`}_resolveTabBarIcon(e){if(!e||typeof e!=`string`)return null;let t=e.trim();if(!t)return null;if(/^(?:data:|blob:|https?:|\/\/)/i.test(t))return t;let n=t.replace(/^\/+/,``).replace(/^\.\//,``),r=`${this.appId}/`;return n.startsWith(r)?this._joinBaseUrl(n):this._joinBaseUrl(this.appId,`main`,n)}_setTabBarVisible(e){if(!this.tabBarEl)return;if(this.customTabBar){this.tabBarEl.style.display=`none`,this._syncTabBarHeightVar();return}let t=this.bridgeList[this.bridgeList.length-1],n=this._normalizePagePath(t?.opts?.pagePath),r=!!n&&n===this.currentTabPath&&this._isTabBarPage(n),i=e&&this.tabBarApiVisible&&r;this.tabBarEl.style.display=i?`block`:`none`,this._syncTabBarHeightVar()}_updateTabBarSelection(e){if(!this.tabBarEl||!this.tabBarConfig)return;let t=this.tabBarConfig.color||`#999999`,n=this.tabBarConfig.selectedColor||`#1890ff`;this.tabBarEl.querySelectorAll(`.dimina-tabbar-item`).forEach(r=>{let i=r.getAttribute(`data-path`)===e,a=r.querySelector(`.dimina-tabbar-text`),o=r.querySelector(`.dimina-tabbar-icon-default`),s=r.querySelector(`.dimina-tabbar-icon-selected`);a&&(a.style.color=i?n:t),o&&(o.style.display=i?`none`:`block`),s&&(s.style.display=i?`block`:`none`),r.classList.toggle(`dimina-tabbar-item--selected`,i)})}_getTabBarItemEl(e){return this.tabBarEl?.querySelector(`.dimina-tabbar-item[data-index="${e}"]`)||null}_validateTabBarIndex(e,t,n,r){let i=this.tabBarConfig?.list?.length||0;if(!i||!this.tabBarEl)return n?.({errMsg:`${e}:fail tabBar not configured`}),r?.(),!1;let a=Number(t);return t==null||!Number.isInteger(a)||a<0||a>=i?(n?.({errMsg:`${e}:fail invalid index ${t}`}),r?.(),!1):!0}_replaceTabBarItemIcons(e,t){let n=e.querySelector(`.dimina-tabbar-text`);e.querySelectorAll(`.dimina-tabbar-icon-default, .dimina-tabbar-icon-selected`).forEach(e=>e.remove());let r=this._resolveTabBarIcon(t.iconPath);r&&e.insertBefore(this._createTabBarIcon(r,`dimina-tabbar-icon-default`),n);let i=this._resolveTabBarIcon(t.selectedIconPath);i&&e.insertBefore(this._createTabBarIcon(i,`dimina-tabbar-icon-selected`),n)}setTabBarStyle(e={}){let{color:t,selectedColor:n,backgroundColor:r,borderStyle:i,success:a,fail:o,complete:s}=e,c=this.createCallbackFunction(a),l=this.createCallbackFunction(o),u=this.createCallbackFunction(s);if(!this.tabBarConfig||!this.tabBarEl){l?.({errMsg:`setTabBarStyle:fail tabBar not configured`}),u?.();return}let d=i===`black`||i===`white`?i:null,f=t===void 0?null:this._sanitizeCssColor(t),p=n===void 0?null:this._sanitizeCssColor(n),m=r===void 0?null:this._sanitizeCssColor(r);f&&(this.tabBarConfig.color=f),p&&(this.tabBarConfig.selectedColor=p),m&&(this.tabBarConfig.backgroundColor=m),d&&(this.tabBarConfig.borderStyle=d);let h=this.tabBarEl.querySelector(`.dimina-tabbar`);h&&(m&&(h.style.backgroundColor=m),d&&(h.style.borderTopColor=this._getTabBarBorderColor(d))),this._updateTabBarSelection(this.currentTabPath),c?.({errMsg:`setTabBarStyle:ok`}),u?.()}setTabBarItem(e={}){let{index:t,text:n,iconPath:r,selectedIconPath:i}=e,{onSuccess:a,onFail:o,onComplete:s}=this._createApiCallbacks(e);if(!this._validateTabBarIndex(`setTabBarItem`,t,o,s))return;let c=Number(t),l=this.tabBarConfig.list[c],u={...l,text:n===void 0?l.text:n,iconPath:r===void 0?l.iconPath:r,selectedIconPath:i===void 0?l.selectedIconPath:i};this.tabBarConfig.list[c]=u;let d=this._getTabBarItemEl(c);if(d){let e=d.querySelector(`.dimina-tabbar-text`);e&&(e.textContent=u.text||``),(r!==void 0||i!==void 0)&&this._replaceTabBarItemIcons(d,u),this._updateTabBarSelection(this.currentTabPath)}a?.({errMsg:`setTabBarItem:ok`}),s?.()}showTabBar(e={}){let{onSuccess:t,onComplete:n}=this._createApiCallbacks(e);this.tabBarApiVisible=!0,this._setTabBarVisible(!0),t?.({errMsg:`showTabBar:ok`}),n?.()}hideTabBar(e={}){let{onSuccess:t,onComplete:n}=this._createApiCallbacks(e);this.tabBarApiVisible=!1,this._setTabBarVisible(!1),t?.({errMsg:`hideTabBar:ok`}),n?.()}setTabBarBadge(e={}){let{index:t,text:n=``}=e,{onSuccess:r,onFail:i,onComplete:a}=this._createApiCallbacks(e);if(!this._validateTabBarIndex(`setTabBarBadge`,t,i,a))return;let o=Number(t);this.tabBarBadges[o]=String(n),this.tabBarRedDots[o]=!1;let s=this._getTabBarItemEl(o),c=s?.querySelector(`.dimina-tabbar-badge`),l=s?.querySelector(`.dimina-tabbar-red-dot`);c&&(c.textContent=this.tabBarBadges[o],c.hidden=this.tabBarBadges[o].length===0),l&&(l.hidden=!0),r?.({errMsg:`setTabBarBadge:ok`}),a?.()}removeTabBarBadge(e={}){let{index:t}=e,{onSuccess:n,onFail:r,onComplete:i}=this._createApiCallbacks(e);if(!this._validateTabBarIndex(`removeTabBarBadge`,t,r,i))return;let a=Number(t);this.tabBarBadges[a]=``;let o=this._getTabBarItemEl(a)?.querySelector(`.dimina-tabbar-badge`);o&&(o.textContent=``,o.hidden=!0),n?.({errMsg:`removeTabBarBadge:ok`}),i?.()}showTabBarRedDot(e={}){let{index:t}=e,{onSuccess:n,onFail:r,onComplete:i}=this._createApiCallbacks(e);if(!this._validateTabBarIndex(`showTabBarRedDot`,t,r,i))return;let a=Number(t);this.tabBarRedDots[a]=!0,this.tabBarBadges[a]=``;let o=this._getTabBarItemEl(a),s=o?.querySelector(`.dimina-tabbar-badge`),c=o?.querySelector(`.dimina-tabbar-red-dot`);s&&(s.textContent=``,s.hidden=!0),c&&(c.hidden=!1),n?.({errMsg:`showTabBarRedDot:ok`}),i?.()}hideTabBarRedDot(e={}){let{index:t}=e,{onSuccess:n,onFail:r,onComplete:i}=this._createApiCallbacks(e);if(!this._validateTabBarIndex(`hideTabBarRedDot`,t,r,i))return;let a=Number(t);this.tabBarRedDots[a]=!1;let o=this._getTabBarItemEl(a)?.querySelector(`.dimina-tabbar-red-dot`);o&&(o.hidden=!0),n?.({errMsg:`hideTabBarRedDot:ok`}),i?.()}async navigateToMiniProgram(e){let{appId:t,path:n,scene:r=1037}=e,{onSuccess:i,onFail:a,onComplete:o}=this._createApiCallbacks(e);try{await Z.openApp({appId:t,path:n,scene:r},this.parent),i?.({errMsg:`navigateToMiniProgram:ok`})}catch(e){a?.({errMsg:`navigateToMiniProgram:fail ${e.message}`})}finally{o?.()}}bindMoreEvent(){let e=this.el.querySelector(`.dimina-mini-app-navigation__actions-variable`),t=this.el.querySelector(`.dimina-mini-app-menu__mask`),n=this.el.querySelector(`.dimina-mini-app-menu`),r=this.el.querySelector(`.dimina-mini-app-menu__footer-btn--cancel`);t.addEventListener(`transitionend`,()=>{t.classList.contains(`show`)||(t.style.display=`none`)}),e.onclick=()=>this.openMiniAppMenu(),t.onclick=()=>this.closeMiniAppMenu(),r.onclick=()=>this.closeMiniAppMenu(),n.onclick=e=>e.stopPropagation()}bindCloseEvent(){let e=this.el.querySelector(`.dimina-mini-app-navigation__actions-close`);e.onclick=()=>{this.closeMiniProgram()}}destroy(){this._destroyed=!0;for(let e of this._extSubscriptions.values())e?.();this._extSubscriptions.clear();for(let e of this._windowResizeHandlers)globalThis.removeEventListener?.(`resize`,e);this._windowResizeHandlers.clear(),this._themeMediaQuery?.removeEventListener?this._themeMediaQuery.removeEventListener(`change`,this._themeChangeHandler):this._themeMediaQuery?.removeListener?.(this._themeChangeHandler),this._themeMediaQuery=null,this._themeChangeHandler=null,this._tabBarResizeObserver?.disconnect(),this._tabBarResizeObserver=null;for(let e of this._modalPendingTimers)clearTimeout(e);this._modalPendingTimers.clear();for(let e of this._modalStack)e.mask?.remove(),e.dialog?.remove();this._modalStack.length=0,this.hideToast({}),Z.popView(),this.jscore.destroy()}getNetworkType(e){let{success:t}=e;this.createCallbackFunction(t)?.({networkType:`wifi`})}request({url:e,data:t,header:n={},timeout:r=0,method:i=`GET`,dataType:a=`json`,responseType:o=`text`,success:s,fail:c,complete:l}){let u={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({url:e,data:t,header:n,timeout:r,method:i,dataType:a,responseType:o})},d=this.createCallbackFunction(s),f=this.createCallbackFunction(c),p=this.createCallbackFunction(l);fetch(`http://localhost:7788/proxy`,u).then(e=>{if(!e.ok){let t=Error(e.statusText);throw t.code=e.status,t}let t={};switch(e.headers.forEach((e,n)=>{t[n]=e}),a){case`json`:return e.json().then(n=>({data:JSON.parse(n),header:t,statusCode:e.status}));case`arraybuffer`:return e.arrayBuffer().then(n=>({data:n,header:t,statusCode:e.status}));default:return e.text().then(n=>({data:n,header:t,statusCode:e.status}))}}).then(e=>{d?.(e)}).catch(e=>{f?.({errMsg:e.message,errno:e.code})}).finally(()=>{p?.()})}getSystemInfoAsync(e){let t=this.parent.parent.root.querySelector(`.iphone__status-bar`).getBoundingClientRect(),n=this.parent.el.querySelector(`.dimina-native-webview__root`).getBoundingClientRect(),{success:r,complete:i}=e,a=this.createCallbackFunction(r),o=this.createCallbackFunction(i);a?.({statusBarHeight:t.height,brand:`devtools`,mode:`default`,model:`web`,platform:`devtools`,system:`web`,deviceOrientation:`portrait`,SDKVersion:`3.0.0`,language:`zh_CN`,wifiEnabled:!0,safeArea:{width:n.width,height:n.height,top:n.top,bottom:n.bottom,left:n.left,right:n.right}}),o?.()}getSystemInfo(e={}){let{onSuccess:t,onComplete:n}=this._createApiCallbacks(e);t?.({...this.getSystemInfoSync(),errMsg:`getSystemInfo:ok`}),n?.()}onWindowResize(e={}){let t=this.createCallbackFunction(e.success);if(!t||!globalThis.addEventListener)return;let n=()=>{let{windowWidth:e,windowHeight:n,deviceOrientation:r=`portrait`}=this.getSystemInfoSync();t({size:{windowWidth:e,windowHeight:n},deviceOrientation:r})};this._windowResizeHandlers??=new Set,this._windowResizeHandlers.add(n),globalThis.addEventListener(`resize`,n)}getMenuButtonBoundingClientRect(){let e=this.el.querySelector(`.dimina-mini-app-navigation__actions`).getBoundingClientRect(),t=this.el.getBoundingClientRect(),n=(this.parent.parent.root.querySelector(`.iphone__status-bar`)?.getBoundingClientRect().height||20)+4,r=n+e.height,i=e.left-t.left;return{top:n,right:e.right-t.left,bottom:r,left:i,width:e.width,height:e.height,x:i,y:n}}getHostEnvSnapshot(){return{menuRect:this.getMenuButtonBoundingClientRect(),systemInfo:this.getSystemInfoSync()}}_bindThemeChange(){let e=globalThis.matchMedia?.(`(prefers-color-scheme: dark)`);e&&(this._themeMediaQuery=e,this._themeChangeHandler=e=>{this.jscore.postMessage({type:`hostEnvUpdate`,body:{systemInfo:{...this.getSystemInfoSync(),theme:e.matches?`dark`:`light`}}})},e.addEventListener?e.addEventListener(`change`,this._themeChangeHandler):e.addListener?.(this._themeChangeHandler))}getSystemInfoSync(){let e=this.parent.parent.root.querySelector(`.iphone__status-bar`),t=this.parent.el.querySelector(`.dimina-native-webview__root`)?.getBoundingClientRect(),n=t?.width||this.el.clientWidth||375,r=t?.height||this.el.clientHeight||667,i=e?.getBoundingClientRect().height||20;return{brand:`devtools`,model:`web`,platform:`devtools`,system:`web`,SDKVersion:`3.0.0`,pixelRatio:globalThis.devicePixelRatio||1,screenWidth:n,screenHeight:r,windowWidth:n,windowHeight:r,statusBarHeight:i,safeArea:{left:0,right:n,top:i,bottom:r,width:n,height:Math.max(r-i,0)},enableDebug:!1,host:{appId:``},language:navigator.language||`zh_CN`,version:``,theme:globalThis.matchMedia?.(`(prefers-color-scheme: dark)`)?.matches?`dark`:`light`,fontSizeScaleFactor:1,fontSizeSetting:16}}showToast(e={}){let{title:t=``,duration:n=1500,icon:r=`success`,mask:i=!1,success:a,complete:o}=e;if(!t)return;this.hideToast({});let s=this.createCallbackFunction(a),c=this.createCallbackFunction(o),l=null;i&&(l=document.createElement(`div`),l.className=`dimina-toast-mask`,this.el.appendChild(l));let u=document.createElement(`div`);u.className=`dimina-toast dimina-toast--${r}`,r===`none`&&u.classList.add(`dimina-toast--text-only`);let d=document.createElement(`p`);d.textContent=String(t),u.appendChild(d),this.el.appendChild(u),this.toastInfo.dom=u,this.toastInfo.maskEl=l,this.toastInfo.timer=setTimeout(()=>{u.remove(),l?.remove(),this.toastInfo.dom===u&&(this.toastInfo.dom=null,this.toastInfo.maskEl=null,this.toastInfo.timer=null)},n),s?.(),c?.()}hideToast(e={}){let{success:t,complete:n}=e,r=this.createCallbackFunction(t),i=this.createCallbackFunction(n);this.toastInfo.dom&&(this.toastInfo.dom.remove(),this.toastInfo.dom=null),this.toastInfo.maskEl&&(this.toastInfo.maskEl.remove(),this.toastInfo.maskEl=null),this.toastInfo.timer&&(clearTimeout(this.toastInfo.timer),this.toastInfo.timer=null),r?.(),i?.()}showLoading(e={}){this.showToast({...e,icon:`loading`})}hideLoading(e={}){this.hideToast(e)}showModal(e){if(this._destroyed)return;let t=this._mountModal(e||{});this._modalStack.push(t),this._updateModalView(),t.mask.classList.add(`show`);let n=setTimeout(()=>{this._modalPendingTimers.delete(n),!this._destroyed&&this._modalStack.includes(t)&&t.dialog.classList.add(`show`)},100);this._modalPendingTimers.add(n)}_updateModalView(){let e=this._modalStack.length-1;for(let t=0;t<this._modalStack.length;t++){let n=this._modalStack[t];t===e?(n.mask.classList.remove(`dimina-modal--occluded`),n.dialog.classList.remove(`dimina-modal--occluded`)):(n.mask.classList.add(`dimina-modal--occluded`),n.dialog.classList.add(`dimina-modal--occluded`))}}_mountModal(e){let{title:t=``,content:n=``,showCancel:r=!0,cancelText:i=`取消`,cancelColor:a=`#000`,confirmText:o=`确定`,confirmColor:s=`#576b95`,success:c,complete:l}=e,u=this.createCallbackFunction(c),d=this.createCallbackFunction(l),f=document.createElement(`div`);f.className=`dimina-dialog-mask`;let p=document.createElement(`div`);p.className=`dimina-dialog`;let m=this._modalStack.length;if(f.style.zIndex=String(1100+m*20),p.style.zIndex=String(1110+m*20),t){let e=document.createElement(`h2`);e.className=`dimina-dialog__title`,e.textContent=String(t),p.appendChild(e)}if(n){let e=document.createElement(`p`);e.className=`dimina-dialog__content`,e.textContent=String(n),p.appendChild(e)}let h=document.createElement(`div`);h.className=`dimina-dialog__buttons`;let g=!1,_={mask:f,dialog:p,close:null},v=e=>{if(g)return;g=!0;let t=this._modalStack.indexOf(_);t>=0&&this._modalStack.splice(t,1),this._modalStack.length===0?(f.classList.remove(`show`),p.classList.remove(`show`),setTimeout(()=>{f.remove(),p.remove()},200)):(f.remove(),p.remove()),this._updateModalView(),u?.(e),d?.()};if(_.close=v,r){let e=document.createElement(`button`);e.type=`button`,e.className=`dimina-dialog__button`,e.style.color=a,e.textContent=String(i),e.addEventListener(`click`,()=>{v({cancel:!0,confirm:!1,errMsg:`showModal:ok`})}),h.appendChild(e)}let y=document.createElement(`button`);return y.type=`button`,y.className=`dimina-dialog__button`,y.style.color=s,y.textContent=String(o),y.addEventListener(`click`,()=>{v({cancel:!1,confirm:!0,errMsg:`showModal:ok`})}),h.appendChild(y),p.appendChild(h),this.el.appendChild(f),this.el.appendChild(p),_}showActionSheet(e){let{itemList:t=[],itemColor:n=`#000`,success:r,fail:i,complete:a}=e||{};if(!Array.isArray(t)||t.length===0){i&&this.createCallbackFunction(i)({errMsg:`showActionSheet:fail`}),a&&this.createCallbackFunction(a)();return}let o=document.createElement(`div`);o.className=`dimina-action-sheet-mask`;let s=document.createElement(`div`);s.className=`dimina-action-sheet`;let c=()=>{o.remove(),s.remove()};t.forEach((e,t)=>{let i=document.createElement(`div`);i.className=`dimina-action-sheet-item`,i.style.color=n,i.textContent=e,i.onclick=()=>{c(),r&&this.createCallbackFunction(r)({tapIndex:t}),a&&this.createCallbackFunction(a)()},s.appendChild(i)});let l=document.createElement(`div`);l.className=`dimina-action-sheet-cancel`,l.textContent=`取消`,l.onclick=()=>{c(),i&&this.createCallbackFunction(i)({errMsg:`showActionSheet:fail cancel`}),a&&this.createCallbackFunction(a)()},s.appendChild(l),o.onclick=c,this.el.appendChild(o),this.el.appendChild(s),requestAnimationFrame(()=>requestAnimationFrame(()=>{s.classList.add(`show`),o.classList.add(`show`)}))}setNavigationBarTitle(e){let{title:t,success:n,fail:r,complete:i}=e,a=this.createCallbackFunction(n),o=this.createCallbackFunction(r),s=this.createCallbackFunction(i);try{let e=this.bridgeList[this.bridgeList.length-1].webview.el.querySelector(`.dimina-native-webview__navigation-title`);e?(e.textContent=t||``,a?.({errMsg:`setNavigationBarTitle:ok`})):o?.({errMsg:`setNavigationBarTitle:fail Navigation title element not found`})}catch(e){o?.({errMsg:`setNavigationBarTitle:fail ${e.message}`})}finally{s?.()}}setNavigationBarColor(e){let{frontColor:t,backgroundColor:n,success:r,fail:i,complete:a}=e,o=this.createCallbackFunction(r),s=this.createCallbackFunction(i),c=this.createCallbackFunction(a);try{let e=this.bridgeList[this.bridgeList.length-1].webview.el.querySelector(`.dimina-native-webview__navigation`);e?(t&&(e.querySelector(`.dimina-native-webview__navigation-title`).style.color=t),n&&(e.style.backgroundColor=n),o?.({errMsg:`setNavigationBarColor:ok`})):s?.({errMsg:`setNavigationBarColor:fail Navigation element not found`})}catch(e){s?.({errMsg:`setNavigationBarColor:fail ${e.message}`})}finally{c?.()}}pageScrollTo(e){let{scrollTop:t,duration:n=300,success:r,fail:i,complete:a}=e,o=this.createCallbackFunction(r),s=this.createCallbackFunction(i),c=this.createCallbackFunction(a);try{let e=this.bridgeList[this.bridgeList.length-1].webview.iframe.contentWindow.document.documentElement;e?(e.scrollTo({top:t,behavior:n>0?`smooth`:`auto`}),setTimeout(()=>{o?.({errMsg:`pageScrollTo:ok`}),c?.()},n)):(s?.({errMsg:`pageScrollTo:fail Webview root element not found`}),c?.())}catch(e){s?.({errMsg:`pageScrollTo:fail ${e.message}`}),c?.()}}setClipboardData(e){let{data:t,success:n,fail:r,complete:i}=e,a=this.createCallbackFunction(n),o=this.createCallbackFunction(r),s=this.createCallbackFunction(i);try{navigator.clipboard.writeText(t).then(()=>{a?.({errMsg:`setClipboardData:ok`}),s?.()}).catch(e=>{o?.({errMsg:`setClipboardData:fail ${e.message}`}),s?.()})}catch(e){o?.({errMsg:`setClipboardData:fail ${e.message}`}),s?.()}}getClipboardData(e){let{success:t,fail:n,complete:r}=e,i=this.createCallbackFunction(t),a=this.createCallbackFunction(n),o=this.createCallbackFunction(r);try{navigator.clipboard.readText().then(e=>{i?.({data:e,errMsg:`getClipboardData:ok`}),o?.()}).catch(e=>{a?.({errMsg:`getClipboardData:fail ${e.message}`}),o?.()})}catch(e){a?.({errMsg:`getClipboardData:fail ${e.message}`}),o?.()}}setStorage(e){let{key:t,data:n,success:r,fail:i,complete:a}=e,o=this.createCallbackFunction(r),s=this.createCallbackFunction(i),c=this.createCallbackFunction(a);try{let e=`${this.appId}_${t}`,r=typeof n==`object`?JSON.stringify(n):String(n);localStorage.setItem(e,r),o?.({errMsg:`setStorage:ok`})}catch(e){s?.({errMsg:`setStorage:fail ${e.message}`})}finally{c?.()}}getStorage(e){let{key:t,success:n,fail:r,complete:i}=e,a=this.createCallbackFunction(n),o=this.createCallbackFunction(r),s=this.createCallbackFunction(i);try{let e=`${this.appId}_${t}`,n=localStorage.getItem(e);if(n!==null){let e=n;try{e=JSON.parse(n)}catch{}a?.({data:e,errMsg:`getStorage:ok`})}else o?.({errMsg:`getStorage:fail data not found`})}catch(e){o?.({errMsg:`getStorage:fail ${e.message}`})}finally{s?.()}}removeStorage(e){let{key:t,success:n,fail:r,complete:i}=e,a=this.createCallbackFunction(n),o=this.createCallbackFunction(r),s=this.createCallbackFunction(i);try{let e=`${this.appId}_${t}`;localStorage.getItem(e)===null||localStorage.removeItem(e),a?.({errMsg:`removeStorage:ok`})}catch(e){o?.({errMsg:`removeStorage:fail ${e.message}`})}finally{s?.()}}clearStorage(e){let{success:t,fail:n,complete:r}=e||{},i=this.createCallbackFunction(t),a=this.createCallbackFunction(n),o=this.createCallbackFunction(r);try{let e=`${this.appId}_`,t=[];for(let n=0;n<localStorage.length;n++){let r=localStorage.key(n);r.startsWith(e)&&t.push(r)}t.forEach(e=>localStorage.removeItem(e)),i?.({errMsg:`clearStorage:ok`})}catch(e){a?.({errMsg:`clearStorage:fail ${e.message}`})}finally{o?.()}}getStorageInfo(e){let{success:t,fail:n,complete:r}=e||{},i=this.createCallbackFunction(t),a=this.createCallbackFunction(n),o=this.createCallbackFunction(r);try{let e=[],t=0,n=`${this.appId}_`;for(let r=0;r<localStorage.length;r++){let i=localStorage.key(r);if(i.startsWith(n)){let r=i.substring(n.length);e.push(r);let a=localStorage.getItem(i);t+=a?a.length*2:0}}i?.({keys:e,currentSize:t,limitSize:10485760,errMsg:`getStorageInfo:ok`})}catch(e){a?.({errMsg:`getStorageInfo:fail ${e.message}`})}finally{o?.()}}_parseExtEventKey(e){let t=Z.getExtModules();for(let n of Object.keys(t)){let t=`${n}_`;if(e.startsWith(t))return{module:n,event:e.slice(t.length)}}return{module:null,event:null}}_handleExtCall(e,t={}){t.module===void 0?t.success?this._extOnBridgeCall(e,t):this._extOffBridgeCall(e):this._extBridgeCall(e,t)}_extBridgeCall(e,t){let{module:n,data:r={},success:i,fail:a,complete:o}=t,s=this.createCallbackFunction(i),c=this.createCallbackFunction(a),l=this.createCallbackFunction(o),u=Z.getExtModule(n);if(!u){let e=`extBridge:fail module "${n}" not registered`;console.error(`[container] ${e}`),c?.({errMsg:e}),l?.();return}try{u({event:e,data:r,success:e=>{s?.(e),l?.()},fail:e=>{c?.(e),l?.()}})}catch(e){c?.({errMsg:`extBridge:fail ${e.message}`}),l?.()}}_extOnBridgeCall(e,t){let{success:n}=t,r=this.createCallbackFunction(n),{module:i,event:a}=this._parseExtEventKey(e);if(!i){console.warn(`[container] extOnBridge:fail no registered module matched for key "${e}"`);return}let o=Z.getExtModule(i);this._extSubscriptions.get(e)?.();try{let t=o({event:a,data:{isSustain:!0},success:e=>r?.(e),fail:t=>console.error(`[container] extOnBridge error (${e}):`,t)});this._extSubscriptions.set(e,t??null)}catch(e){console.error(`[container] extOnBridge:fail ${e.message}`)}}_extOffBridgeCall(e){let t=this._extSubscriptions.get(e);t&&(t(),this._extSubscriptions.delete(e))}};function W(e){let t=new Map;return function(...n){let r=n.length===1?n[0]:JSON.stringify(n);if(t.has(r))return t.get(r);let i=e.apply(this,n);return t.set(r,i),i}}var G=W(async()=>{let e=await fetch(`/appList.json`).then(e=>e.json());return e.forEach(e=>{let t=JSON.stringify(e),n=sessionStorage.getItem(t);if(n)e.logo=n;else{let n=X(e);sessionStorage.setItem(t,n),e.logo=n}}),e});async function K(e){let t=await G();for(let n of t)if(n.appId===e)return n}function q(e){if(!e||e.length===0)return`#2196F3`;let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;let n=J(Math.abs(t%360),.7+Math.abs(t%3e3)/1e4,.8+Math.abs(t%2e3)/1e4);return Y(n[0],n[1],n[2])}function J(e,t,n){let r,i,a,o=Math.floor(e/60),s=e/60-o,c=n*(1-t),l=n*(1-s*t),u=n*(1-(1-s)*t);switch(o%6){case 0:r=n,i=u,a=c;break;case 1:r=l,i=n,a=c;break;case 2:r=c,i=n,a=u;break;case 3:r=c,i=l,a=n;break;case 4:r=u,i=c,a=n;break;case 5:r=n,i=c,a=l;break}return[Math.round(r*255),Math.round(i*255),Math.round(a*255)]}function Y(e,t,n){return`#${((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)}`}function X(e){let t=[60,60],n=window.devicePixelRatio||1,r=document.createElement(`canvas`);r.style.width=t[0]+`px`,r.style.height=t[1]+`px`,r.width=t[0]*n,r.height=t[1]*n;let i=r.getContext(`2d`);i.scale(n,n),i.imageSmoothingEnabled=!0,i.imageSmoothingQuality=`high`,i.textRenderingOptimization=`optimizeQuality`,i.fillStyle=q(e.name),i.fillRect(0,0,t[0],t[1]),i.fillStyle=`rgb(255,255,255)`,i.font=`${t[0]*.6}px Arial`;let a=e.name.charAt(0),o=i.measureText(a),s=t[0]/2,c=t[1]/2+(o.actualBoundingBoxAscent-o.actualBoundingBoxDescent)/2;return i.textAlign=`center`,i.fillText(a,s,c),r.toDataURL(`image/png`,1)}var Z=class{static appStack=[];static _extModules={};static registerExtModule(e,t){this._extModules[e]=t}static getExtModule(e){return this._extModules[e]}static getExtModules(){return this._extModules}static async openApp(e,t){let{appId:n,path:r,scene:i,destroy:a,restoreStack:o}=e,{pagePath:s,query:c}=j(r),{name:l,logo:u}=await K(n);if(a)for(let e of this.appStack)e.appId!==n&&(e.bridgeList.pop()?.destroy(),t.destroyRootView(e));let d=this.getAppById(n);if(d)t.presentView(d,!0);else{let e=new U({appId:n,scene:i,name:l,logo:u,pagePath:s,query:c,restoreStack:o});this.appStack.push(e),t.presentView(e,!1)}}static getAppById(e){for(let t of this.appStack)if(t.appId===e)return t;return null}static popView(){this.appStack.pop()}static closeApp(e){e.parent.dismissView({destroy:!1})}},Q=()=>new Promise(e=>requestAnimationFrame(()=>requestAnimationFrame(e))),$=(e,t,n=560)=>new Promise(r=>{let i=setTimeout(r,n),a=n=>{(!t||n.propertyName===t)&&(clearTimeout(i),e.removeEventListener(`transitionend`,a),r())};e.addEventListener(`transitionend`,a)}),te=class{constructor(){this.el=null,this.window=null,this.root=null,this.views=[],this.rootView=null,this.parent=null,this.done=!0,this.isSleeping=!1,this._queue=Promise.resolve(),this.init()}_enqueue(e){return this._queue=this._queue.then(()=>e()),this._queue}init(){this.el=document.createElement(`div`),this.el.classList.add(`dimina-application`),this.window=document.createElement(`div`),this.window.classList.add(`dimina-native-window`),this.el.appendChild(this.window)}initRootView(e){this.rootView=e,e.parent=this,e.el.classList.add(`dimina-native-view--instage`),e.el.style.zIndex=1,this.root=e,this.window.appendChild(e.el),e.viewDidLoad()}async pushView(e){if(!this.done)return;this.done=!1;let t=this.views[this.views.length-1];e.parent=this,this.views.push(e),e.el.style.zIndex=this.views.length,e.el.classList.add(`dimina-native-view--before-enter`),this.window.appendChild(e.el),e?.viewDidLoad(),await Q(),t.el.classList.remove(`dimina-native-view--instage`),t.el.classList.add(`dimina-native-view--slide-out`),t.el.classList.add(`dimina-native-view--linear-anima`),e.el.classList.add(`dimina-native-view--enter-anima`),e.el.classList.add(`dimina-native-view--instage`),await $(e.el,`transform`),t.el.classList.remove(`dimina-native-view--linear-anima`),e.el.classList.remove(`dimina-native-view--before-enter`),e.el.classList.remove(`dimina-native-view--enter-anima`),e.el.classList.remove(`dimina-native-view--instage`),this.done=!0}async popView(){if(this.views.length<2||!this.done)return;this.done=!1;let e=this.views[this.views.length-2],t=this.views[this.views.length-1];e.el.classList.remove(`dimina-native-view--slide-out`),e.el.classList.add(`dimina-native-view--instage`),e.el.classList.add(`dimina-native-view--enter-anima`),t.el.classList.remove(`dimina-native-view--instage`),t.el.classList.add(`dimina-native-view--before-enter`),t.el.classList.add(`dimina-native-view--enter-anima`),await $(t.el,`transform`),this.views.pop(),this.window.removeChild(t.el),e.el.classList.remove(`dimina-native-view--enter-anima`),this.done=!0}presentView(e,t){return this._enqueue(()=>this._presentView(e,t))}async _presentView(e,t){if(!this.done)return;this.done=!1;let n=this.views[this.views.length-1];e.parent=this,e.el.style.zIndex=this.views.length+1,e.el.classList.add(`dimina-native-view--before-present`),e.el.classList.add(`dimina-native-view--enter-anima`),n?.el.classList.add(`dimina-native-view--before-presenting`),n?.el.classList.remove(`dimina-native-view--instage`),n?.el.classList.add(`dimina-native-view--enter-anima`),n?.onPresentOut(),e.onPresentIn(),!t&&this.el.appendChild(e.el),this.views.push(e),!t&&e.viewDidLoad&&e.viewDidLoad(),t&&e.restoreColorStyle(),await Q(),n?.el.classList.add(`dimina-native-view--presenting`),e.el.classList.add(`dimina-native-view--instage`),await $(e.el,`transform`),e.el.classList.remove(`dimina-native-view--before-present`),e.el.classList.remove(`dimina-native-view--enter-anima`),n?.el.classList.remove(`dimina-native-view--enter-anima`),n?.el.classList.remove(`dimina-native-view--before-presenting`),this.done=!0}dismissView(e={}){return this._enqueue(()=>this._dismissView(e))}async _dismissView(e={}){if(!this.done)return;this.done=!1;let t=this.views[this.views.length-2],n=this.views[this.views.length-1],{destroy:r=!0}=e;n.el.classList.add(`dimina-native-view--enter-anima`),t?.el.classList.add(`dimina-native-view--enter-anima`),t?.el.classList.add(`dimina-native-view--before-presenting`),await Q(),n.el.classList.add(`dimina-native-view--before-present`),n.el.classList.remove(`dimina-native-view--instage`),t?.el.classList.remove(`dimina-native-view--presenting`),t?.onPresentIn(),n?.onPresentOut(),await $(n.el,`transform`),r&&(n.destroy(),this.el.removeChild(n.el)),this.views.pop(),t?.el.classList.remove(`dimina-native-view--enter-anima`),t?.el.classList.remove(`dimina-native-view--before-presenting`),this.done=!0}async destroyRootView(e){e.destroy(),this.el.removeChild(e.el)}getActiveView(){return this.views[this.views.length-1]||this.rootView}sleepActiveView(){this.isSleeping||(this.isSleeping=!0,this.getActiveView()?.onPresentOut?.())}wakeActiveView(){if(!this.isSleeping)return;this.isSleeping=!1;let e=this.getActiveView();e?.restoreColorStyle?.(),e?.onPresentIn?.()}updateStatusBarColor(e){this.parent?.updateDeviceBarColor(e)}},ne=`<div class="dimina-app__page-view dimina-app__mini">
|
|
72
72
|
<div class="dimina-app-navigation">
|
|
73
73
|
<div class="dimina-app-navigation__content">
|
|
74
74
|
<div class="dimina-app-navigation__left-btn"></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font-size:clamp(.4px,.13333vw,2px)}*{-webkit-tap-highlight-color:transparent;vertical-align:baseline;scrollbar-width:none;outline:none;margin:0;padding:0}::-webkit-scrollbar{width:0;height:0;display:none}img{vertical-align:top;border:none}em,i{font-style:normal}ol,ul{list-style:none}button,h1,h2,h3,h4,h5,h6,input,select{font-family:inherit;font-size:100%}table{border-collapse:collapse;border-spacing:0}a,a:visited{text-decoration:none}body{-webkit-user-select:none;user-select:none;-webkit-overflow-scrolling:touch;font-family:HarmonyOSHans-Light,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:normal;overflow:hidden auto}.dd-page{box-sizing:border-box}@font-face{font-weight:400;font-style:normal;font-family:weui;src:url(data:application/octet-stream;base64,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)format("truetype")}.dd-button{box-sizing:border-box;text-align:center;-webkit-tap-highlight-color:transparent;color:#000;background-color:#f8f8f8;border-radius:5px;margin-left:auto;margin-right:auto;padding-left:14px;padding-right:14px;font-size:18px;line-height:2.55556;text-decoration:none;display:block;position:relative;overflow:hidden}.dd-button[hidden]{display:none}.dd-button:after{content:" ";transform-origin:0 0;box-sizing:border-box;border:1px solid #0003;border-radius:10px;width:200%;height:200%;position:absolute;top:0;left:0;transform:scale(.5)}.dd-button[native]{padding-left:0;padding-right:0}.dd-button[native] .dd-button-cover-view-wrapper{border:inherit;border-color:inherit;border-radius:inherit;background-color:inherit}.dd-button[native] .dd-button-cover-view-inner{padding-left:14px;padding-right:14px}.dd-button .dd-cover-view{line-height:inherit;white-space:inherit}.dd-button--default{color:#000;background-color:#f8f8f8}.dd-button--primary{color:#fff;background-color:#1aad19}.dd-button--warn{color:#fff;background-color:#e64340}.dd-button--disabled{color:#fff9}.dd-button--disabled.dd-button--default{color:#0000004d;background-color:#f7f7f7}.dd-button--disabled.dd-button--primary{background-color:#9ed99d}.dd-button--disabled.dd-button--warn{background-color:#ec8b89}.dd-button--primary.dd-button--plain{color:#1aad19;background-color:#0000;border:1px solid #1aad19}.dd-button--primary.dd-button--plain.dd-button--disabled{color:#0003;border-color:#0003}.dd-button--primary.dd-button--plain:after{border-width:0}.dd-button--default.dd-button--plain{color:#353535;background-color:#0000;border:1px solid #353535}.dd-button--default.dd-button--plain.dd-button--disabled{color:#0003;border-color:#0003}.dd-button--default.dd-button--plain:after{border-width:0}.dd-button--plain{color:#353535;background-color:#0000;border:1px solid #353535}.dd-button--plain.dd-button--disabled{color:#0003;border-color:#0003}.dd-button--plain:after{border-width:0}.dd-button--plain[native] .dd-button-cover-view-inner{padding:0}.dd-button--warn.dd-button--plain{color:#e64340;background-color:#0000;border:1px solid #e64340}.dd-button--warn.dd-button--plain.dd-button--disabled{color:#0003;border-color:#0003}.dd-button--warn.dd-button--plain:after{border-width:0}.dd-button--mini{padding:0 1.34em;font-size:13px;line-height:2.3;display:inline-block}.dd-button--mini[native]{padding:0}.dd-button--mini[native] .dd-button-cover-view-inner{padding:0 1.34em}.dd-button--loading:before{content:" ";vertical-align:middle;background:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iciIgd2lkdGg9JzEyMHB4JyBoZWlnaHQ9JzEyMHB4JyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJub25lIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjRTlFOUU5JwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoMCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHJ4PSc1JyByeT0nNScgZmlsbD0nIzk4OTY5NycKICAgICAgICAgIHRyYW5zZm9ybT0ncm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApJz4KICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0naW5kZWZpbml0ZScvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyM5Qjk5OUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSg2MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjQTNBMUEyJwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNBQkE5QUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxMjAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCMkIyQjInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCQUI4QjknCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxODAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDMkMwQzEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyMTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDQkNCQ0InCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEMkQyRDInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEQURBREEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNFMkUyRTInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0Pgo8L3N2Zz4=) 0 0/100% no-repeat;width:18px;height:18px;animation:1s steps(12,end) infinite dd-button-loading-animate;display:inline-block}.dd-button--loading.dd-button--primary{color:#fff9;background-color:#179b16}.dd-button--loading.dd-button--primary.dd-button--plain{color:#1aad19;background-color:#0000}.dd-button--loading.dd-button--default{color:#0009;background-color:#dedede}.dd-button--loading.dd-button--default.dd-button--plain{color:#353535;background-color:#0000}.dd-button--loading.dd-button--warn{color:#fff9;background-color:#ce3c39}.dd-button--loading.dd-button--warn.dd-button--plain{color:#e64340;background-color:#0000}.dd-button--loading[native]:before{content:none}@keyframes dd-button-loading-animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button-hover{color:#0009;background-color:#dedede}.button-hover.dd-button--plain{color:#35353599;background-color:#0000;border-color:#35353599}.button-hover.dd-button--primary{color:#fff9;background-color:#179b16}.button-hover.dd-button--primary.dd-button--plain{color:#1aad1999;background-color:#0000;border-color:#1aad1999}.button-hover.dd-button--default{color:#0009;background-color:#dedede}.button-hover.dd-button--default.dd-button--plain{color:#35353599;background-color:#0000;border-color:#35353599}.button-hover.dd-button--warn{color:#fff9;background-color:#ce3c39}.button-hover.dd-button--warn.dd-button--plain{color:#e6434099;background-color:#0000;border-color:#e6434099}.dd-camera{width:inherit;height:inherit}.dd-camera[hidden]{display:none}.dd-camera .dd-camera-container{-webkit-overflow-scrolling:touch;width:100%;height:100%;overflow:scroll}.dd-camera-desktop{color:#fff;background-color:gray;align-items:center;display:flex}.dd-checkbox{display:inline-block}.dd-checkbox[hidden]{display:none}.dd-checkbox-wrapper{vertical-align:middle;align-items:center;display:inline-flex}.dd-checkbox-input{appearance:none;text-indent:0;background-color:#fff;border:1px solid #d1d1d1;border-radius:3px;outline:0;width:22px;height:22px;margin-right:5px;position:relative}.dd-checkbox-input-checked{color:#09bb07}.dd-checkbox-input-checked:before{content:"";font:22px/1 weui;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)scale(.73)}.dd-checkbox-group{display:block}.dd-checkbox-group[hidden]{display:none}.dd-image{width:inherit;height:inherit;display:inline-block;overflow:hidden}.dd-image img{width:inherit;height:inherit;pointer-events:none}.dd-image img[src=""],.dd-image img:not([src]){opacity:0}.dd-image[hidden]{display:none}.dd-image-scale{object-fit:fill;width:100%;height:100%}.dd-image-aspect{object-fit:contain;width:100%;height:100%}.dd-image-fill{object-fit:cover;width:100%;height:100%}.dd-image-width{width:100%;height:auto}.dd-image-height{width:auto;height:100%}.dd-image-top{object-fit:none;object-position:top;width:100%;height:100%}.dd-image-bottom{object-fit:none;object-position:bottom;width:100%;height:100%}.dd-image-center{object-fit:none;object-position:center;width:100%;height:100%}.dd-image-left{object-fit:none;object-position:left;width:100%;height:100%}.dd-image-right{object-fit:none;object-position:right;width:100%;height:100%}.dd-image-top-left{object-fit:none;object-position:top left;width:100%;height:100%}.dd-image-top-right{object-fit:none;object-position:top right;width:100%;height:100%}.dd-image-bottom-left{object-fit:none;object-position:bottom left;width:100%;height:100%}.dd-image-bottom-right{object-fit:none;object-position:bottom right;width:100%;height:100%}.dd-view{display:block}.dd-view[hidden]{display:none}.dd-icon{font:14px/1 weui;font-size:var(--ca781606);color:var(--v86488c32) .dd-icon [hidden];color-display:none;display:inline-block}[class^=dd-icon-]:before,[class*=dd-icon-]:before{margin:0}.dd-icon-success{color:#09bb07}.dd-icon-success:before{content:""}.dd-icon-info{color:#10aeff}.dd-icon-info:before{content:""}.dd-icon-warn{color:#f76260}.dd-icon-warn:before{content:""}.dd-icon-waiting{color:#10aeff}.dd-icon-waiting:before{content:""}.dd-icon-safe_success{color:#09bb07}.dd-icon-safe_success:before{content:""}.dd-icon-safe_warn{color:#ffbe00}.dd-icon-safe_warn:before{content:""}.dd-icon-success_circle{color:#09bb07}.dd-icon-success_circle:before{content:""}.dd-icon-success_no_circle{color:#09bb07}.dd-icon-success_no_circle:before{content:""}.dd-icon-waiting_circle{color:#10aeff}.dd-icon-waiting_circle:before{content:""}.dd-icon-circle{color:#c9c9c9}.dd-icon-circle:before{content:""}.dd-icon-download{color:#09bb07}.dd-icon-download:before{content:""}.dd-icon-info_circle{color:#09bb07}.dd-icon-info_circle:before{content:""}.dd-icon-cancel{color:#f43530}.dd-icon-cancel:before{content:""}.dd-icon-search{color:#b2b2b2}.dd-icon-search:before{content:""}.dd-icon-clear{color:#b2b2b2}.dd-icon-clear:before{content:""}[class^=dd-icon-]:before,[class*=dd-icon-]:before{box-sizing:border-box}.dd-input-wrapper{width:100%;height:100%;position:relative}.dd-input{appearance:none;width:100%;font-family:inherit;font-size:inherit;color:inherit;height:inherit;text-align:inherit;overflow:inherit;white-space:inherit;text-overflow:inherit;background-color:#0000;border:none;outline:0;margin:0;padding:0;display:block}.dd-input::-webkit-outer-spin-button{appearance:none;margin:0}.dd-input::-webkit-inner-spin-button{appearance:none;margin:0}.dd-input-placeholder{pointer-events:none;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0}.dd-input-placeholder.input-placeholder{color:#0000004d}.dd-input-disabled{opacity:.5}.dd-map{width:inherit;height:inherit}.dd-map[hidden]{display:none}.dd-map .dd-map-container{-webkit-overflow-scrolling:touch;width:100%;height:100%;overflow:scroll}.dd-map-desktop{color:#fff;background-color:gray;justify-content:center;align-items:center;display:flex}.dd-movable-area{width:10px;height:10px;display:block;position:relative}.dd-movable-area[hidden]{display:none}.dd-movable-view{visibility:hidden;cursor:grab;width:10px;height:10px;display:inline-block;position:absolute;top:0;left:0}.dd-movable-view.direction-horizontal{touch-action:pan-y}.dd-movable-view.direction-vertical{touch-action:pan-x}.dd-movable-view.direction-all{touch-action:none}.dd-movable-view.direction-none{touch-action:auto}.dd-movable-view .dd-movable-view-content{all:inherit;visibility:visible;-webkit-overflow-scrolling:touch;transition-property:transform;transition-duration:var(--duration);transform-origin:50%;will-change:transform;backface-visibility:hidden;transition-timing-function:ease-out;top:0;left:0}.dd-movable-view[hidden]{display:none}.dd-navigator{width:auto;height:auto;display:block}.dd-navigator.navigator-hover{opacity:.7;background-color:#0000001a}.dd-navigator[hidden]{display:none}.dd-picker-column[data-v-61501610]{flex:1;height:220px;position:relative;overflow:hidden}.dd-picker-column .dd-picker-column-mask[data-v-61501610]{pointer-events:none;z-index:2;background:linear-gradient(#ffffffe6 0%,#fff6 40%,#fff0 50%,#fff6 60%,#ffffffe6 100%);position:absolute;inset:0}.dd-picker-column .dd-picker-column-indicator[data-v-61501610]{pointer-events:none;z-index:1;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;height:44px;margin-top:-22px;position:absolute;top:50%;left:0;right:0}.dd-picker-column .dd-picker-column-content[data-v-61501610]{cursor:grab;padding-top:88px;padding-bottom:88px;position:relative}.dd-picker-column .dd-picker-column-content[data-v-61501610]:active{cursor:grabbing}.dd-picker-column .dd-picker-column-item[data-v-61501610]{text-align:center;color:#333;height:44px;font-size:16px;line-height:44px;transition:color .3s}.dd-picker-column .dd-picker-column-item.dd-picker-column-item-selected[data-v-61501610]{color:#000;font-weight:500}.dd-picker{cursor:pointer;display:block}.dd-picker[hidden]{display:none}.dd-picker-overlay{z-index:1000;background-color:#0009;align-items:flex-end;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.dd-picker-container{background-color:#fff;border-radius:12px 12px 0 0;width:100%;max-height:80vh;animation:.3s slideUp}.dd-picker-header{background-color:#fafafa;border-bottom:1px solid #e5e5e5;border-radius:12px 12px 0 0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.dd-picker-action{cursor:pointer;border-radius:4px;padding:4px 8px;font-size:16px;transition:background-color .2s}.dd-picker-action:hover{background-color:#0000000d}.dd-picker-cancel{color:#999}.dd-picker-confirm{color:#09bb07;font-weight:500}.dd-picker-title{color:#333;font-size:16px;font-weight:500}.dd-picker-body{background-color:#fff;padding:20px 0}.dd-picker-columns{align-items:center;gap:0;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.dd-picker-view{display:flex;position:relative;overflow:hidden}.dd-picker-view[hidden]{display:none}.dd-picker-view-column{z-index:0;flex:1;height:100%;position:relative;overflow:hidden}.dd-picker-view-column .dd-picker__mask{transform:translateZ(0)}.dd-picker-view-column .dd-picker__indicator,.dd-picker-view-column .dd-picker__mask{z-index:3;width:100%;position:absolute;left:0}.dd-picker-view-column .dd-picker__mask{background-color:#0000;background-image:linear-gradient(#fffffff2,#fff9),linear-gradient(#fff9,#fffffff2);background-position:top,bottom;background-repeat:no-repeat;background-size:100% 102px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;height:100%;margin:0 auto;top:0}.dd-picker-view-column .dd-picker__indicator{top:102px}.dd-picker-view-column .dd-picker__indicator,.dd-picker-view-column .dd-picker__mask{z-index:3;pointer-events:none;width:100%;position:absolute;left:0}.dd-picker-view-column .dd-picker__content{width:100%;transition:transform var(--duration) ease-out 0s;cursor:grab;position:absolute;top:0;left:0}.dd-picker-view-column .dd-picker__indicator:before{transform-origin:0 0;border-top:1px solid #e5e5e5;top:0;transform:scaleY(.5)}.dd-picker-view-column .dd-picker__indicator:after{transform-origin:0 100%;border-bottom:1px solid #e5e5e5;bottom:0;transform:scaleY(.5)}.dd-picker-view-column .dd-picker__indicator:after,.dd-picker-view-column .dd-picker__indicator:before{content:" ";color:#e5e5e5;height:1px;position:absolute;left:0;right:0}.dd-progress{align-items:center;display:flex}.dd-progress[hidden]{display:none}.dd-progress .dd-progress-bar{flex:1;overflow:hidden}.dd-progress .dd-progress-inner-bar{--percent:0;--duration:0s;width:var(--percent);height:100%;transition-duration:var(--duration);transition-property:width}.dd-progress .dd-progress-info{min-width:2em;margin-top:0;margin-bottom:0;margin-left:15px;font-size:16px}.dd-radio{display:inline-block}.dd-radio[hidden]{display:none}.dd-radio-wrapper{vertical-align:middle;align-items:center;display:inline-flex}.dd-radio-input{appearance:none;background-color:#fff;border:1px solid #d1d1d1;border-radius:50%;outline:0;width:22px;height:22px;margin-right:5px;position:relative}.dd-radio-input-checked{background-color:#09bb07;border-color:#09bb07}.dd-radio-input-checked:before{content:"";color:#fff;font:18px/1 weui;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)scale(.73)}.dd-radio-input-disabled{background-color:#e1e1e1;border-color:#d1d1d1}.dd-radio-input-disabled:before{color:#adadad}.dd-radio-group{display:block}.dd-radio-group[hidden]{display:none}.dd-rich-text{-webkit-user-select:text;user-select:text}.dd-rich-text[hidden]{display:none}.dd-root-portal{z-index:1000;width:100%;height:100%;position:fixed;top:0;left:0}.dd-root-portal-disabled{display:block}.dd-scroll-view{width:100%;height:inherit;-webkit-overflow-scrolling:touch;max-height:inherit;position:relative;overflow:auto}.dd-scroll-view[hidden]{display:none}.dd-scroll-view.scroll-x{overflow:auto hidden!important}.dd-scroll-view.scroll-y{overflow:hidden auto!important}.dd-scroll-view.scroll-x.scroll-y{overflow:auto}.dd-scroll-view.hide-scrollbar{scroll-behavior:smooth;position:relative}.dd-scroll-view.hide-scrollbar::-webkit-scrollbar{width:0;height:0}.dd-slider{margin:10px 18px;padding:0;display:block}.dd-slider[hidden]{display:block}.dd-slider-wrapper{align-items:center;min-height:16px;display:flex}.dd-slider-tap-area{flex:1;padding:8px 0}.dd-slider-handle-wrapper{z-index:0;cursor:pointer;-webkit-tap-highlight-color:transparent;background-color:#e9e9e9;border-radius:5px;height:2px;transition:background-color .3s;position:relative}.dd-slider-track{background-color:#1aad19;border-radius:6px;height:100%;transition:background-color .3s}.dd-slider-handle,.dd-slider-thumb{cursor:grab;border-radius:50%;transition:border-color .3s;position:absolute;top:50%;left:0%}.dd-slider-handle{z-index:3;background-color:#0000;width:28px;height:28px;margin-top:-14px;margin-left:-14px}.dd-slider-thumb{z-index:2;background-color:#fff;width:28px;height:28px;margin-top:-14px;margin-left:-14px;box-shadow:0 0 4px #0003}.dd-slider-step{z-index:1;background:0 0;width:100%;height:2px;position:absolute}.dd-slider-value{color:#888;text-align:center;margin-left:1em;font-size:14px}.dd-slider-disabled .dd-slider-track{background-color:#ccc}.dd-slider-disabled .dd-slider-thumb{background-color:#fff;border-color:#ccc}.dd-swiper{height:150px;display:block}.dd-swiper[hidden]{display:none}.dd-swiper .dd-swiper-wrapper{cursor:grab;width:100%;height:100%;position:relative;overflow:hidden}.dd-swiper .dd-swiper-slides{position:absolute;inset:0}.dd-swiper .dd-swiper-slide-frame{will-change:transform;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.dd-swiper .dd-swiper-dots{font-size:0;position:absolute}.dd-swiper .dd-swiper-dots-horizontal{text-align:center;white-space:nowrap;bottom:10px;left:50%;transform:translate(-50%)}.dd-swiper .dd-swiper-dots-horizontal .dd-swiper-dot{margin-right:8px}.dd-swiper .dd-swiper-dots-horizontal .dd-swiper-dot:last-child{margin-right:0}.dd-swiper .dd-swiper-dots-vertical{text-align:right;top:50%;right:10px;transform:translateY(-50%)}.dd-swiper .dd-swiper-dots-vertical .dd-swiper-dot{margin-bottom:9px;display:block}.dd-swiper .dd-swiper-dots-vertical .dd-swiper-dot:last-child{margin-bottom:0}.dd-swiper .dd-swiper-dot{background:#0000004d;border-radius:50%;width:8px;height:8px;transition-property:background-color;transition-timing-function:ease;display:inline-block}.dd-swiper .dd-swiper-dot-active{background-color:#000}.dd-swiper-item{will-change:transform;flex:0 0 100%;width:100%;display:block}.dd-swiper-item[hidden]{display:none}.dd-switch-input{appearance:none;box-sizing:border-box;background-color:#dfdfdf;border:1px solid #dfdfdf;border-radius:16px;outline:0;width:52px;height:32px;margin-right:5px;transition:background-color .1s,border .1s;display:inline-block;position:relative}.dd-switch-input:before{content:" ";background-color:#fdfdfd;border-radius:15px;width:50px;height:30px;transition:transform .3s;position:absolute;top:0;left:0}.dd-switch-input:after{content:" ";background-color:#fff;border-radius:15px;width:30px;height:30px;transition:transform .3s;position:absolute;top:0;left:0;box-shadow:0 1px 3px #0006}.dd-switch-input-inner{border-radius:inherit;position:absolute;inset:0}.dd-switch-input-checked:before{transform:scale(0)}.dd-switch-input-checked:after{transform:translate(20px)}.dd-checkbox-input{appearance:none;background-color:#fff;border:1px solid #d1d1d1;border-radius:3px;outline:0;width:22px;height:22px;margin-right:5px;display:inline-block;position:relative}.dd-checkbox-input-inner{border-radius:inherit;position:absolute;inset:0}.dd-checkbox-input-checked .dd-checkbox-input-inner:before{content:"";color:inherit;font:22px/1 weui;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)scale(.73)}.dd-checkbox-input-disabled{background-color:#e1e1e1}.dd-checkbox-input-disabled:before{color:#adadad}.dd-text{-webkit-user-select:none;user-select:none;display:inline}.dd-text[hidden]{display:none}.dd-text-selectable{cursor:auto;-webkit-user-select:text;user-select:text;display:inline-block}.dd-textarea-wrapper{width:100%;height:100%;position:relative}.dd-textarea{resize:none;width:100%;height:100%;font-family:inherit;line-height:1.2;font-size:inherit;color:inherit;background-color:#0000;border:none;outline:none;padding:0;display:block;position:relative}.dd-textarea::-webkit-scrollbar{display:none}.dd-textarea[hidden]{display:none}.dd-textarea-placeholder{padding:inherit;pointer-events:none;position:absolute;top:0;left:0}.dd-textarea-placeholder.textarea-placeholder{color:#0000004d}.dd-textarea-disabled{opacity:.5}.dd-video{z-index:0;width:300px;height:225px;line-height:0;display:inline-block;position:relative;overflow:hidden}.dd-video[hidden]{display:none}.dd-video .dd-video-container{-webkit-overflow-scrolling:touch;width:100%;height:100%;overflow:scroll}.dd-video[data-dimina-native-type=native\/video]{opacity:0;background:0 0!important}.dd-video-placeholder{color:#fff;background-color:gray;justify-content:center;align-items:center;display:flex}.dd-web-view{width:100vw;height:100vh}.dd-web-view-pc{border:0;width:100%;height:100%;position:absolute;top:0;left:0}
|
|
1
|
+
:root{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font-size:clamp(.4px,.13333vw,2px)}*{-webkit-tap-highlight-color:transparent;vertical-align:baseline;scrollbar-width:none;outline:none;margin:0;padding:0}::-webkit-scrollbar{width:0;height:0;display:none}img{vertical-align:top;border:none}em,i{font-style:normal}ol,ul{list-style:none}button,h1,h2,h3,h4,h5,h6,input,select{font-family:inherit;font-size:100%}table{border-collapse:collapse;border-spacing:0}a,a:visited{text-decoration:none}body{-webkit-user-select:none;user-select:none;-webkit-overflow-scrolling:touch;font-family:HarmonyOSHans-Light,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:normal;overflow:hidden auto}.dd-page{box-sizing:border-box;min-height:100vh}@font-face{font-weight:400;font-style:normal;font-family:weui;src:url(data:application/octet-stream;base64,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)format("truetype")}.dd-button{box-sizing:border-box;text-align:center;-webkit-tap-highlight-color:transparent;color:#000;background-color:#f8f8f8;border-radius:5px;margin-left:auto;margin-right:auto;padding-left:14px;padding-right:14px;font-size:18px;line-height:2.55556;text-decoration:none;display:block;position:relative;overflow:hidden}.dd-button[hidden]{display:none}.dd-button:after{content:" ";transform-origin:0 0;box-sizing:border-box;border:1px solid #0003;border-radius:10px;width:200%;height:200%;position:absolute;top:0;left:0;transform:scale(.5)}.dd-button[native]{padding-left:0;padding-right:0}.dd-button[native] .dd-button-cover-view-wrapper{border:inherit;border-color:inherit;border-radius:inherit;background-color:inherit}.dd-button[native] .dd-button-cover-view-inner{padding-left:14px;padding-right:14px}.dd-button .dd-cover-view{line-height:inherit;white-space:inherit}.dd-button--default{color:#000;background-color:#f8f8f8}.dd-button--primary{color:#fff;background-color:#1aad19}.dd-button--warn{color:#fff;background-color:#e64340}.dd-button--disabled{color:#fff9}.dd-button--disabled.dd-button--default{color:#0000004d;background-color:#f7f7f7}.dd-button--disabled.dd-button--primary{background-color:#9ed99d}.dd-button--disabled.dd-button--warn{background-color:#ec8b89}.dd-button--primary.dd-button--plain{color:#1aad19;background-color:#0000;border:1px solid #1aad19}.dd-button--primary.dd-button--plain.dd-button--disabled{color:#0003;border-color:#0003}.dd-button--primary.dd-button--plain:after{border-width:0}.dd-button--default.dd-button--plain{color:#353535;background-color:#0000;border:1px solid #353535}.dd-button--default.dd-button--plain.dd-button--disabled{color:#0003;border-color:#0003}.dd-button--default.dd-button--plain:after{border-width:0}.dd-button--plain{color:#353535;background-color:#0000;border:1px solid #353535}.dd-button--plain.dd-button--disabled{color:#0003;border-color:#0003}.dd-button--plain:after{border-width:0}.dd-button--plain[native] .dd-button-cover-view-inner{padding:0}.dd-button--warn.dd-button--plain{color:#e64340;background-color:#0000;border:1px solid #e64340}.dd-button--warn.dd-button--plain.dd-button--disabled{color:#0003;border-color:#0003}.dd-button--warn.dd-button--plain:after{border-width:0}.dd-button--mini{padding:0 1.34em;font-size:13px;line-height:2.3;display:inline-block}.dd-button--mini[native]{padding:0}.dd-button--mini[native] .dd-button-cover-view-inner{padding:0 1.34em}.dd-button--loading:before{content:" ";vertical-align:middle;background:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iciIgd2lkdGg9JzEyMHB4JyBoZWlnaHQ9JzEyMHB4JyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJub25lIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjRTlFOUU5JwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoMCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHJ4PSc1JyByeT0nNScgZmlsbD0nIzk4OTY5NycKICAgICAgICAgIHRyYW5zZm9ybT0ncm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApJz4KICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0naW5kZWZpbml0ZScvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyM5Qjk5OUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSg2MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjQTNBMUEyJwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNBQkE5QUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxMjAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCMkIyQjInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCQUI4QjknCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxODAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDMkMwQzEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyMTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDQkNCQ0InCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEMkQyRDInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEQURBREEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNFMkUyRTInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0Pgo8L3N2Zz4=) 0 0/100% no-repeat;width:18px;height:18px;animation:1s steps(12,end) infinite dd-button-loading-animate;display:inline-block}.dd-button--loading.dd-button--primary{color:#fff9;background-color:#179b16}.dd-button--loading.dd-button--primary.dd-button--plain{color:#1aad19;background-color:#0000}.dd-button--loading.dd-button--default{color:#0009;background-color:#dedede}.dd-button--loading.dd-button--default.dd-button--plain{color:#353535;background-color:#0000}.dd-button--loading.dd-button--warn{color:#fff9;background-color:#ce3c39}.dd-button--loading.dd-button--warn.dd-button--plain{color:#e64340;background-color:#0000}.dd-button--loading[native]:before{content:none}@keyframes dd-button-loading-animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button-hover{color:#0009;background-color:#dedede}.button-hover.dd-button--plain{color:#35353599;background-color:#0000;border-color:#35353599}.button-hover.dd-button--primary{color:#fff9;background-color:#179b16}.button-hover.dd-button--primary.dd-button--plain{color:#1aad1999;background-color:#0000;border-color:#1aad1999}.button-hover.dd-button--default{color:#0009;background-color:#dedede}.button-hover.dd-button--default.dd-button--plain{color:#35353599;background-color:#0000;border-color:#35353599}.button-hover.dd-button--warn{color:#fff9;background-color:#ce3c39}.button-hover.dd-button--warn.dd-button--plain{color:#e6434099;background-color:#0000;border-color:#e6434099}.dd-camera{width:100%;display:block;position:relative;overflow:hidden}.dd-camera[hidden]{display:none}.dd-camera-native,.dd-camera-unavailable,.dd-camera-slot{width:100%;height:100%;position:absolute;inset:0}.dd-camera-container{-webkit-overflow-scrolling:touch;overflow:scroll}.dd-camera-container>div{width:101%;height:101%}.dd-camera-unavailable{color:#fff;background-color:gray;justify-content:center;align-items:center;display:flex}.dd-camera-slot{pointer-events:none}.dd-camera-slot *{pointer-events:auto}.dd-camera-native[data-dimina-native-type=native\/camera]{opacity:0;background:0 0!important}.dd-canvas{width:300px;height:150px;display:block;position:relative}.dd-canvas>canvas{width:100%;height:100%;position:absolute;top:0;left:0}.dd-canvas[hidden]{display:none}.dd-canvas-slot{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.dd-canvas-slot *{pointer-events:auto}.dd-checkbox{display:inline-block}.dd-checkbox[hidden]{display:none}.dd-checkbox-wrapper{vertical-align:middle;align-items:center;display:inline-flex}.dd-checkbox-input{appearance:none;text-indent:0;background-color:#fff;border:1px solid #d1d1d1;border-radius:3px;outline:0;width:22px;height:22px;margin-right:5px;position:relative}.dd-checkbox-input-checked{color:#09bb07}.dd-checkbox-input-checked:before{content:"";font:22px/1 weui;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)scale(.73)}.dd-checkbox-group{display:block}.dd-checkbox-group[hidden]{display:none}.dd-image{background-repeat:no-repeat;width:320px;height:240px;display:inline-block;overflow:hidden}.dd-image img{width:inherit;height:inherit;pointer-events:none}.dd-image img[src=""],.dd-image img:not([src]){opacity:0}.dd-image[hidden]{display:none}.dd-image-preloader{opacity:0}.dd-image-scale{object-fit:fill;width:100%;height:100%}.dd-image-aspect{object-fit:contain;width:100%;height:100%}.dd-image-fill{object-fit:cover;width:100%;height:100%}.dd-image-width{width:100%;height:auto}.dd-image-height{width:auto;height:100%}.dd-image-top{object-fit:none;object-position:top;width:100%;height:100%}.dd-image-bottom{object-fit:none;object-position:bottom;width:100%;height:100%}.dd-image-center{object-fit:none;object-position:center;width:100%;height:100%}.dd-image-left{object-fit:none;object-position:left;width:100%;height:100%}.dd-image-right{object-fit:none;object-position:right;width:100%;height:100%}.dd-image-top-left{object-fit:none;object-position:top left;width:100%;height:100%}.dd-image-top-right{object-fit:none;object-position:top right;width:100%;height:100%}.dd-image-bottom-left{object-fit:none;object-position:bottom left;width:100%;height:100%}.dd-image-bottom-right{object-fit:none;object-position:bottom right;width:100%;height:100%}.dd-view{display:block}.dd-view[hidden]{display:none}.dd-icon{font:14px/1 weui;font-size:var(--c819827a);color:var(--v3cd4ae3e) .dd-icon [hidden];color-display:none;display:inline-block}[class^=dd-icon-]:before,[class*=dd-icon-]:before{margin:0}.dd-icon-success{color:#09bb07}.dd-icon-success:before{content:""}.dd-icon-info{color:#10aeff}.dd-icon-info:before{content:""}.dd-icon-warn{color:#f76260}.dd-icon-warn:before{content:""}.dd-icon-waiting{color:#10aeff}.dd-icon-waiting:before{content:""}.dd-icon-safe_success{color:#09bb07}.dd-icon-safe_success:before{content:""}.dd-icon-safe_warn{color:#ffbe00}.dd-icon-safe_warn:before{content:""}.dd-icon-success_circle{color:#09bb07}.dd-icon-success_circle:before{content:""}.dd-icon-success_no_circle{color:#09bb07}.dd-icon-success_no_circle:before{content:""}.dd-icon-waiting_circle{color:#10aeff}.dd-icon-waiting_circle:before{content:""}.dd-icon-circle{color:#c9c9c9}.dd-icon-circle:before{content:""}.dd-icon-download{color:#09bb07}.dd-icon-download:before{content:""}.dd-icon-info_circle{color:#09bb07}.dd-icon-info_circle:before{content:""}.dd-icon-cancel{color:#f43530}.dd-icon-cancel:before{content:""}.dd-icon-search{color:#b2b2b2}.dd-icon-search:before{content:""}.dd-icon-clear{color:#b2b2b2}.dd-icon-clear:before{content:""}[class^=dd-icon-]:before,[class*=dd-icon-]:before{box-sizing:border-box}.dd-input-wrapper{width:100%;height:100%;position:relative}.dd-input{appearance:none;width:100%;font-family:inherit;font-size:inherit;color:inherit;height:inherit;text-align:inherit;overflow:inherit;white-space:inherit;text-overflow:inherit;background-color:#0000;border:none;outline:0;margin:0;padding:0;display:block}.dd-input::-webkit-outer-spin-button{appearance:none;margin:0}.dd-input::-webkit-inner-spin-button{appearance:none;margin:0}.dd-input-placeholder{pointer-events:none;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0}.dd-input-placeholder.input-placeholder{color:#0000004d}.dd-input-disabled{opacity:.5}.dd-keyboard-accessory{overflow:auto}.dd-map{width:300px;height:150px;display:block;position:relative;overflow:hidden}.dd-map[hidden]{display:none}.dd-map-native,.dd-map-desktop,.dd-map-slot{width:100%;height:100%;position:absolute;inset:0}.dd-map-container{-webkit-overflow-scrolling:touch;overflow:scroll}.dd-map-container>div{width:101%;height:101%}.dd-map-desktop{color:#fff;background-color:gray;justify-content:center;align-items:center;display:flex}.dd-map-slot{pointer-events:none}.dd-map-slot *{pointer-events:auto}.dd-map-native[data-dimina-native-type=native\/map]{opacity:0;background:0 0!important}.dd-movable-area{width:10px;height:10px;display:block;position:relative}.dd-movable-area[hidden]{display:none}.dd-movable-view{visibility:hidden;cursor:grab;width:10px;height:10px;display:inline-block;position:absolute;top:0;left:0}.dd-movable-view.direction-horizontal{touch-action:pan-y}.dd-movable-view.direction-vertical{touch-action:pan-x}.dd-movable-view.direction-all{touch-action:none}.dd-movable-view.direction-none{touch-action:auto}.dd-movable-view .dd-movable-view-content{all:inherit;visibility:visible;-webkit-overflow-scrolling:touch;transition-property:transform;transition-duration:var(--duration);transform-origin:50%;will-change:transform;backface-visibility:hidden;transition-timing-function:ease-out;top:0;left:0}.dd-movable-view[hidden]{display:none}.dd-navigator{width:auto;height:auto;display:block}.dd-navigator.navigator-hover{opacity:.7;background-color:#0000001a}.dd-navigator[hidden],.dd-open-data[hidden]{display:none}.dd-open-data-avatar{width:100%;height:100%;display:block}.dd-picker-column[data-v-61501610]{flex:1;height:220px;position:relative;overflow:hidden}.dd-picker-column .dd-picker-column-mask[data-v-61501610]{pointer-events:none;z-index:2;background:linear-gradient(#ffffffe6 0%,#fff6 40%,#fff0 50%,#fff6 60%,#ffffffe6 100%);position:absolute;inset:0}.dd-picker-column .dd-picker-column-indicator[data-v-61501610]{pointer-events:none;z-index:1;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;height:44px;margin-top:-22px;position:absolute;top:50%;left:0;right:0}.dd-picker-column .dd-picker-column-content[data-v-61501610]{cursor:grab;padding-top:88px;padding-bottom:88px;position:relative}.dd-picker-column .dd-picker-column-content[data-v-61501610]:active{cursor:grabbing}.dd-picker-column .dd-picker-column-item[data-v-61501610]{text-align:center;color:#333;height:44px;font-size:16px;line-height:44px;transition:color .3s}.dd-picker-column .dd-picker-column-item.dd-picker-column-item-selected[data-v-61501610]{color:#000;font-weight:500}.dd-picker{cursor:pointer;display:block}.dd-picker[hidden]{display:none}.dd-picker-overlay{z-index:1000;background-color:#0009;align-items:flex-end;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.dd-picker-container{background-color:#fff;border-radius:12px 12px 0 0;width:100%;max-height:80vh;animation:.3s slideUp}.dd-picker-header{background-color:#fafafa;border-bottom:1px solid #e5e5e5;border-radius:12px 12px 0 0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.dd-picker-action{cursor:pointer;border-radius:4px;padding:4px 8px;font-size:16px;transition:background-color .2s}.dd-picker-action:hover{background-color:#0000000d}.dd-picker-cancel{color:#999}.dd-picker-confirm{color:#09bb07;font-weight:500}.dd-picker-title{color:#333;font-size:16px;font-weight:500}.dd-picker-body{background-color:#fff;padding:20px 0}.dd-picker-columns{align-items:center;gap:0;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.dd-picker-view{display:flex;position:relative;overflow:hidden}.dd-picker-view[hidden]{display:none}.dd-picker-view-column{z-index:0;flex:1;height:100%;position:relative;overflow:hidden}.dd-picker-view-column .dd-picker__mask{transform:translateZ(0)}.dd-picker-view-column .dd-picker__indicator,.dd-picker-view-column .dd-picker__mask{z-index:3;width:100%;position:absolute;left:0}.dd-picker-view-column .dd-picker__mask{background-color:#0000;background-image:linear-gradient(#fffffff2,#fff9),linear-gradient(#fff9,#fffffff2);background-position:top,bottom;background-repeat:no-repeat;background-size:100% 102px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;height:100%;margin:0 auto;top:0}.dd-picker-view-column .dd-picker__indicator{top:102px}.dd-picker-view-column .dd-picker__indicator,.dd-picker-view-column .dd-picker__mask{z-index:3;pointer-events:none;width:100%;position:absolute;left:0}.dd-picker-view-column .dd-picker__content{width:100%;transition:transform var(--duration) ease-out 0s;cursor:grab;position:absolute;top:0;left:0}.dd-picker-view-column .dd-picker__indicator:before{transform-origin:0 0;border-top:1px solid #e5e5e5;top:0;transform:scaleY(.5)}.dd-picker-view-column .dd-picker__indicator:after{transform-origin:0 100%;border-bottom:1px solid #e5e5e5;bottom:0;transform:scaleY(.5)}.dd-picker-view-column .dd-picker__indicator:after,.dd-picker-view-column .dd-picker__indicator:before{content:" ";color:#e5e5e5;height:1px;position:absolute;left:0;right:0}.dd-progress{align-items:center;display:flex}.dd-progress[hidden]{display:none}.dd-progress .dd-progress-bar{flex:1;overflow:hidden}.dd-progress .dd-progress-inner-bar{width:0;height:100%}.dd-progress .dd-progress-info{min-width:2em;margin-top:0;margin-bottom:0;margin-left:15px;font-size:16px}.dd-radio{display:inline-block}.dd-radio[hidden]{display:none}.dd-radio-wrapper{vertical-align:middle;align-items:center;display:inline-flex}.dd-radio-input{appearance:none;background-color:#fff;border:1px solid #d1d1d1;border-radius:50%;outline:0;width:22px;height:22px;margin-right:5px;position:relative}.dd-radio-input-checked{background-color:#09bb07;border-color:#09bb07}.dd-radio-input-checked:before{content:"";color:#fff;font:18px/1 weui;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)scale(.73)}.dd-radio-input-disabled{background-color:#e1e1e1;border-color:#d1d1d1}.dd-radio-input-disabled:before{color:#adadad}.dd-radio-group{display:block}.dd-radio-group[hidden]{display:none}.dd-rich-text{-webkit-user-select:text;user-select:text}.dd-rich-text[hidden],.dd-root-portal-host,.dd-root-portal-content[hidden]{display:none}.dd-scroll-view{width:100%;height:inherit;-webkit-overflow-scrolling:touch;max-height:inherit;position:relative;overflow:auto}.dd-scroll-view[hidden]{display:none}.dd-scroll-view.scroll-x{overflow:auto hidden!important}.dd-scroll-view.scroll-y{overflow:hidden auto!important}.dd-scroll-view.scroll-x.scroll-y{overflow:auto}.dd-scroll-view.scroll-disabled{overflow:hidden!important}.dd-scroll-view.hide-scrollbar{scroll-behavior:smooth;position:relative}.dd-scroll-view.hide-scrollbar::-webkit-scrollbar{width:0;height:0}.dd-slider{margin:10px 18px;padding:0;display:block}.dd-slider[hidden]{display:none}.dd-slider-wrapper{align-items:center;min-height:16px;display:flex}.dd-slider-tap-area{flex:1;padding:8px 0}.dd-slider-handle-wrapper{z-index:0;cursor:pointer;-webkit-tap-highlight-color:transparent;background-color:#e9e9e9;border-radius:5px;height:2px;transition:background-color .3s;position:relative}.dd-slider-track{background-color:#1aad19;border-radius:6px;height:100%;transition:background-color .3s}.dd-slider-handle,.dd-slider-thumb{cursor:grab;border-radius:50%;transition:border-color .3s;position:absolute;top:50%;left:0%}.dd-slider-handle{z-index:3;background-color:#0000;width:28px;height:28px;margin-top:-14px;margin-left:-14px}.dd-slider-thumb{z-index:2;background-color:#fff;width:28px;height:28px;margin-top:-14px;margin-left:-14px;box-shadow:0 0 4px #0003}.dd-slider-step{z-index:1;background:0 0;width:100%;height:2px;position:absolute}.dd-slider-value{color:#888;text-align:center;margin-left:1em;font-size:14px}.dd-slider-disabled .dd-slider-track{background-color:#ccc}.dd-slider-disabled .dd-slider-thumb{background-color:#fff;border-color:#ccc}.dd-swiper{height:150px;display:block}.dd-swiper[hidden]{display:none}.dd-swiper .dd-swiper-wrapper{cursor:grab;width:100%;height:100%;position:relative;overflow:hidden}.dd-swiper .dd-swiper-slides{position:absolute;inset:0}.dd-swiper .dd-swiper-slide-frame{will-change:transform;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.dd-swiper.dd-swiper-skip-hidden .dd-swiper-item{content-visibility:auto;contain-intrinsic-size:100% 100%}.dd-swiper .dd-swiper-dots{font-size:0;position:absolute}.dd-swiper .dd-swiper-dots-horizontal{text-align:center;white-space:nowrap;bottom:10px;left:50%;transform:translate(-50%)}.dd-swiper .dd-swiper-dots-horizontal .dd-swiper-dot{margin-right:8px}.dd-swiper .dd-swiper-dots-horizontal .dd-swiper-dot:last-child{margin-right:0}.dd-swiper .dd-swiper-dots-vertical{text-align:right;top:50%;right:10px;transform:translateY(-50%)}.dd-swiper .dd-swiper-dots-vertical .dd-swiper-dot{margin-bottom:9px;display:block}.dd-swiper .dd-swiper-dots-vertical .dd-swiper-dot:last-child{margin-bottom:0}.dd-swiper .dd-swiper-dot{background:#0000004d;border-radius:50%;width:8px;height:8px;transition-property:background-color;transition-timing-function:ease;display:inline-block}.dd-swiper .dd-swiper-dot-active{background-color:#000}.dd-swiper-item{will-change:transform;flex:0 0 100%;width:100%;display:block}.dd-swiper-item[hidden]{display:none}.dd-switch-input{appearance:none;box-sizing:border-box;background-color:#dfdfdf;border:1px solid #dfdfdf;border-radius:16px;outline:0;width:52px;height:32px;margin-right:5px;transition:background-color .1s,border .1s;display:inline-block;position:relative}.dd-switch-input:before{content:" ";background-color:#fdfdfd;border-radius:15px;width:50px;height:30px;transition:transform .3s;position:absolute;top:0;left:0}.dd-switch-input:after{content:" ";background-color:#fff;border-radius:15px;width:30px;height:30px;transition:transform .3s;position:absolute;top:0;left:0;box-shadow:0 1px 3px #0006}.dd-switch-input-inner{border-radius:inherit;position:absolute;inset:0}.dd-switch-input-checked:before{transform:scale(0)}.dd-switch-input-checked:after{transform:translate(20px)}.dd-switch-input-disabled{opacity:.3}.dd-checkbox-input{appearance:none;background-color:#fff;border:1px solid #d1d1d1;border-radius:3px;outline:0;width:22px;height:22px;margin-right:5px;display:inline-block;position:relative}.dd-checkbox-input-inner{border-radius:inherit;position:absolute;inset:0}.dd-checkbox-input-checked .dd-checkbox-input-inner:before{content:"";color:inherit;font:22px/1 weui;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)scale(.73)}.dd-checkbox-input-disabled{background-color:#e1e1e1}.dd-checkbox-input-disabled:before{color:#adadad}.dd-text{-webkit-user-select:none;user-select:none;display:inline}.dd-text[hidden]{display:none}.dd-text-selectable{cursor:auto;-webkit-user-select:text;user-select:text;display:inline-block}.dd-textarea-wrapper{width:100%;height:100%;position:relative}.dd-textarea{resize:none;width:100%;height:100%;font-family:inherit;line-height:1.2;font-size:inherit;color:inherit;background-color:#0000;border:none;outline:none;padding:0;display:block;position:relative}.dd-textarea::-webkit-scrollbar{display:none}.dd-textarea[hidden]{display:none}.dd-textarea-placeholder{padding:inherit;pointer-events:none;position:absolute;top:0;left:0}.dd-textarea-placeholder.textarea-placeholder{color:#0000004d}.dd-textarea-disabled{opacity:.5}.dd-video{z-index:0;width:300px;height:225px;line-height:0;display:inline-block;position:relative;overflow:hidden}.dd-video[hidden]{display:none}.dd-video .dd-video-container{-webkit-overflow-scrolling:touch;width:100%;height:100%;overflow:scroll}.dd-video[data-dimina-native-type=native\/video]{opacity:0;background:0 0!important}.dd-video-placeholder{color:#fff;background-color:gray;justify-content:center;align-items:center;display:flex}.dd-web-view{width:100vw;height:100vh;display:block}.dd-web-view[hidden]{display:none}.dd-web-view-pc{border:0;width:100%;height:100%;position:absolute;top:0;left:0}
|