From 0df75aa1d655b1399785ff558998bf2c993f827d Mon Sep 17 00:00:00 2001 From: jjm2473 Date: Mon, 31 Jul 2023 16:56:33 +0800 Subject: [PATCH] new features [2697766] 1. supports hide docker packages 2. auto hide luci js packages on old luci 3. custom channel --- .../src/dist/luci-static/istore/i18n/en.json | 2 +- .../src/dist/luci-static/istore/i18n/zh-cn.json | 2 +- .../src/dist/luci-static/istore/index.js | 16 ++++++++-------- .../src/dist/luci-static/istore/style.css | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app-store-ui/src/dist/luci-static/istore/i18n/en.json b/app-store-ui/src/dist/luci-static/istore/i18n/en.json index af06250..7dc6951 100644 --- a/app-store-ui/src/dist/luci-static/istore/i18n/en.json +++ b/app-store-ui/src/dist/luci-static/istore/i18n/en.json @@ -1 +1 @@ -{"en":{"%{ num } download":["%{ num } download","%{ num } downloads"],"%{ num } like":["%{ num } like","%{ num } likes"],"all app":"all app","app backup":"app backup","are you sure you want to uninstall %{name}?":"are you sure you want to uninstall %{name}?","author":"author","backup fail":"backup fail","backup fail with error code":"backup fail with error code","backup now":"backup now","backup now backs up installed software (unlimited installation sources) to external storage":"backup now backs up installed software (unlimited installation sources) to external storage","backup now will download a list of iStore installed software":"backup now will download a list of iStore installed software","backup success":"backup success","backuping":"backuping","By download":"By download","By rating":"By rating","checking for latest version":"checking for latest version","choose":"choose","choose backup file":"choose backup file","click to download":"click to download","click to update":"click to update","closed":"closed","customize":"customize","default":"default","Docker is not installed on the system, try to install it?":"Docker is not installed on the system, try to install it?","download":"Download","explain":"explain","external storage directory":"external storage directory","Icon is gone":"Icon is gone","in this page, you can upload and install packages":"in this page, you can upload and install packages","install":"install","installation failed, error code":"installation failed, error code","installed":"installed","last version":"last version","Latest update":"Latest date","light backup":"light backup","like":"like","liked":"liked","loading data":"loading data","local backup":"local backup","maintain":"maintain","manual install":"manual install","monitor":"Monitor","multimedia":"Multimedia","nas":"NAS","net":"Net","networking":"Networking","no files selected":"no files selected","no internet required for recovery":"no internet required for recovery","offline install":"offline install","offline installation failed with error code":"offline installation failed with error code","open":"open","order":"order","packages installed offline may not appear in iStore":"packages installed offline may not appear in iStore","please enter an absolute path starting with %{name}":"please enter an absolute path starting with %{name}","please enter the path, give up the input, please clear the input box":"please enter the path, give up the input, please clear the input box","please enter the search keyword":"please enter the search keyword","please fill in the external storage directory":"please fill in the external storage directory","please select a backup file to restore":"please select a backup file to restore","restore backup":"restore backup","restore failed with error code":"restore failed with error code","restore now":"restore now","select or drag and drop files":"select or drag and drop files","service":"Service","Stick to the top":"Stick to the top","supports .ipk packages, .run self-extracting packages":"supports .ipk packages, .run self-extracting packages","system":"System","tag":"Tag","the is last version":"the is last version","there are no backup files in this path":"there are no backup files in this path","tool":"Tool","tutorial":"tutorial","uninstall":"uninstall","uninstall failed, error code":"uninstall failed, error code","update date":"update date","update error":"update error","update failed with error code":"update failed with error code","update success, reloading":"update success, reloading","updateing":"updateing","upgrade":"upgrade","upload software list and install from iStore when restoring backup":"upload software list and install from iStore when restoring backup","uploading":"uploading","website":"website","you have already liked":"you have already liked"}} \ No newline at end of file +{"en":{"%{ num } download":["%{ num } download","%{ num } downloads"],"%{ num } like":["%{ num } like","%{ num } likes"],"all app":"all app","app backup":"app backup","are you sure you want to uninstall %{name}?":"are you sure you want to uninstall %{name}?","author":"author","backup fail":"backup fail","backup fail with error code":"backup fail with error code","backup now":"backup now","backup now backs up installed software (unlimited installation sources) to external storage":"backup now backs up installed software (unlimited installation sources) to external storage","backup now will download a list of iStore installed software":"backup now will download a list of iStore installed software","backup success":"backup success","backuping":"backuping","By download":"By download","By rating":"By rating","checking for latest version":"checking for latest version","choose":"choose","choose backup file":"choose backup file","click to download":"click to download","click to update":"click to update","closed":"closed","config":"config","customize":"customize","default":"default","Docker is not installed on the system, try to install it?":"Docker is not installed on the system, try to install it?","download":"Download","explain":"explain","external storage directory":"external storage directory","hide docker packages":"hide docker packages","Icon is gone":"Icon is gone","in this page, you can upload and install packages":"in this page, you can upload and install packages","install":"install","installation failed, error code":"installation failed, error code","installed":"installed","last version":"last version","Latest update":"Latest date","light backup":"light backup","like":"like","liked":"liked","loading data":"loading data","local backup":"local backup","maintain":"maintain","manual install":"manual install","monitor":"Monitor","multimedia":"Multimedia","nas":"NAS","net":"Net","networking":"Networking","no files selected":"no files selected","no internet required for recovery":"no internet required for recovery","offline install":"offline install","offline installation failed with error code":"offline installation failed with error code","open":"open","order":"order","packages installed offline may not appear in iStore":"packages installed offline may not appear in iStore","please enter an absolute path starting with %{name}":"please enter an absolute path starting with %{name}","please enter the path, give up the input, please clear the input box":"please enter the path, give up the input, please clear the input box","please enter the search keyword":"please enter the search keyword","please fill in the external storage directory":"please fill in the external storage directory","please select a backup file to restore":"please select a backup file to restore","restore backup":"restore backup","restore failed with error code":"restore failed with error code","restore now":"restore now","select or drag and drop files":"select or drag and drop files","service":"Service","show docker packages":"show docker packages","Stick to the top":"Stick to the top","supports .ipk packages, .run self-extracting packages":"supports .ipk packages, .run self-extracting packages","system":"System","tag":"Tag","the is last version":"the is last version","there are no backup files in this path":"there are no backup files in this path","tool":"Tool","tutorial":"tutorial","uninstall":"uninstall","uninstall failed, error code":"uninstall failed, error code","update date":"update date","update error":"update error","update failed with error code":"update failed with error code","update success, reloading":"update success, reloading","updateing":"updateing","upgrade":"upgrade","upload software list and install from iStore when restoring backup":"upload software list and install from iStore when restoring backup","uploading":"uploading","website":"website","you have already liked":"you have already liked"}} \ No newline at end of file diff --git a/app-store-ui/src/dist/luci-static/istore/i18n/zh-cn.json b/app-store-ui/src/dist/luci-static/istore/i18n/zh-cn.json index e537b75..9148f17 100644 --- a/app-store-ui/src/dist/luci-static/istore/i18n/zh-cn.json +++ b/app-store-ui/src/dist/luci-static/istore/i18n/zh-cn.json @@ -1 +1 @@ -{"zh-cn":{"%{ num } download":["%{ num } 次下载","%{ num } 次下载"],"%{ num } like":["%{ num } 次点赞","%{ num } 次点赞"],"all app":"全部软件","app backup":"软件备份","are you sure you want to uninstall %{name}?":"确定要卸载 %{name} 吗?","author":"作者","backup fail":"备份失败","backup fail with error code":"备份失败,错误代码","backup now":"立即备份","backup now backs up installed software (unlimited installation sources) to external storage":"立即备份将备份已安装软件(不限安装来源)到外部存储","backup now will download a list of iStore installed software":"立即备份将下载iStore已安装的软件列表","backup success":"备份成功","backuping":"正在备份","By download":"按下载","By rating":"按评分","checking for latest version":"正在检查最新版本","choose":"请选择","choose backup file":"选择备份文件","click to download":"点此下载","click to update":"点我更新","closed":"关闭","customize":"自定义","default":"默认","Docker is not installed on the system, try to install it?":"系统中未安装Docker,是否尝试安装?","download":"下载","explain":"说明","external storage directory":"外部存储目录","Icon is gone":"图标出走啦","in this page, you can upload and install packages":"通过本页面,你可以上传并安装插件包","install":"安装","installation failed, error code":"安装失败,错误码","installed":"已安装","last version":"最新版本","Latest update":"最近更新","light backup":"轻量备份","like":"点赞","liked":"已点赞","loading data":"正在努力的获取数据","local backup":"本地备份","maintain":"维护","manual install":"手动安装","monitor":"监控","multimedia":"多媒体","nas":"NAS","net":"网络","networking":"组网","no files selected":"未选择任何文件","no internet required for recovery":"恢复时不需要网络","offline install":"离线安装","offline installation failed with error code":"离线安装失败,错误码","open":"打开","order":"排序","packages installed offline may not appear in iStore":"离线安装的插件可能不会出现在iStore中","please enter an absolute path starting with %{name}":"请输入 %{name} 开头的绝对路径","please enter the path, give up the input, please clear the input box":"请输入路径,放弃输入请清空输入框","please enter the search keyword":"请输入搜索关键词","please fill in the external storage directory":"请填写外部存储目录","please select a backup file to restore":"请选择要恢复的备份文件","restore backup":"恢复备份","restore failed with error code":"恢复失败,错误代码","restore now":"立即恢复","select or drag and drop files":"选择或拖放文件","service":"服务","Stick to the top":"置顶","supports .ipk packages, .run self-extracting packages":"支持 .ipk 包,.run 自解压格式","system":"系统","tag":"标签","the is last version":"当前已经是最新版本","there are no backup files in this path":"此路径下没有备份文件","tool":"工具","tutorial":"教程","uninstall":"卸载","uninstall failed, error code":"卸载失败,错误码","update date":"更新日期","update error":"更新失败","update failed with error code":"更新失败,错误代码","update success, reloading":"更新成功,重新加载页面","updateing":"正在更新中","upgrade":"更新","upload software list and install from iStore when restoring backup":"恢复备份时上传软件列表并从iStore安装","uploading":"上传中","website":"官网","you have already liked":"您已经点赞过啦"}} \ No newline at end of file +{"zh-cn":{"%{ num } download":["%{ num } 次下载","%{ num } 次下载"],"%{ num } like":["%{ num } 次点赞","%{ num } 次点赞"],"all app":"全部软件","app backup":"软件备份","are you sure you want to uninstall %{name}?":"确定要卸载 %{name} 吗?","author":"作者","backup fail":"备份失败","backup fail with error code":"备份失败,错误代码","backup now":"立即备份","backup now backs up installed software (unlimited installation sources) to external storage":"立即备份将备份已安装软件(不限安装来源)到外部存储","backup now will download a list of iStore installed software":"立即备份将下载iStore已安装的软件列表","backup success":"备份成功","backuping":"正在备份","By download":"按下载","By rating":"按评分","checking for latest version":"正在检查最新版本","choose":"请选择","choose backup file":"选择备份文件","click to download":"点此下载","click to update":"点我更新","closed":"关闭","config":"配置","customize":"自定义","default":"默认","Docker is not installed on the system, try to install it?":"系统中未安装Docker,是否尝试安装?","download":"下载","explain":"说明","external storage directory":"外部存储目录","hide docker packages":"隐藏 Docker 插件","Icon is gone":"图标出走啦","in this page, you can upload and install packages":"通过本页面,你可以上传并安装插件包","install":"安装","installation failed, error code":"安装失败,错误码","installed":"已安装","last version":"最新版本","Latest update":"最近更新","light backup":"轻量备份","like":"点赞","liked":"已点赞","loading data":"正在努力的获取数据","local backup":"本地备份","maintain":"维护","manual install":"手动安装","monitor":"监控","multimedia":"多媒体","nas":"NAS","net":"网络","networking":"组网","no files selected":"未选择任何文件","no internet required for recovery":"恢复时不需要网络","offline install":"离线安装","offline installation failed with error code":"离线安装失败,错误码","open":"打开","order":"排序","packages installed offline may not appear in iStore":"离线安装的插件可能不会出现在iStore中","please enter an absolute path starting with %{name}":"请输入 %{name} 开头的绝对路径","please enter the path, give up the input, please clear the input box":"请输入路径,放弃输入请清空输入框","please enter the search keyword":"请输入搜索关键词","please fill in the external storage directory":"请填写外部存储目录","please select a backup file to restore":"请选择要恢复的备份文件","restore backup":"恢复备份","restore failed with error code":"恢复失败,错误代码","restore now":"立即恢复","select or drag and drop files":"选择或拖放文件","service":"服务","show docker packages":"显示 Docker 插件","Stick to the top":"置顶","supports .ipk packages, .run self-extracting packages":"支持 .ipk 包,.run 自解压格式","system":"系统","tag":"标签","the is last version":"当前已经是最新版本","there are no backup files in this path":"此路径下没有备份文件","tool":"工具","tutorial":"教程","uninstall":"卸载","uninstall failed, error code":"卸载失败,错误码","update date":"更新日期","update error":"更新失败","update failed with error code":"更新失败,错误代码","update success, reloading":"更新成功,重新加载页面","updateing":"正在更新中","upgrade":"更新","upload software list and install from iStore when restoring backup":"恢复备份时上传软件列表并从iStore安装","uploading":"上传中","website":"官网","you have already liked":"您已经点赞过啦"}} \ No newline at end of file diff --git a/app-store-ui/src/dist/luci-static/istore/index.js b/app-store-ui/src/dist/luci-static/istore/index.js index fd6be60..242dd8f 100644 --- a/app-store-ui/src/dist/luci-static/istore/index.js +++ b/app-store-ui/src/dist/luci-static/istore/index.js @@ -1,8 +1,8 @@ -var Lt=Object.defineProperty,Tt=Object.defineProperties;var It=Object.getOwnPropertyDescriptors;var gt=Object.getOwnPropertySymbols;var Pt=Object.prototype.hasOwnProperty,Et=Object.prototype.propertyIsEnumerable;var wt=(n,t,e)=>t in n?Lt(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,G=(n,t)=>{for(var e in t||(t={}))Pt.call(t,e)&&wt(n,e,t[e]);if(gt)for(var e of gt(t))Et.call(t,e)&&wt(n,e,t[e]);return n},st=(n,t)=>Tt(n,It(t));var Dt=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports);var k=(n,t,e)=>new Promise((o,s)=>{var a=c=>{try{u(e.next(c))}catch(h){s(h)}},l=c=>{try{u(e.throw(c))}catch(h){s(h)}},u=c=>c.done?o(c.value):Promise.resolve(c.value).then(a,l);u((e=e.apply(n,t)).next())});import{a as ot,c as Bt,u as O,b as z,d as D,r as Z,o as p,e as d,F as E,f as K,g as Q,w as Mt,h as r,p as tt,i as et,j as i,t as _,k as P,n as q,l as M,m as Ft,q as S,s as at,v as bt,x as X,y as yt,z as xt,A as Ot,B as $t,C as Vt,D as zt,E as Ut,G as Rt}from"./vendor.js?v=3831f804";var Uo=Dt(y=>{const Gt=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))o(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const l of a.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&o(l)}).observe(document,{childList:!0,subtree:!0});function e(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerpolicy&&(a.referrerPolicy=s.referrerpolicy),s.crossorigin==="use-credentials"?a.credentials="include":s.crossorigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function o(s){if(s.ep)return;s.ep=!0;const a=e(s);fetch(s.href,a)}};Gt();const j={tagMap:{},numberFormat:new Intl.NumberFormat("en",{notation:"compact"})},Ht=n=>k(y,null,function*(){const t=window.vue_lang;new Date().getTime();let e={};try{const a=yield ot({url:window.vue_lang_data,method:"GET"});a.data&&(e=a.data)}catch(a){console.log(a)}const o=Bt({defaultLanguage:t,translations:e,setGlobalProperties:!1,provideDirective:!1,provideComponent:!1});n.use(o);const{$gettext:s}=o;window.$i18n=s,j.tagMap={net:s("net"),tool:s("tool"),download:s("download"),service:s("service"),multimedia:s("multimedia"),nas:s("nas"),monitor:s("monitor"),system:s("system"),networking:s("networking")};try{j.numberFormat=new Intl.NumberFormat(t,{notation:"compact"})}catch(a){console.error("Intl.NumberFormat unsupported lang",t,a)}}),St=n=>j.tagMap[n]||n,kt=n=>typeof n=="number"?j.numberFormat.format(n):"?";var C=(n,t)=>{const e=n.__vccOpts||n;for(const[o,s]of t)e[o]=s;return e};const Kt=n=>(tt("data-v-13251538"),n=n(),et(),n),Nt={class:"tabs"},Wt=["href","onClick"],Zt={key:0},qt=Kt(()=>i("div",{class:"auto"},null,-1)),Jt={setup(n){const{$gettext:t}=O(),e=z(),o=D(()=>e.state.version),s=D(()=>[{to:"/installed",name:t("installed")},{to:"/store",name:t("all app")},{to:"/upload",name:t("manual install")},{to:"/maintance",name:t("maintain"),up:o.value}]);return(a,l)=>{const u=Z("router-link");return p(),d("ul",Nt,[(p(!0),d(E,null,K(r(s),c=>(p(),Q(u,{to:c.to,custom:"",key:c.to},{default:Mt(({href:h,navigate:I,isActive:B})=>[i("li",{class:q(B&&"active cbi-tab")},[i("a",{href:h,onClick:I},_(c.name),9,Wt),c.up?(p(),d("span",Zt)):P("",!0)],2)]),_:2},1032,["to"]))),128)),qt])}}};var Yt=C(Jt,[["__scopeId","data-v-13251538"]]);const Qt={setup(n){return z().dispatch("getData"),(e,o)=>{const s=Z("router-view");return p(),d(E,null,[M(Yt),M(s)],64)}}},Xt=()=>window.vue_base,jt=()=>window.istore_api_base||"https://istore.linkease.com",te=n=>{if(n)return Ft(n).format("YYYY-MM-DD HH:mm:ss")},ee=()=>new Date().getTime(),ne=n=>{if(n<1024)return""+n+"KB";let e=1024,o=0;for(let a=n/1024;a>=1024;a/=1024)e*=1024,o++;let s=["M","G","T","P","E"];return(n/100/(e/100)).toFixed(2)+s[o]},se=n=>{if(n==null)return 0;if(n<1e4)return n;let e=parseInt(`${n/1e4}`),o=n%1e4;return`${e}\u4E07${o}`},oe=()=>window.token||"",ae=()=>{var n;return((n=window==null?void 0:window.device_id)==null?void 0:n.uid)||""},re=()=>{var n;return((n=window==null?void 0:window.device_id)==null?void 0:n.version)||""},ie=()=>{var n;return((n=window==null?void 0:window.device_id)==null?void 0:n.arch)||""},ce=()=>"https://www.kooldns.cn/bind",le=()=>window.istore_features||[];var ue=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",BasePage:Xt,ApiBaseURL:jt,formatDate:te,UnixDate:ee,numberToSize:ne,numberToSum:se,getToken:oe,getDeviceId:ae,getVersion:re,modelArch:ie,getIframeURL:ce,getFeatures:le}),L=G({},ue);const A=ot.create({});A.interceptors.request.use(n=>(n.params==null&&(n.params={}),n.params=st(G({},n.params),{token:L.getToken(),_t:L.UnixDate()}),n),n=>n);A.interceptors.response.use(n=>n,n=>n);const R=ot.create({baseURL:L.ApiBaseURL()});R.interceptors.request.use(n=>(n.params==null&&(n.params={}),n.params=st(G({},n.params),{modelArch:L.modelArch(),deviceId:L.getDeviceId(),_t:L.UnixDate()}),n),n=>n);R.interceptors.response.use(n=>n);const pe=()=>new Promise((n,t)=>k(y,null,function*(){try{const e=yield A({method:"GET",url:"/cgi-bin/luci/admin/store/installed"});if(e.status==200){n(e.data);return}t(e.status);return}catch(e){t(e);return}})),de=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/install",params:{package:n}});if(o.status==200){t(o.data);return}e(o.status);return}catch(o){e(o);return}})),_e=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/upgrade",params:{package:n}});if(o.status==200){t(o.data);return}e(o.status);return}catch(o){e(o);return}})),he=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/remove",params:{package:n}});if(o.status==200){t(o.data);return}e(o.status);return}catch(o){e(o);return}})),ve=()=>new Promise((n,t)=>k(y,null,function*(){try{const e=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/update"});if(e.status==200){n(e.data);return}t(e.status);return}catch(e){t(e);return}})),me=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"GET",url:"/cgi-bin/luci/admin/store/status",params:{package:n}});if(o.status==200){t(o.data);return}e(o.status);return}catch(o){e(o);return}})),fe=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/upload",headers:{"Content-Type":"multipart/form-data"},data:n});if(o.data){t(o.data);return}}catch(o){e(o);return}e("not found soft")})),ge=()=>new Promise((n,t)=>k(y,null,function*(){try{const e=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/light_backup"});if(e.status==200){n(e.data);return}t(e.status);return}catch(e){t(e);return}})),we=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/light_restore",headers:{"Content-Type":"multipart/form-data"},data:n});if(o.data){t(o.data);return}}catch(o){e(o);return}e("not found soft")})),$e=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"GET",url:"/cgi-bin/luci/admin/store/get_available_backup_file_list",params:{path:n}});if(o.status==200){t(o==null?void 0:o.data);return}e(o.status);return}catch(o){e(o);return}})),ke=()=>new Promise((n,t)=>k(y,null,function*(){try{const e=yield A({method:"GET",url:"/cgi-bin/luci/admin/store/get_local_backup_dir_path"});if(e.status==200){n(e==null?void 0:e.data);return}t(e.status);return}catch(e){t(e);return}})),be=(n,t)=>new Promise((e,o)=>k(y,null,function*(){try{const s=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/local_backup",params:{path:n,force:t}});if(s.status==200){e(s==null?void 0:s.data);return}o(s.status);return}catch(s){o(s);return}})),ye=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/local_restore",params:{path:n}});if(o.status==200){t(o.data);return}e(o.status);return}catch(o){e(o);return}})),xe=()=>new Promise((n,t)=>k(y,null,function*(){try{const e=yield A({method:"GET",url:"/cgi-bin/luci/admin/store/get_block_devices"});if(e.status==200){n(e==null?void 0:e.data);return}t(e.status);return}catch(e){t(e);return}}));var Se=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",getInstalledApp:pe,installApp:de,upgradeApp:_e,removeApp:he,updateAppStore:ve,getAppStatus:me,uploadAppIPK:fe,lightBackup:ge,lightRestore:we,backupFileList:$e,localBackupdirPath:ke,localBackup:be,localRestore:ye,getBlockDevices:xe});const Ce=n=>new Promise((t,e)=>k(y,null,function*(){var o,s,a,l;try{const u=yield R({method:"GET",url:"/api/store/list",params:n});if(((o=u==null?void 0:u.data)==null?void 0:o.success)===0){t((s=u==null?void 0:u.data)==null?void 0:s.result);return}if((a=u==null?void 0:u.data)!=null&&a.message){e((l=u==null?void 0:u.data)==null?void 0:l.message);return}e("error")}catch(u){console.log(u),e(u);return}})),Ae=(n,t)=>new Promise((e,o)=>k(y,null,function*(){var s,a,l,u;try{const c=yield R({method:"POST",url:"/api/store/list",params:n,data:t});if(((s=c==null?void 0:c.data)==null?void 0:s.success)===0){e((a=c==null?void 0:c.data)==null?void 0:a.result);return}if((l=c==null?void 0:c.data)!=null&&l.message){o((u=c==null?void 0:c.data)==null?void 0:u.message);return}o("error")}catch(c){console.log(c),o(c);return}})),Le=L.ApiBaseURL(),Te=n=>`${Le}${n}`,Ie=()=>new Promise((n,t)=>k(y,null,function*(){var e,o,s,a;try{const l=yield R({method:"GET",url:"/api/store/tags"});if(((e=l==null?void 0:l.data)==null?void 0:e.success)===0){n((o=l==null?void 0:l.data)==null?void 0:o.result);return}if((s=l==null?void 0:l.data)!=null&&s.message){t((a=l==null?void 0:l.data)==null?void 0:a.message);return}t("error")}catch(l){t(l);return}})),Pe=n=>new Promise((t,e)=>{R({method:"POST",url:"/api/store/expand",data:{appsId:n||[],deviceId:L.getDeviceId()}}).then(o=>{var s,a,l;if(((s=o.data)==null?void 0:s.success)==0&&((a=o.data)==null?void 0:a.result)){t((l=o.data)==null?void 0:l.result);return}e("not found expand")}).catch(o=>{e(o)})}),Ee=n=>{R({method:"POST",url:"/api/store/download",data:{appId:n,deviceId:L.getDeviceId()}}).then(t=>{var e;((e=t.data)==null?void 0:e.success)!=0})},De=n=>new Promise((t,e)=>{R({method:"POST",url:"/api/store/star",data:{appId:n,deviceId:L.getDeviceId()}}).then(o=>{var s;if(((s=o.data)==null?void 0:s.success)==0){t(o.data);return}e("not found expand")}).catch(o=>{e(o)})});var Be=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",getStoreAppList:Ce,postStoreAppList:Ae,getStoreAppIcon:Te,getStoreTags:Ie,getAppExpandData:Pe,increasingDownloadCount:Ee,postStarApp:De});const Me=()=>A({method:"GET",url:"/cgi-bin/luci/admin/store/check_self_upgrade"}),Fe=()=>A({method:"POST",url:"/cgi-bin/luci/admin/store/do_self_upgrade"});var Oe=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",updateIstore:Me,selfUpdateIstore:Fe}),b=G(G(G({},Se),Be),Oe);const Ve={class:"toast"},ze=["title"],Ue={key:1,class:"msg"},Re=["innerHTML"],Ge={props:{content:String,type:String,Close:Function,keep:Boolean,html:Boolean},setup(n){const t=n,e=S(t.content),o=S(t.keep),s=S(t.html),a=S(window.$i18n);t.keep||setTimeout(()=>{t.Close()},2e3);const l=()=>{t.Close()};return(u,c)=>(p(),d("div",Ve,[o.value?(p(),d("div",{key:0,class:"toast-close",onClick:l,title:a.value("closed")},"x",8,ze)):P("",!0),s.value?P("",!0):(p(),d("div",Ue,_(e.value),1)),s.value?(p(),d("div",{key:2,class:"msg",innerHTML:e.value},null,8,Re)):P("",!0)]))}};var He=C(Ge,[["__scopeId","data-v-b05f92bc"]]);const $=n=>{let t={content:"",type:"",keep:!1,html:!1,Close:()=>{o.unmount(e),document.body.removeChild(e)}};n!=null&&(typeof n=="object"?(t.content=(n==null?void 0:n.content)||"",t.type=(n==null?void 0:n.type)||"",t.keep=(n==null?void 0:n.keep)||!1,t.html=(n==null?void 0:n.html)||!1):t.content=n);let e=document.createElement("div"),o=at(He,t);document.body.append(e),o.mount(e),bt(()=>{o.unmount(e),document.body.removeChild(e)})},Ke={props:{content:String,Close:Function},setup(n){return{message:n.content}}},Ne=n=>(tt("data-v-6d7664a4"),n=n(),et(),n),We={class:"loading"},Ze=Ne(()=>i("div",{class:"icon"},null,-1)),qe={class:"msg"};function Je(n,t,e,o,s,a){return p(),d("div",We,[Ze,i("div",qe,_(o.message),1)])}var Ye=C(Ke,[["render",Je],["__scopeId","data-v-6d7664a4"]]),V={props:{content:"",Close:()=>{}},Start(n){this.props={content:n,Close:()=>{t.unmount(e),document.body.removeChild(e)}};let t=at(Ye,this.props),e=document.createElement("div");document.body.append(e),t.mount(e),bt(()=>{this.props.Close()})},Stop(){this.props.Close()}};const Ct=n=>!Array.isArray(window.istore_features)||window.istore_features.indexOf(n)!=-1,J=n=>(tt("data-v-62f0600f"),n=n(),et(),n),Qe={class:"app-container"},Xe={class:"app-info"},je={class:"app-f"},tn={class:"app-icon"},en=["alt","src"],nn={key:0,class:"docker-icon-i"},sn={class:"app-tags"},on={class:"tag"},an=J(()=>i("span",{class:"block"},"\uFF5C",-1)),rn={class:"app-r"},cn=["title"],ln={class:"app-name"},un={class:"app-version"},pn={class:"app-as"},dn=J(()=>i("span",{style:{margin:"0 10px"}},"|",-1)),_n=["title"],hn=["title"],vn=["title"],mn={class:"app-author"},fn={class:"app-date"},gn={class:"app-btns"},wn=["href"],$n=["href"],kn=J(()=>i("div",{class:"auto"},null,-1)),bn=J(()=>i("div",{class:"app-margin-left"},null,-1)),yn=J(()=>i("div",{class:"app-margin-left"},null,-1)),xn=["href"],Sn=J(()=>i("div",{class:"app-margin-left"},null,-1)),Cn=["title"],An={props:{col:{type:Object,default(){return{description:"",tags:[],entry:"",author:"",depends:[],installed:!1,hasupdate:!1,title:"",time:"",release:1,website:"",name:"",version:""}}}},setup(n){const t=n,{$gettext:e,$ngettext:o}=O(),s=D(()=>t.col),a=z(),l=L.formatDate,u=g=>{b.upgradeApp(g).then(w=>{let T=w.stderr;w.code!==0?$({content:`${T} -${e("update failed with error code")}: ${w.code}`,keep:!0}):window.istore_log(!0)}).catch(w=>{$({content:`${e("update failed with error code")}: ${500}`,keep:!0})})},c=(g,w)=>{w&&!Ct("docker")&&!confirm(e("Docker is not installed on the system, try to install it?"))||b.installApp(g).then(T=>{let f=T.stderr;T.code!==0?$({content:`${f} -${e("installation failed, error code")}: ${T.code}`,keep:!0}):(b.increasingDownloadCount(g),a.dispatch("apps/incrAppDownload",{name:g}),window.istore_log(!0))}).catch(T=>{$({content:`${e("installation failed, error code")}: ${500}`,keep:!0})})},h=g=>{!confirm(e("are you sure you want to uninstall %{name}?",{name:g}))||b.removeApp(g).then(T=>{let f=T.stderr;T.code!==0?$({content:`${f} -${e("uninstall failed, error code")}: ${T.code}`,keep:!0}):window.istore_log(!0)}).catch(T=>{$({content:`${e("uninstall failed, error code")}: ${500}`,keep:!0})})},I=g=>k(this,null,function*(){V.Start();try{(yield b.postStarApp(g))&&a.dispatch("apps/incrAppStar",{name:g})}catch(w){}V.Stop()}),B=()=>{$(e("you have already liked"))},N=g=>s.value.installed?`/luci-static/resources/app-icons/${g}.png`:s.value.icon?b.getStoreAppIcon(s.value.icon):`/luci-static/resources/app-icons/${g}.png`,W=g=>{switch(window.vue_lang){case"zh-cn":case"zh-tw":return g.title}return g.title_en||g.title},Y=g=>{switch(window.vue_lang){case"zh-cn":case"zh-tw":return g.description}return g.description_en||g.description},nt=g=>{a.dispatch("apps/stickTop",g)};return(g,w)=>{var v,x,F,rt,it,ct,lt,ut,pt,dt,_t,ht,vt,mt,ft;const T=Z("svg-docker"),f=Z("svg-star-off"),m=Z("svg-star-on");return p(),d("div",Qe,[i("div",Xe,[i("div",je,[i("div",tn,[i("img",{alt:r(e)("Icon is gone")+"~",src:N(r(s).name)},null,8,en),r(s).depends.indexOf("docker-deps")!=-1?(p(),d("i",nn,[M(T,{class:"docker-icon"})])):P("",!0)]),i("div",sn,[(p(!0),d(E,null,K(r(s).tags,U=>(p(),d(E,{key:U},[i("div",on,[i("span",null,_(r(St)(U)),1)]),an],64))),128))])]),i("div",rn,[i("div",{class:"app-title",title:r(s).name},[i("span",ln,_(W(r(s))),1),i("span",un,"v"+_(r(s).version),1)],8,cn),i("div",pn,[i("span",null,_(r(o)("%{ num } download","%{ num } downloads",((x=(v=r(s))==null?void 0:v.expand)==null?void 0:x.downloadCount)||0,{num:r(kt)((rt=(F=r(s))==null?void 0:F.expand)==null?void 0:rt.downloadCount)})),1),dn,i("span",null,_(r(o)("%{ num } like","%{ num } likes",((ct=(it=r(s))==null?void 0:it.expand)==null?void 0:ct.starCount)||0,{num:r(kt)((ut=(lt=r(s))==null?void 0:lt.expand)==null?void 0:ut.starCount)})),1),((pt=r(s))==null?void 0:pt.expand)!=null?(p(),d(E,{key:0},[(_t=(dt=r(s))==null?void 0:dt.expand)!=null&&_t.isStar?(p(),d("a",{key:0,class:"star-btn",title:r(e)("liked"),onClick:w[0]||(w[0]=U=>B())},[M(f)],8,_n)):(p(),d("a",{key:1,class:"star-btn",title:r(e)("like"),onClick:w[1]||(w[1]=U=>I(r(s).name))},[M(m)],8,hn))],64)):P("",!0)]),i("div",{class:"app-description cbi-value-description",title:Y(r(s))},[i("span",null,_(Y(r(s))),1)],8,vn),i("div",mn,[i("span",null,_(r(e)("author"))+": "+_(r(s).author||"null"),1)]),i("div",fn,[i("span",null,_(r(e)("update date"))+": "+_(r(l)(r(s).time*1e3)||"null"),1)])])]),i("div",gn,[r(s).tutorial?(p(),d("a",{key:0,class:"app-btn cbi-button cbi-button-apply",target:"_blank",href:r(s).tutorial},_(r(e)("tutorial")),9,wn)):r(s).website?(p(),d("a",{key:1,class:"app-btn cbi-button cbi-button-apply",target:"_blank",href:r(s).website},_(r(e)("website")),9,$n)):P("",!0),kn,r(s).installed?(p(),d(E,{key:2},[((ht=r(s))==null?void 0:ht.curVersion)!=((vt=r(s))==null?void 0:vt.lastVersion)||((mt=r(s))==null?void 0:mt.curRelease)!=((ft=r(s))==null?void 0:ft.lastRelease)?(p(),d(E,{key:0},[bn,i("a",{class:"app-btn cbi-button cbi-button-reload",onClick:w[2]||(w[2]=U=>u(r(s).name))},_(r(e)("upgrade")),1)],64)):P("",!0),yn,r(s).entry?(p(),d("a",{key:1,class:"app-btn cbi-button cbi-button-apply",href:r(s).entry},_(r(e)("open")),9,xn)):P("",!0),Sn,i("a",{class:"app-btn cbi-button cbi-button-remove",onClick:w[3]||(w[3]=U=>h(r(s).name))},_(r(e)("uninstall")),1)],64)):(p(),d("a",{key:3,class:"app-btn cbi-button cbi-button-add",onClick:w[4]||(w[4]=U=>c(r(s).name,r(s).depends.indexOf("docker-deps")!=-1))},_(r(e)("install")),1))]),i("span",{class:"fav-icon-i",onClick:w[5]||(w[5]=U=>nt(r(s).name)),title:r(e)("Stick to the top")},"\u21EA",8,Cn)])}}};var Ln=C(An,[["__scopeId","data-v-62f0600f"]]);const Tn={class:"containers"},In={props:{apps:{type:Array,default(){return[]}}},setup(n){const t=n,e=D(()=>t.apps);return(o,s)=>(p(),d("div",Tn,[(p(!0),d(E,null,K(r(e),a=>(p(),Q(Ln,{key:a.name,col:a},null,8,["col"]))),128))]))}};var At=C(In,[["__scopeId","data-v-0708f588"]]);const Pn={class:"cbi-section"},En={setup(n){const t=z(),e=D(()=>t.getters["apps/LocalApps"]);return(o,s)=>(p(),d("fieldset",Pn,[M(At,{class:"app-list-installed",apps:r(e)},null,8,["apps"])]))}};var Dn=C(En,[["__scopeId","data-v-bb2340b4"]]);const Bn={class:"sort-container"},Mn={class:"sort-title"},Fn={class:"sort-value"},On=["value","onClick"],Vn={setup(n){const{$gettext:t}=O(),e=S("default"),o=z(),s=S([{key:t("default"),value:"default"},{key:t("By download"),value:"download"},{key:t("By rating"),value:"star"},{key:t("Latest update"),value:"updateDate"}]),a=l=>{e.value=l,o.dispatch("apps/filterCurApps",{sort:l})};return(l,u)=>(p(),d("div",Bn,[i("div",Mn,_(r(t)("order"))+":",1),i("div",Fn,[(p(!0),d(E,null,K(s.value,c=>(p(),d("input",{key:c.value,class:q(["cbi-button",{"cbi-button-apply":e.value==c.value}]),type:"button",value:c.key,onClick:h=>a(c.value)},null,10,On))),128))])]))}};var zn=C(Vn,[["__scopeId","data-v-9f592bc6"]]);const Un={class:"tags-container"},Rn={class:"tags-title"},Gn={class:"tags-value"},Hn=["value"],Kn=["value","onClick"],Nn={setup(n){const{$gettext:t}=O(),e=S("default"),o=z(),s=D(()=>o.getters["tags/Tags"]),a=l=>{e.value=l,o.dispatch("apps/filterCurApps",{tag:l})};return(l,u)=>(p(),d("div",Un,[i("div",Rn,_(r(t)("tag"))+": ",1),i("div",Gn,[i("input",{class:q(["cbi-button",{"cbi-button-apply":e.value=="default"}]),type:"button",value:r(t)("default"),onClick:u[0]||(u[0]=c=>a("default"))},null,10,Hn),(p(!0),d(E,null,K(r(s),c=>(p(),d("input",{key:c,class:q(["cbi-button",{"cbi-button-apply":e.value==c}]),type:"button",value:r(St)(c),onClick:h=>a(c)},null,10,Kn))),128))])]))}};var Wn=C(Nn,[["__scopeId","data-v-07bccc36"]]);const Zn=["onSubmit"],qn=["placeholder"],Jn={setup(n){const{$gettext:t}=O(),e=S(""),o=z(),s=()=>{o.dispatch("apps/filterCurApps",{search:e.value})};return(a,l)=>{const u=Z("svg-search");return p(),d("form",{class:"search",onSubmit:xt(s,["prevent"])},[i("a",{class:"search-btn",onClick:s},[M(u)]),X(i("input",{type:"text",placeholder:r(t)("please enter the search keyword"),"onUpdate:modelValue":l[0]||(l[0]=c=>e.value=c)},null,8,qn),[[yt,e.value,void 0,{trim:!0}]])],40,Zn)}}};var Yn=C(Jn,[["__scopeId","data-v-c4e8a9f2"]]);const Qn={key:1,style:{margin:"10px 0","text-align":"center",width:"100%"}},Xn={setup(n){const{$gettext:t}=O(),e=z(),o=D(()=>e.getters["apps/StoreApps"]),s=D(()=>e.state.apps.Load);return(a,l)=>r(s)?(p(),Q(At,{key:0,apps:r(o)},null,8,["apps"])):(p(),d("span",Qn,_(r(t)("loading data"))+"...",1))}},jn={class:"cbi-section"},ts={setup(n){return(t,e)=>(p(),d("fieldset",jn,[M(Yn),M(Wn),M(zn),M(Xn)]))}};var es=C(ts,[["__scopeId","data-v-74b0669f"]]);const ns=n=>(tt("data-v-0b0723c2"),n=n(),et(),n),ss={class:"cbi-section"},os={class:"container_msg cbi-map-descr"},as=["onSubmit"],rs={class:"upload-file"},is={class:"button"},cs=ns(()=>i("div",{class:"auto"},null,-1)),ls={setup(n){const{$gettext:t}=O(),e=S(null),o=S(null);Ot(()=>{if(e.value){const u=e.value;u.addEventListener("dragenter",c=>{(c.fromElement===null||!u.contains(c.fromElement))&&console.log("dragenter")},!1),u.addEventListener("dragleave",c=>{(c.fromElement===null||!u.contains(c.fromElement))&&console.log("dragleave")},!1),u.addEventListener("dragover",c=>{c.preventDefault(),c.dataTransfer.dropEffect="link"},!1),u.addEventListener("drop",c=>{console.log("drop"),c.preventDefault(),s(c)},!1)}});const s=u=>{const c=u.dataTransfer.files;if(c&&c.length>0){const h=c[0];l(h);return}},a=u=>{const c=u.target.files;if(c&&c.length>0){const h=c[0];l(h);return}},l=u=>{if(u.name.endsWith(".run")||u.name.endsWith(".ipk")){let c=new FormData;c.append(u.name,u),V.Start(`${t("uploading")}...`),b.uploadAppIPK(c).then(h=>{let I=h.stderr;h.code!==0?Toast({content:`${I} -${t("offline installation failed with error code")}: ${h.code}`,keep:!0}):window.istore_log(!0)}).catch(h=>{Toast({content:`${t("offline installation failed with error code")}: ${500}`,keep:!0})}).finally(()=>{V.Stop()})}};return(u,c)=>{var h;return p(),d("fieldset",ss,[i("div",os,[i("span",null,_(r(t)("offline install")),1),i("span",null,"\xB7 "+_(r(t)("in this page, you can upload and install packages")),1),i("span",null,"\xB7 "+_(r(t)("supports .ipk packages, .run self-extracting packages")),1),i("span",null,"\xB7 "+_(r(t)("packages installed offline may not appear in iStore")),1)]),i("form",{onSubmit:xt(l,["prevent"])},[i("div",{class:"flex",ref_key:"upl",ref:e},[i("label",rs,[i("span",null,_(((h=o.value)==null?void 0:h.name)||r(t)("no files selected")),1),i("input",{type:"file",name:"file",accept:".ipk, .run",hidden:"",onChange:a},null,32),i("div",is,_(r(t)("select or drag and drop files")),1)]),cs],512)],40,as)])}}};var us=C(ls,[["__scopeId","data-v-0b0723c2"]]);const ps={class:"cbi-section"},ds={class:"webapp-container"},_s=["src"],hs={setup(n){const t=D(()=>""),e=D(()=>""),o=D(()=>`${L.getIframeURL()}/#/apps?token=${e.value}&deviceId=${t.value}`);return(s,a)=>(p(),d("fieldset",ps,[i("div",ds,[i("iframe",{src:r(o),sandbox:"allow-scripts allow-same-origin allow-popups",seamless:""},null,8,_s)])]))}};var vs=C(hs,[["__scopeId","data-v-8e330954"]]);const ms={class:"log-containers"},fs={key:0,class:"containers-tit"},gs={key:1,class:"containers-tit"},ws=["value"],$s={key:1},ks={setup(n){const{$gettext:t}=O(),e=z(),o=D(()=>e.state.version),s=D(()=>e.state.versionLoad),a=()=>{V.Start(`${t("updateing")}...`),b.selfUpdateIstore().then(({data:l})=>{if(l){const{stdout:u,stderr:c,code:h}=l;if(h==0){$({content:`${t("update success, reloading")}...`,keep:!0}),e.dispatch("istoreUpdated"),setTimeout(()=>{location.href=location.href},1e3);return}else throw c||"unknown error"}throw"unknown error"}).catch(l=>{$(`${t("update error")}: ${l}`)}).finally(()=>{V.Stop()})};return(l,u)=>(p(),d("div",ms,[r(s)?(p(),d("div",gs,[r(o)?(p(),d(E,{key:0},[i("span",null,_(r(t)("last version"))+":"+_(r(o)),1),i("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:u[0]||(u[0]=c=>a()),value:r(t)("click to update")},null,8,ws)],64)):(p(),d("span",$s,_(r(t)("the is last version"))+"...",1))])):(p(),d("div",fs,_(r(t)("checking for latest version")),1))]))}};var bs=C(ks,[["__scopeId","data-v-8ac6e0ca"]]);const ys={class:"Lightweight"},xs={class:"Lightweight-container"},Ss={class:"model"},Cs={class:"Lightweight-container1"},As={class:"container1-center"},Ls={class:"Lightweight-tit"},Ts={class:"Lightweight-backup"},Is=["value"],Ps=["value"],Es={setup(n){const{$gettext:t}=O(),e=S(null),o=()=>{const u=t("backuping"),c=t("backup success"),h=t("backup fail"),I=t("click to download");V.Start(`${u}...`),b.lightBackup().then(B=>{if(B){const{msg:N,code:W}=B;if(W==200){$({content:`${c}\uFF0C${I}

`,keep:!0,html:!0});return}else throw N||"unknown error"}throw"unknown error"}).catch(B=>{$(`${h} : ${B}`)}).finally(()=>{V.Stop()})},s=u=>{const c=u.target.files;if(c&&c.length>0){const h=c[0];a(h);return}},a=u=>{let c=new FormData;c.append(u.name,u),V.Start(`${t("uploading")}...`),b.lightRestore(c).then(h=>{let I=h.stderr;h.code!==0?$({content:`${I} -${t("restore failed with error code")}: ${h.code}`,keep:!0}):window.istore_log(!0)}).catch(h=>{$({content:`${t("restore failed with error code")}: ${500}`,keep:!0})}).finally(()=>{V.Stop()})},l=u=>{e.value.click(u),u.preventDefault()};return(u,c)=>(p(),d("div",ys,[i("div",xs,[i("div",Ss,_(r(t)("explain")),1),i("div",Cs,[i("div",As,[i("div",Ls,[i("span",null,"\xB7 "+_(r(t)("backup now will download a list of iStore installed software")),1),i("span",null,"\xB7 "+_(r(t)("upload software list and install from iStore when restoring backup")),1)]),i("div",Ts,[i("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:o,value:r(t)("backup now")},null,8,Is),i("input",{type:"file",name:"file",accept:".tar, .gz",hidden:"",onChange:s,ref_key:"upl",ref:e},null,544),i("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:l,value:r(t)("restore backup")},null,8,Ps)])])])])]))}};var Ds=C(Es,[["__scopeId","data-v-a4c06ae8"]]);const Bs={class:"local"},Ms={class:"local-container"},Fs={class:"model"},Os={class:"local-container1"},Vs={class:"container1-center"},zs={class:"local-tit"},Us={class:"local-device"},Rs={class:"local-input"},Gs={value:"",disabled:""},Hs=["value"],Ks={value:"-"},Ns=["onKeyup","placeholder"],Ws={key:2,class:"local-btn"},Zs=["value"],qs=["value"],Js={key:0,class:"device-list"},Ys=["value"],Qs=["value"],Xs={setup(n){const{$gettext:t}=O(),e=t("backup now backs up installed software (unlimited installation sources) to external storage"),o=S([]),s=S("-");let a="-";const l=S(!1),u=S([]),c=S(""),h=S(""),I=S(),B=(f,m)=>{if(!(m===""||m==="-"||f.find(v=>v.path===m))){let v;f.filter(x=>x.mount&&x.dev&&m.startsWith(x.mount)).forEach(x=>{v&&v.mount.length>x.mount.length||(v=x)}),f.push({path:m,size:v?v.size:void 0})}o.value=f,m!=="-"&&(s.value=m,N())};s.value=="-"&&(b.localBackupdirPath().then(f=>{if(f){const{code:m,msg:v}=f;m==200&&B(o.value,v)}}),b.getBlockDevices().then(f=>{if(f&&f.code==200){const m=f.data,v=[];for(let x in m){const F=m[x];F.mount&&F.mount!="/"&&F.mount!="/rom"&&F.mount!="/overlay"&&v.push(F)}v.forEach(x=>{x.path=x.mount+"/istore_backup"}),B(v,v.length>0&&s.value==="-"?"":s.value)}}));const N=f=>{l.value=!1,s.value==="-"?(a!="-"&&(h.value=a),I.value.focus()):a=s.value},W=f=>{h.value==""?a!="-"?s.value=a:s.value="":h.value.startsWith("/")?B(o.value,h.value):($(t("please enter the path, give up the input, please clear the input box")),I.value.setSelectionRange(0,h.value.length),I.value.focus())},Y=()=>s.value.length>1&&s.value.endsWith("/")?s.value.substring(0,s.value.length-1):s.value,nt=()=>{let f=Y();if(f==""){$(t("please fill in the external storage directory"));return}l.value=!1,b.backupFileList(f).then(m=>{if(m){const{code:v,msg:x}=m;if(v==200){let F=JSON.parse(x);F.length==0?($(t("there are no backup files in this path")),l.value=!1):(u.value=F,l.value=!0);return}throw x||"unknown error"}throw"unknown error"}).catch(m=>{$(m)})},g=()=>{let f=Y();if(f==""){$(t("please fill in the external storage directory"));return}b.localBackup(f).then(m=>{let v=m.stderr;m.code!==0?$({content:`${v} -${t("backup fail with error code")}: ${m.code}`,keep:!0}):window.istore_log(!1)}).catch(m=>{$({content:`${t("backup fail with error code")}: ${500}`,keep:!0})})},w=f=>s.value.endsWith("/")?s.value+f:s.value+"/"+f,T=()=>{if(c.value===""){$(t("please select a backup file to restore"));return}b.localRestore(w(c.value)).then(f=>{let m=res.stderr;res.code!==0?$({content:`${m} -${t("restore failed with error code")}: ${res.code}`,keep:!0}):window.istore_log(!0)}).catch(f=>{$({content:`${t("restore failed with error code")}: ${500}`,keep:!0})})};return(f,m)=>(p(),d("div",Bs,[i("div",Ms,[i("div",Fs,_(r(t)("explain")),1),i("div",Os,[i("div",Vs,[i("div",zs,[i("span",null,"\xB7 "+_(r(t)(r(e))),1),i("span",null,"\xB7 "+_(r(t)("no internet required for recovery")),1)]),i("div",Us,_(r(t)("external storage directory"))+" \uFF1A ",1),i("div",Rs,[s.value!="-"?X((p(),d("select",{key:0,class:"local-input-field",onChange:N,"onUpdate:modelValue":m[0]||(m[0]=v=>s.value=v)},[i("option",Gs,_(r(t)("choose")),1),(p(!0),d(E,null,K(o.value,(v,x)=>(p(),d("option",{value:v.path,key:x},_(v.path+(v.size?"\uFF08"+v.size+"\uFF09":"")),9,Hs))),128)),i("option",Ks,_(r(t)("customize")),1)],544)),[[$t,s.value,void 0,{trim:!0}]]):X((p(),d("input",{key:1,class:"local-input-field",onBlur:W,onKeyup:Vt(W,["enter"]),placeholder:r(t)("please enter an absolute path starting with %{name}",{name:"/"}),type:"text","onUpdate:modelValue":m[1]||(m[1]=v=>h.value=v),ref_key:"user_input",ref:I},null,40,Ns)),[[yt,h.value,void 0,{trim:!0}]]),s.value!="-"&&s.value!=""?(p(),d("div",Ws,[i("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:g,value:r(t)("backup now")},null,8,Zs),i("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:nt,value:r(t)("restore backup")},null,8,qs)])):P("",!0)]),l.value?(p(),d("div",Js,[i("div",null,_(r(t)("choose backup file"))+" \uFF1A",1),X(i("select",{"onUpdate:modelValue":m[2]||(m[2]=v=>c.value=v)},[(p(!0),d(E,null,K(u.value,v=>(p(),d("option",{key:v,value:v},_(v),9,Ys))),128))],512),[[$t,c.value,void 0,{trim:!0}]]),i("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:T,value:r(t)("restore now")},null,8,Qs)])):P("",!0)])])])]))}};var js=C(Xs,[["__scopeId","data-v-67b754ac"]]);const to={class:"cbi-map"},eo={class:"cbi-section"},no={class:"panel-title"},so={key:0,class:"cbi-section"},oo={class:"panel-title"},ao={class:"cbi-tabmenu"},ro={onclick:"false",href:"#"},io={onclick:"false",href:"#"},co={setup(n){const{$gettext:t}=O(),e=S(2);return(o,s)=>(p(),d("div",to,[i("fieldset",eo,[i("span",no,_(r(t)("upgrade"))+" iStore",1),M(bs)]),r(Ct)("backup")?(p(),d("fieldset",so,[i("span",oo,_(r(t)("app backup")),1),i("ul",ao,[i("li",{class:q(e.value==2?"cbi-tab":"cbi-tab-disabled"),onClick:s[0]||(s[0]=a=>e.value=2)},[i("a",ro,_(r(t)("light backup")),1)],2),i("li",{class:q(e.value==3?"cbi-tab":"cbi-tab-disabled"),onClick:s[1]||(s[1]=a=>e.value=3)},[i("a",io,_(r(t)("local backup")),1)],2)]),e.value==2?(p(),Q(Ds,{key:0})):P("",!0),e.value==3?(p(),Q(js,{key:1})):P("",!0)])):P("",!0)]))}},lo=zt({history:Ut(L.BasePage()),routes:[{path:"/",redirect:"/installed"},{path:"/installed",name:"Installed",component:Dn},{path:"/store",name:"Store",component:es},{path:"/upload",name:"Upload",component:us},{path:"/webapps",name:"Webapps",component:vs},{path:"/maintance",name:"Maintance",component:co},{path:"/:pathMatch(.*)*",name:"notfound",redirect:"/"}]});var uo={namespaced:!0,state:{Load:!1,LocalApps:[],StoreApps:[],Expand:{},Cur:{tag:"default",sort:"default",search:"",limit:30,offset:0},LocalAppsMap:{},StoreAppsMap:{}},mutations:{setExpand(n,t){n.Expand=t},setLocalApps(n,t){t=t||[],n.LocalAppsMap={},t.forEach(s=>{n.LocalAppsMap[s.name]=s});const e=[],o=JSON.parse(window.localStorage&&window.localStorage.getItem("istore.tops")||"[]");o.forEach(s=>{const a=n.LocalAppsMap[s];a&&e.push(a)}),t.sort((s,a)=>a.time-s.time),t.forEach(s=>{o.indexOf(s.name)==-1&&e.push(s)}),n.LocalApps=e},setStoreApps(n,t){n.StoreApps=t||[],t.forEach(e=>{n.StoreAppsMap[e.name]=e})},setCur(n,t){for(const e in t)Object.hasOwnProperty.call(t,e)&&(n.Cur[e]=t[e])}},getters:{Cur(n){return n.Cur},LocalApps(n){let t=[...n.LocalApps],e=n.Expand;for(let o=0;o{const l=(a==null?void 0:a.tags)||[];return(l==null?void 0:l.indexOf(o))!=-1}));let s=n.Cur.search;switch(s&&(t=t.filter(a=>{let l=JSON.stringify(a);return new RegExp(s,"i").test(l)})),n.Cur.sort){case"download":t=t.sort((a,l)=>{var u,c;return(((u=l==null?void 0:l.expand)==null?void 0:u.downloadCount)||0)-(((c=a==null?void 0:a.expand)==null?void 0:c.downloadCount)||0)});break;case"star":t=t.sort((a,l)=>{var u,c;return(((u=l==null?void 0:l.expand)==null?void 0:u.starCount)||0)-(((c=a==null?void 0:a.expand)==null?void 0:c.starCount)||0)});break;case"updateDate":t=t.sort((a,l)=>l.time-a.time);break}return t}},actions:{incrAppDownload(n,t){const{state:e}=n;e.Expand[t==null?void 0:t.name]&&e.Expand[t==null?void 0:t.name].downloadCount++},incrAppStar(n,t){const{state:e}=n;e!=null&&e.Expand[t==null?void 0:t.name]&&(e.Expand[t==null?void 0:t.name].starCount++,e.Expand[t==null?void 0:t.name].isStar=!0)},filterCurApps(n,t){const{commit:e,dispatch:o}=n;e("setCur",t)},getApps(n){const{state:t,dispatch:e}=n;e("getLocalApps"),e("getStoreApps",t.Cur)},getLocalApps(n){const{commit:t}=n;b.getInstalledApp().then(e=>{e.forEach(o=>{o.installed=!0}),t("setLocalApps",e)})},getStoreApps(n,t){const{state:e,commit:o,dispatch:s}=n,a={deviceId:L.getDeviceId(),arch:L.modelArch(),ver:L.getVersion(),feature:L.getFeatures().join(",")};let l=[];b.postStoreAppList(t,a).then(u=>{u.apps&&(u.apps.forEach(c=>{l.push(c.name)}),s("getStoreAppsExpand",l),o("setStoreApps",u.apps)),e.Load=!0}).catch(u=>{console.log(u)})},getStoreAppsExpand(n,t){const{commit:e}=n;b.getAppExpandData(t).then(o=>{o&&e("setExpand",o)})},stickTop(n,t){if(!window.localStorage)return;const e=JSON.parse(window.localStorage.getItem("istore.tops")||"[]");if(e.length>0&&e[0]==t)return;const o=[t];e.forEach(l=>{l!=t&&o.push(l)}),window.localStorage.setItem("istore.tops",JSON.stringify(o));const{state:s,commit:a}=n;a("setLocalApps",s.LocalApps)}}},po={namespaced:!0,state:{Tags:[],Total:0},mutations:{},getters:{Tags(n){return n.Tags},Total(n){return n.Total}},actions:{getTags(n){const{state:t,commit:e}=n;b.getStoreTags().then(o=>{t.Tags=(o==null?void 0:o.tags)||[],t.Total=(o==null?void 0:o.total)||0})}}},_o=Rt({state:{version:"",versionLoad:!1},mutations:{setVersion(n,t){n.version=t},setVersionLoad(n,t){n.versionLoad=t}},modules:{apps:uo,tags:po},actions:{getData(n){const{dispatch:t}=n;t("tags/getTags"),t("apps/getApps"),t("getVersion")},getVersion(n){return k(this,null,function*(){const{commit:t}=n;try{const e=yield b.updateIstore(),{code:o,msg:s}=e==null?void 0:e.data;o==200&&t("setVersion",s)}catch(e){console.log(e)}t("setVersionLoad",!0)})},istoreUpdated(n){const{commit:t}=n;t("setVersion","")}}});const ho={},vo={width:"16px",height:"16px",viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},mo=i("path",{d:"M14.9234958,14.5525054 L10.84453,10.4679606 C11.8849284,9.46327833 12.5294813,8.07823887 12.5294813,6.55073066 C12.5294813,3.48989918 9.94358337,1 6.76474066,1 C3.58589795,1 1,3.48989918 1,6.55073066 C1,9.61156213 3.58589795,12.1014613 6.76474066,12.1014613 C8.16008242,12.1014613 9.44067838,11.621191 10.438802,10.8242646 L14.5276502,14.9188536 C14.5814545,14.9730393 14.6533765,15 14.725573,15 C14.7942009,15 14.8625542,14.9754182 14.9158095,14.9262546 C15.025065,14.8250198 15.0283592,14.6577049 14.9234958,14.5525054 Z M6.76474066,11.5728203 C3.8886841,11.5728203 1.54902292,9.32001661 1.54902292,6.55073066 C1.54902292,3.7814447 3.8886841,1.52864101 6.76474066,1.52864101 C9.64079723,1.52864101 11.9804584,3.7814447 11.9804584,6.55073066 C11.9804584,9.32001661 9.64052272,11.5728203 6.76474066,11.5728203 Z",id:"Shape",stroke:"#FFFFFF","stroke-width":"1.3"},null,-1),fo=[mo];function go(n,t,e,o,s,a){return p(),d("svg",vo,fo)}var wo=C(ho,[["render",go]]);const $o={},ko={width:"12px",height:"12px",viewBox:"0 0 12 12",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},bo=i("path",{d:"M10.171916,3.81818329 C10.6519813,3.81274681 11.1102149,4.01840688 11.4252438,4.38069009 C11.7402726,4.74297329 11.8803105,5.2253253 11.8081406,5.70080197 L11.0555552,10.608963 C10.9332063,11.4157454 10.2351606,12.0090843 9.42537185,12 L3.27269856,12 C2.97145497,12 2.7272488,11.7556885 2.7272488,11.454445 L2.7272488,5.4544976 C2.7272488,5.37817917 2.74326442,5.30271013 2.77426027,5.23296947 L4.95605931,0.323921631 C5.04360472,0.126944443 5.23894201,0 5.4544976,0 C6.65947193,0 7.63629663,0.976824702 7.63629663,2.18179904 L7.63629663,3.81815451 L10.171916,3.81818329 Z M3.81814832,10.9090654 L9.43153778,10.9090654 C9.70352269,10.9121048 9.93620458,10.7143252 9.97712277,10.4445109 L10.7297188,5.53628009 C10.7537339,5.3780602 10.7070546,5.2172762 10.602045,5.09651513 C10.4970353,4.97575406 10.3442908,4.9072007 10.1780925,4.90904784 L7.09084687,4.90904784 C6.78960329,4.90904784 6.54539711,4.66484166 6.54539711,4.36359808 L6.54539711,2.18179904 C6.54539711,1.69494967 6.22647822,1.2825878 5.78615711,1.14223013 L3.81814832,5.57024992 L3.81814832,10.9090654 Z M2.7272488,5.99994736 L1.63634928,5.99994736 C1.33510569,5.99994736 1.09089952,6.24415353 1.09089952,6.54539711 L1.09089952,10.3635454 C1.09089952,10.664789 1.33510569,10.9089952 1.63634928,10.9089952 L2.7272488,10.9089952 L2.7272488,5.99994736 Z M3.27269856,11.9998947 L1.63634928,11.9998947 C0.732618527,11.9998947 -1.03028697e-13,11.2672762 -1.03028697e-13,10.3635454 L-1.03028697e-13,6.54539711 C-1.03028697e-13,5.64166636 0.732618527,4.90904784 1.63634928,4.90904784 L3.27269856,4.90904784 C3.57394214,4.90904784 3.81814832,5.15325401 3.81814832,5.4544976 L3.81814832,11.454445 C3.81814832,11.7556885 3.57394214,11.9998947 3.27269856,11.9998947 Z",id:"Shape",fill:"#FFFFFF","fill-rule":"nonzero"},null,-1),yo=[bo];function xo(n,t,e,o,s,a){return p(),d("svg",ko,yo)}var So=C($o,[["render",xo]]);const Co={},Ao={width:"12px",height:"12px",viewBox:"0 0 12 12",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},Lo=i("path",{d:"M10.171916,3.81818329 C10.6519813,3.81274681 11.1102149,4.01840688 11.4252438,4.38069009 C11.7402726,4.74297329 11.8803105,5.2253253 11.8081406,5.70080197 L11.0555552,10.608963 C10.9332063,11.4157454 10.2351606,12.0090843 9.42537185,12 L3.27269856,12 C2.97145497,12 2.7272488,11.7556885 2.7272488,11.454445 L2.7272488,5.4544976 C2.7272488,5.37817917 2.74326442,5.30271013 2.77426027,5.23296947 L4.95605931,0.323921631 C5.04360472,0.126944443 5.23894201,0 5.4544976,0 C6.65947193,0 7.63629663,0.976824702 7.63629663,2.18179904 L7.63629663,3.81815451 L10.171916,3.81818329 Z M3.27269856,11.9998947 L1.63634928,11.9998947 C0.732618527,11.9998947 0,11.2672762 0,10.3635454 L0,6.54539711 C0,5.64166636 0.732618527,4.90904784 1.63634928,4.90904784 L3.27269856,4.90904784 C3.57394214,4.90904784 3.81814832,5.15325401 3.81814832,5.4544976 L3.81814832,11.454445 C3.81814832,11.7556885 3.57394214,11.9998947 3.27269856,11.9998947 Z",id:"Shape",fill:"#FFE45A","fill-rule":"nonzero"},null,-1),To=[Lo];function Io(n,t,e,o,s,a){return p(),d("svg",Ao,To)}var Po=C(Co,[["render",Io]]);const Eo={},Do={viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",width:"20",height:"20"},Bo=i("title",null,"Docker",-1),Mo=i("path",{fill:"currentColor",d:"M560.86064 480h-105.6v-94.4H560.86064V480z m0-326.4h-105.6v97.6H560.86064V153.6z m124.8 232h-105.6V480h105.6v-94.4z m-249.6-115.2h-105.6v96h105.6v-96z m124.8 0h-105.6v96H560.86064v-96z m443.2 160c-22.4-16-76.8-20.8-116.8-12.8-4.8-38.4-27.2-72-65.6-102.4l-22.4-14.4-14.4 22.4c-28.8 44.8-36.8 118.4-6.4 166.4-14.4 8-41.6 17.6-76.8 17.6H4.06064c-14.4 81.6 9.6 187.2 70.4 259.2 59.2 70.4 148.8 105.6 264 105.6 251.2 0 438.4-115.2 524.8-326.4 33.6 0 108.8 0 145.6-72 1.6-3.2 11.2-20.8 12.8-27.2l-17.6-16z m-817.6-44.8H80.86064V480h105.6v-94.4z m124.8 0h-105.6V480h105.6v-94.4z m124.8 0h-105.6V480h105.6v-94.4z m-124.8-115.2h-105.6v96h105.6v-96z"},null,-1),Fo=[Bo,Mo];function Oo(n,t,e,o,s,a){return p(),d("svg",Do,Fo)}var Vo=C(Eo,[["render",Oo]]);const H=at(Qt);H.component("svg-search",wo);H.component("svg-star-on",So);H.component("svg-star-off",Po);H.component("svg-docker",Vo);const zo=()=>k(y,null,function*(){yield Ht(H),H.use(lo).use(_o),H.mount("#app")});zo()});export default Uo(); +var Lt=Object.defineProperty,Tt=Object.defineProperties;var It=Object.getOwnPropertyDescriptors;var wt=Object.getOwnPropertySymbols;var Pt=Object.prototype.hasOwnProperty,Dt=Object.prototype.propertyIsEnumerable;var kt=(n,t,e)=>t in n?Lt(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,G=(n,t)=>{for(var e in t||(t={}))Pt.call(t,e)&&kt(n,e,t[e]);if(wt)for(var e of wt(t))Dt.call(t,e)&&kt(n,e,t[e]);return n},st=(n,t)=>Tt(n,It(t));var Et=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports);var k=(n,t,e)=>new Promise((o,s)=>{var a=l=>{try{u(e.next(l))}catch(h){s(h)}},i=l=>{try{u(e.throw(l))}catch(h){s(h)}},u=l=>l.done?o(l.value):Promise.resolve(l.value).then(a,i);u((e=e.apply(n,t)).next())});import{a as ot,c as Bt,u as O,b as z,d as D,r as Z,o as p,e as d,F as E,f as K,g as Q,w as Mt,h as r,p as tt,i as et,j as c,t as _,k as P,n as q,l as B,m as Ot,q as x,s as at,v as yt,x as X,y as xt,z as Ct,A as Ft,B as $t,C as Vt,D as zt,E as Ut,G as Rt}from"./vendor.js?v=3831f804";var Jo=Et(y=>{const Gt=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))o(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&o(i)}).observe(document,{childList:!0,subtree:!0});function e(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerpolicy&&(a.referrerPolicy=s.referrerpolicy),s.crossorigin==="use-credentials"?a.credentials="include":s.crossorigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function o(s){if(s.ep)return;s.ep=!0;const a=e(s);fetch(s.href,a)}};Gt();const j={tagMap:{},numberFormat:new Intl.NumberFormat("en",{notation:"compact"})},Ht=n=>k(y,null,function*(){const t=window.vue_lang;new Date().getTime();let e={};try{const a=yield ot({url:window.vue_lang_data,method:"GET"});a.data&&(e=a.data)}catch(a){console.log(a)}const o=Bt({defaultLanguage:t,translations:e,setGlobalProperties:!1,provideDirective:!1,provideComponent:!1});n.use(o);const{$gettext:s}=o;window.$i18n=s,j.tagMap={net:s("net"),tool:s("tool"),download:s("download"),service:s("service"),multimedia:s("multimedia"),nas:s("nas"),monitor:s("monitor"),system:s("system"),networking:s("networking")};try{j.numberFormat=new Intl.NumberFormat(t,{notation:"compact"})}catch(a){console.error("Intl.NumberFormat unsupported lang",t,a)}}),St=n=>j.tagMap[n]||n,bt=n=>typeof n=="number"?j.numberFormat.format(n):"?";var C=(n,t)=>{const e=n.__vccOpts||n;for(const[o,s]of t)e[o]=s;return e};const Kt=n=>(tt("data-v-13251538"),n=n(),et(),n),Nt={class:"tabs"},Wt=["href","onClick"],Zt={key:0},qt=Kt(()=>c("div",{class:"auto"},null,-1)),Jt={setup(n){const{$gettext:t}=O(),e=z(),o=D(()=>e.state.version),s=D(()=>[{to:"/installed",name:t("installed")},{to:"/store",name:t("all app")},{to:"/upload",name:t("manual install")},{to:"/maintance",name:t("maintain"),up:o.value}]);return(a,i)=>{const u=Z("router-link");return p(),d("ul",Nt,[(p(!0),d(E,null,K(r(s),l=>(p(),Q(u,{to:l.to,custom:"",key:l.to},{default:Mt(({href:h,navigate:I,isActive:M})=>[c("li",{class:q(M&&"active cbi-tab")},[c("a",{href:h,onClick:I},_(l.name),9,Wt),l.up?(p(),d("span",Zt)):P("",!0)],2)]),_:2},1032,["to"]))),128)),qt])}}};var Yt=C(Jt,[["__scopeId","data-v-13251538"]]);const Qt={setup(n){return z().dispatch("getData"),(e,o)=>{const s=Z("router-view");return p(),d(E,null,[B(Yt),B(s)],64)}}},Xt=()=>window.vue_base,jt=()=>window.istore_api_base||"https://istore.linkease.com",te=n=>{if(n)return Ot(n).format("YYYY-MM-DD HH:mm:ss")},ee=()=>new Date().getTime(),ne=n=>{if(n<1024)return""+n+"KB";let e=1024,o=0;for(let a=n/1024;a>=1024;a/=1024)e*=1024,o++;let s=["M","G","T","P","E"];return(n/100/(e/100)).toFixed(2)+s[o]},se=n=>{if(n==null)return 0;if(n<1e4)return n;let e=parseInt(`${n/1e4}`),o=n%1e4;return`${e}\u4E07${o}`},oe=()=>window.token||"",ae=()=>{var n;return((n=window==null?void 0:window.device_id)==null?void 0:n.uid)||""},re=()=>{var n;return((n=window==null?void 0:window.istore_config)==null?void 0:n.channel)||""},ce=()=>{var n;return((n=window==null?void 0:window.device_id)==null?void 0:n.version)||""},ie=()=>{var n;return((n=window==null?void 0:window.device_id)==null?void 0:n.arch)||""},le=()=>"https://www.kooldns.cn/bind",ue=()=>window.istore_features||[];var pe=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",BasePage:Xt,ApiBaseURL:jt,formatDate:te,UnixDate:ee,numberToSize:ne,numberToSum:se,getToken:oe,getDeviceId:ae,getChannel:re,getVersion:ce,modelArch:ie,getIframeURL:le,getFeatures:ue}),L=G({},pe);const A=ot.create({});A.interceptors.request.use(n=>(n.params==null&&(n.params={}),n.params=st(G({},n.params),{token:L.getToken(),_t:L.UnixDate()}),n),n=>n);A.interceptors.response.use(n=>n,n=>n);const R=ot.create({baseURL:L.ApiBaseURL()});R.interceptors.request.use(n=>(n.params==null&&(n.params={}),n.params=st(G({},n.params),{modelArch:L.modelArch(),deviceId:L.getDeviceId(),channel:L.getChannel(),_t:L.UnixDate()}),n),n=>n);R.interceptors.response.use(n=>n);const de=()=>new Promise((n,t)=>k(y,null,function*(){try{const e=yield A({method:"GET",url:"/cgi-bin/luci/admin/store/installed"});if(e.status==200){n(e.data);return}t(e.status);return}catch(e){t(e);return}})),_e=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/install",params:{package:n}});if(o.status==200){t(o.data);return}e(o.status);return}catch(o){e(o);return}})),he=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/upgrade",params:{package:n}});if(o.status==200){t(o.data);return}e(o.status);return}catch(o){e(o);return}})),ve=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/remove",params:{package:n}});if(o.status==200){t(o.data);return}e(o.status);return}catch(o){e(o);return}})),fe=()=>new Promise((n,t)=>k(y,null,function*(){try{const e=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/update"});if(e.status==200){n(e.data);return}t(e.status);return}catch(e){t(e);return}})),me=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"GET",url:"/cgi-bin/luci/admin/store/status",params:{package:n}});if(o.status==200){t(o.data);return}e(o.status);return}catch(o){e(o);return}})),ge=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/upload",headers:{"Content-Type":"multipart/form-data"},data:n});if(o.data){t(o.data);return}}catch(o){e(o);return}e("not found soft")})),we=()=>new Promise((n,t)=>k(y,null,function*(){try{const e=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/light_backup"});if(e.status==200){n(e.data);return}t(e.status);return}catch(e){t(e);return}})),ke=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/light_restore",headers:{"Content-Type":"multipart/form-data"},data:n});if(o.data){t(o.data);return}}catch(o){e(o);return}e("not found soft")})),$e=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"GET",url:"/cgi-bin/luci/admin/store/get_available_backup_file_list",params:{path:n}});if(o.status==200){t(o==null?void 0:o.data);return}e(o.status);return}catch(o){e(o);return}})),be=()=>new Promise((n,t)=>k(y,null,function*(){try{const e=yield A({method:"GET",url:"/cgi-bin/luci/admin/store/get_local_backup_dir_path"});if(e.status==200){n(e==null?void 0:e.data);return}t(e.status);return}catch(e){t(e);return}})),ye=(n,t)=>new Promise((e,o)=>k(y,null,function*(){try{const s=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/local_backup",params:{path:n,force:t}});if(s.status==200){e(s==null?void 0:s.data);return}o(s.status);return}catch(s){o(s);return}})),xe=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/local_restore",params:{path:n}});if(o.status==200){t(o.data);return}e(o.status);return}catch(o){e(o);return}})),Ce=()=>new Promise((n,t)=>k(y,null,function*(){try{const e=yield A({method:"GET",url:"/cgi-bin/luci/admin/store/get_block_devices"});if(e.status==200){n(e==null?void 0:e.data);return}t(e.status);return}catch(e){t(e);return}})),Se=n=>new Promise((t,e)=>k(y,null,function*(){try{const o=yield A({method:"POST",url:"/cgi-bin/luci/admin/store/toggle_docker",params:{hide:n}});if(o.status==200){t(o.data);return}e(o.status);return}catch(o){e(o);return}}));var Ae=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",getInstalledApp:de,installApp:_e,upgradeApp:he,removeApp:ve,updateAppStore:fe,getAppStatus:me,uploadAppIPK:ge,lightBackup:we,lightRestore:ke,backupFileList:$e,localBackupdirPath:be,localBackup:ye,localRestore:xe,getBlockDevices:Ce,toggleDocker:Se});const Le=n=>new Promise((t,e)=>k(y,null,function*(){var o,s,a,i;try{const u=yield R({method:"GET",url:"/api/store/list",params:n});if(((o=u==null?void 0:u.data)==null?void 0:o.success)===0){t((s=u==null?void 0:u.data)==null?void 0:s.result);return}if((a=u==null?void 0:u.data)!=null&&a.message){e((i=u==null?void 0:u.data)==null?void 0:i.message);return}e("error")}catch(u){console.log(u),e(u);return}})),Te=(n,t)=>new Promise((e,o)=>k(y,null,function*(){var s,a,i,u;try{const l=yield R({method:"POST",url:"/api/store/list",params:n,data:t});if(((s=l==null?void 0:l.data)==null?void 0:s.success)===0){e((a=l==null?void 0:l.data)==null?void 0:a.result);return}if((i=l==null?void 0:l.data)!=null&&i.message){o((u=l==null?void 0:l.data)==null?void 0:u.message);return}o("error")}catch(l){console.log(l),o(l);return}})),Ie=L.ApiBaseURL(),Pe=n=>`${Ie}${n}`,De=()=>new Promise((n,t)=>k(y,null,function*(){var e,o,s,a;try{const i=yield R({method:"GET",url:"/api/store/tags"});if(((e=i==null?void 0:i.data)==null?void 0:e.success)===0){n((o=i==null?void 0:i.data)==null?void 0:o.result);return}if((s=i==null?void 0:i.data)!=null&&s.message){t((a=i==null?void 0:i.data)==null?void 0:a.message);return}t("error")}catch(i){t(i);return}})),Ee=n=>new Promise((t,e)=>{R({method:"POST",url:"/api/store/expand",data:{appsId:n||[],deviceId:L.getDeviceId()}}).then(o=>{var s,a,i;if(((s=o.data)==null?void 0:s.success)==0&&((a=o.data)==null?void 0:a.result)){t((i=o.data)==null?void 0:i.result);return}e("not found expand")}).catch(o=>{e(o)})}),Be=n=>{R({method:"POST",url:"/api/store/download",data:{appId:n,deviceId:L.getDeviceId()}}).then(t=>{var e;((e=t.data)==null?void 0:e.success)!=0})},Me=n=>new Promise((t,e)=>{R({method:"POST",url:"/api/store/star",data:{appId:n,deviceId:L.getDeviceId()}}).then(o=>{var s;if(((s=o.data)==null?void 0:s.success)==0){t(o.data);return}e("not found expand")}).catch(o=>{e(o)})});var Oe=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",getStoreAppList:Le,postStoreAppList:Te,getStoreAppIcon:Pe,getStoreTags:De,getAppExpandData:Ee,increasingDownloadCount:Be,postStarApp:Me});const Fe=()=>A({method:"GET",url:"/cgi-bin/luci/admin/store/check_self_upgrade"}),Ve=()=>A({method:"POST",url:"/cgi-bin/luci/admin/store/do_self_upgrade"});var ze=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",updateIstore:Fe,selfUpdateIstore:Ve}),b=G(G(G({},Ae),Oe),ze);const Ue={class:"toast"},Re=["title"],Ge={key:1,class:"msg"},He=["innerHTML"],Ke={props:{content:String,type:String,Close:Function,keep:Boolean,html:Boolean},setup(n){const t=n,e=x(t.content),o=x(t.keep),s=x(t.html),a=x(window.$i18n);t.keep||setTimeout(()=>{t.Close()},2e3);const i=()=>{t.Close()};return(u,l)=>(p(),d("div",Ue,[o.value?(p(),d("div",{key:0,class:"toast-close",onClick:i,title:a.value("closed")},"x",8,Re)):P("",!0),s.value?P("",!0):(p(),d("div",Ge,_(e.value),1)),s.value?(p(),d("div",{key:2,class:"msg",innerHTML:e.value},null,8,He)):P("",!0)]))}};var Ne=C(Ke,[["__scopeId","data-v-b05f92bc"]]);const $=n=>{let t={content:"",type:"",keep:!1,html:!1,Close:()=>{o.unmount(e),document.body.removeChild(e)}};n!=null&&(typeof n=="object"?(t.content=(n==null?void 0:n.content)||"",t.type=(n==null?void 0:n.type)||"",t.keep=(n==null?void 0:n.keep)||!1,t.html=(n==null?void 0:n.html)||!1):t.content=n);let e=document.createElement("div"),o=at(Ne,t);document.body.append(e),o.mount(e),yt(()=>{o.unmount(e),document.body.removeChild(e)})},We={props:{content:String,Close:Function},setup(n){return{message:n.content}}},Ze=n=>(tt("data-v-6d7664a4"),n=n(),et(),n),qe={class:"loading"},Je=Ze(()=>c("div",{class:"icon"},null,-1)),Ye={class:"msg"};function Qe(n,t,e,o,s,a){return p(),d("div",qe,[Je,c("div",Ye,_(o.message),1)])}var Xe=C(We,[["render",Qe],["__scopeId","data-v-6d7664a4"]]),V={props:{content:"",Close:()=>{}},Start(n){this.props={content:n,Close:()=>{t.unmount(e),document.body.removeChild(e)}};let t=at(Xe,this.props),e=document.createElement("div");document.body.append(e),t.mount(e),yt(()=>{this.props.Close()})},Stop(){this.props.Close()}};const rt=n=>!Array.isArray(window.istore_features)||window.istore_features.indexOf(n)!=-1,J=n=>(tt("data-v-62f0600f"),n=n(),et(),n),je={class:"app-container"},tn={class:"app-info"},en={class:"app-f"},nn={class:"app-icon"},sn=["alt","src"],on={key:0,class:"docker-icon-i"},an={class:"app-tags"},rn={class:"tag"},cn=J(()=>c("span",{class:"block"},"\uFF5C",-1)),ln={class:"app-r"},un=["title"],pn={class:"app-name"},dn={class:"app-version"},_n={class:"app-as"},hn=J(()=>c("span",{style:{margin:"0 10px"}},"|",-1)),vn=["title"],fn=["title"],mn=["title"],gn={class:"app-author"},wn={class:"app-date"},kn={class:"app-btns"},$n=["href"],bn=["href"],yn=J(()=>c("div",{class:"auto"},null,-1)),xn=J(()=>c("div",{class:"app-margin-left"},null,-1)),Cn=J(()=>c("div",{class:"app-margin-left"},null,-1)),Sn=["href"],An=J(()=>c("div",{class:"app-margin-left"},null,-1)),Ln=["title"],Tn={props:{col:{type:Object,default(){return{description:"",tags:[],entry:"",author:"",depends:[],installed:!1,hasupdate:!1,title:"",time:"",release:1,website:"",name:"",version:""}}}},setup(n){const t=n,{$gettext:e,$ngettext:o}=O(),s=D(()=>t.col),a=z(),i=L.formatDate,u=g=>{b.upgradeApp(g).then(w=>{let T=w.stderr;w.code!==0?$({content:`${T} +${e("update failed with error code")}: ${w.code}`,keep:!0}):window.istore_log(!0)}).catch(w=>{$({content:`${e("update failed with error code")}: ${500}`,keep:!0})})},l=(g,w)=>{w&&!rt("docker")&&!confirm(e("Docker is not installed on the system, try to install it?"))||b.installApp(g).then(T=>{let m=T.stderr;T.code!==0?$({content:`${m} +${e("installation failed, error code")}: ${T.code}`,keep:!0}):(b.increasingDownloadCount(g),a.dispatch("apps/incrAppDownload",{name:g}),window.istore_log(!0))}).catch(T=>{$({content:`${e("installation failed, error code")}: ${500}`,keep:!0})})},h=g=>{!confirm(e("are you sure you want to uninstall %{name}?",{name:g}))||b.removeApp(g).then(T=>{let m=T.stderr;T.code!==0?$({content:`${m} +${e("uninstall failed, error code")}: ${T.code}`,keep:!0}):window.istore_log(!0)}).catch(T=>{$({content:`${e("uninstall failed, error code")}: ${500}`,keep:!0})})},I=g=>k(this,null,function*(){V.Start();try{(yield b.postStarApp(g))&&a.dispatch("apps/incrAppStar",{name:g})}catch(w){}V.Stop()}),M=()=>{$(e("you have already liked"))},N=g=>s.value.installed?`/luci-static/resources/app-icons/${g}.png`:s.value.icon?b.getStoreAppIcon(s.value.icon):`/luci-static/resources/app-icons/${g}.png`,W=g=>{switch(window.vue_lang){case"zh-cn":case"zh-tw":return g.title}return g.title_en||g.title},Y=g=>{switch(window.vue_lang){case"zh-cn":case"zh-tw":return g.description}return g.description_en||g.description},nt=g=>{a.dispatch("apps/stickTop",g)};return(g,w)=>{var v,S,F,ct,it,lt,ut,pt,dt,_t,ht,vt,ft,mt,gt;const T=Z("svg-docker"),m=Z("svg-star-off"),f=Z("svg-star-on");return p(),d("div",je,[c("div",tn,[c("div",en,[c("div",nn,[c("img",{alt:r(e)("Icon is gone")+"~",src:N(r(s).name)},null,8,sn),r(s).depends.indexOf("docker-deps")!=-1?(p(),d("i",on,[B(T,{class:"docker-icon"})])):P("",!0)]),c("div",an,[(p(!0),d(E,null,K(r(s).tags,U=>(p(),d(E,{key:U},[c("div",rn,[c("span",null,_(r(St)(U)),1)]),cn],64))),128))])]),c("div",ln,[c("div",{class:"app-title",title:r(s).name},[c("span",pn,_(W(r(s))),1),c("span",dn,"v"+_(r(s).version),1)],8,un),c("div",_n,[c("span",null,_(r(o)("%{ num } download","%{ num } downloads",((S=(v=r(s))==null?void 0:v.expand)==null?void 0:S.downloadCount)||0,{num:r(bt)((ct=(F=r(s))==null?void 0:F.expand)==null?void 0:ct.downloadCount)})),1),hn,c("span",null,_(r(o)("%{ num } like","%{ num } likes",((lt=(it=r(s))==null?void 0:it.expand)==null?void 0:lt.starCount)||0,{num:r(bt)((pt=(ut=r(s))==null?void 0:ut.expand)==null?void 0:pt.starCount)})),1),((dt=r(s))==null?void 0:dt.expand)!=null?(p(),d(E,{key:0},[(ht=(_t=r(s))==null?void 0:_t.expand)!=null&&ht.isStar?(p(),d("a",{key:0,class:"star-btn",title:r(e)("liked"),onClick:w[0]||(w[0]=U=>M())},[B(m)],8,vn)):(p(),d("a",{key:1,class:"star-btn",title:r(e)("like"),onClick:w[1]||(w[1]=U=>I(r(s).name))},[B(f)],8,fn))],64)):P("",!0)]),c("div",{class:"app-description cbi-value-description",title:Y(r(s))},[c("span",null,_(Y(r(s))),1)],8,mn),c("div",gn,[c("span",null,_(r(e)("author"))+": "+_(r(s).author||"null"),1)]),c("div",wn,[c("span",null,_(r(e)("update date"))+": "+_(r(i)(r(s).time*1e3)||"null"),1)])])]),c("div",kn,[r(s).tutorial?(p(),d("a",{key:0,class:"app-btn cbi-button cbi-button-apply",target:"_blank",href:r(s).tutorial},_(r(e)("tutorial")),9,$n)):r(s).website?(p(),d("a",{key:1,class:"app-btn cbi-button cbi-button-apply",target:"_blank",href:r(s).website},_(r(e)("website")),9,bn)):P("",!0),yn,r(s).installed?(p(),d(E,{key:2},[((vt=r(s))==null?void 0:vt.curVersion)!=((ft=r(s))==null?void 0:ft.lastVersion)||((mt=r(s))==null?void 0:mt.curRelease)!=((gt=r(s))==null?void 0:gt.lastRelease)?(p(),d(E,{key:0},[xn,c("a",{class:"app-btn cbi-button cbi-button-reload",onClick:w[2]||(w[2]=U=>u(r(s).name))},_(r(e)("upgrade")),1)],64)):P("",!0),Cn,r(s).entry?(p(),d("a",{key:1,class:"app-btn cbi-button cbi-button-apply",href:r(s).entry},_(r(e)("open")),9,Sn)):P("",!0),An,c("a",{class:"app-btn cbi-button cbi-button-remove",onClick:w[3]||(w[3]=U=>h(r(s).name))},_(r(e)("uninstall")),1)],64)):(p(),d("a",{key:3,class:"app-btn cbi-button cbi-button-add",onClick:w[4]||(w[4]=U=>l(r(s).name,r(s).depends.indexOf("docker-deps")!=-1))},_(r(e)("install")),1))]),c("span",{class:"fav-icon-i",onClick:w[5]||(w[5]=U=>nt(r(s).name)),title:r(e)("Stick to the top")},"\u21EA",8,Ln)])}}};var In=C(Tn,[["__scopeId","data-v-62f0600f"]]);const Pn={class:"containers"},Dn={props:{apps:{type:Array,default(){return[]}}},setup(n){const t=n,e=D(()=>t.apps);return(o,s)=>(p(),d("div",Pn,[(p(!0),d(E,null,K(r(e),a=>(p(),Q(In,{key:a.name,col:a},null,8,["col"]))),128))]))}};var At=C(Dn,[["__scopeId","data-v-0708f588"]]);const En={class:"cbi-section"},Bn={setup(n){const t=z(),e=D(()=>t.getters["apps/LocalApps"]);return(o,s)=>(p(),d("fieldset",En,[B(At,{class:"app-list-installed",apps:r(e)},null,8,["apps"])]))}};var Mn=C(Bn,[["__scopeId","data-v-bb2340b4"]]);const On={class:"sort-container"},Fn={class:"sort-title"},Vn={class:"sort-value"},zn=["value","onClick"],Un={setup(n){const{$gettext:t}=O(),e=x("default"),o=z(),s=x([{key:t("default"),value:"default"},{key:t("By download"),value:"download"},{key:t("By rating"),value:"star"},{key:t("Latest update"),value:"updateDate"}]),a=i=>{e.value=i,o.dispatch("apps/filterCurApps",{sort:i})};return(i,u)=>(p(),d("div",On,[c("div",Fn,_(r(t)("order"))+":",1),c("div",Vn,[(p(!0),d(E,null,K(s.value,l=>(p(),d("input",{key:l.value,class:q(["cbi-button",{"cbi-button-apply":e.value==l.value}]),type:"button",value:l.key,onClick:h=>a(l.value)},null,10,zn))),128))])]))}};var Rn=C(Un,[["__scopeId","data-v-9f592bc6"]]);const Gn={class:"tags-container"},Hn={class:"tags-title"},Kn={class:"tags-value"},Nn=["value"],Wn=["value","onClick"],Zn={setup(n){const{$gettext:t}=O(),e=x("default"),o=z(),s=D(()=>o.getters["tags/Tags"]),a=i=>{e.value=i,o.dispatch("apps/filterCurApps",{tag:i})};return(i,u)=>(p(),d("div",Gn,[c("div",Hn,_(r(t)("tag"))+": ",1),c("div",Kn,[c("input",{class:q(["cbi-button",{"cbi-button-apply":e.value=="default"}]),type:"button",value:r(t)("default"),onClick:u[0]||(u[0]=l=>a("default"))},null,10,Nn),(p(!0),d(E,null,K(r(s),l=>(p(),d("input",{key:l,class:q(["cbi-button",{"cbi-button-apply":e.value==l}]),type:"button",value:r(St)(l),onClick:h=>a(l)},null,10,Wn))),128))])]))}};var qn=C(Zn,[["__scopeId","data-v-07bccc36"]]);const Jn=["onSubmit"],Yn=["placeholder"],Qn={setup(n){const{$gettext:t}=O(),e=x(""),o=z(),s=()=>{o.dispatch("apps/filterCurApps",{search:e.value})};return(a,i)=>{const u=Z("svg-search");return p(),d("form",{class:"search",onSubmit:Ct(s,["prevent"])},[c("a",{class:"search-btn",onClick:s},[B(u)]),X(c("input",{type:"text",placeholder:r(t)("please enter the search keyword"),"onUpdate:modelValue":i[0]||(i[0]=l=>e.value=l)},null,8,Yn),[[xt,e.value,void 0,{trim:!0}]])],40,Jn)}}};var Xn=C(Qn,[["__scopeId","data-v-c4e8a9f2"]]);const jn={key:1,style:{margin:"10px 0","text-align":"center",width:"100%"}},ts={setup(n){const{$gettext:t}=O(),e=z(),o=D(()=>e.getters["apps/StoreApps"]),s=D(()=>e.state.apps.Load);return(a,i)=>r(s)?(p(),Q(At,{key:0,apps:r(o)},null,8,["apps"])):(p(),d("span",jn,_(r(t)("loading data"))+"...",1))}},es={class:"cbi-section"},ns={setup(n){return(t,e)=>(p(),d("fieldset",es,[B(Xn),B(qn),B(Rn),B(ts)]))}};var ss=C(ns,[["__scopeId","data-v-74b0669f"]]);const os=n=>(tt("data-v-0b0723c2"),n=n(),et(),n),as={class:"cbi-section"},rs={class:"container_msg cbi-map-descr"},cs=["onSubmit"],is={class:"upload-file"},ls={class:"button"},us=os(()=>c("div",{class:"auto"},null,-1)),ps={setup(n){const{$gettext:t}=O(),e=x(null),o=x(null);Ft(()=>{if(e.value){const u=e.value;u.addEventListener("dragenter",l=>{(l.fromElement===null||!u.contains(l.fromElement))&&console.log("dragenter")},!1),u.addEventListener("dragleave",l=>{(l.fromElement===null||!u.contains(l.fromElement))&&console.log("dragleave")},!1),u.addEventListener("dragover",l=>{l.preventDefault(),l.dataTransfer.dropEffect="link"},!1),u.addEventListener("drop",l=>{console.log("drop"),l.preventDefault(),s(l)},!1)}});const s=u=>{const l=u.dataTransfer.files;if(l&&l.length>0){const h=l[0];i(h);return}},a=u=>{const l=u.target.files;if(l&&l.length>0){const h=l[0];i(h);return}},i=u=>{if(u.name.endsWith(".run")||u.name.endsWith(".ipk")){let l=new FormData;l.append(u.name,u),V.Start(`${t("uploading")}...`),b.uploadAppIPK(l).then(h=>{let I=h.stderr;h.code!==0?Toast({content:`${I} +${t("offline installation failed with error code")}: ${h.code}`,keep:!0}):window.istore_log(!0)}).catch(h=>{Toast({content:`${t("offline installation failed with error code")}: ${500}`,keep:!0})}).finally(()=>{V.Stop()})}};return(u,l)=>{var h;return p(),d("fieldset",as,[c("div",rs,[c("span",null,_(r(t)("offline install")),1),c("span",null,"\xB7 "+_(r(t)("in this page, you can upload and install packages")),1),c("span",null,"\xB7 "+_(r(t)("supports .ipk packages, .run self-extracting packages")),1),c("span",null,"\xB7 "+_(r(t)("packages installed offline may not appear in iStore")),1)]),c("form",{onSubmit:Ct(i,["prevent"])},[c("div",{class:"flex",ref_key:"upl",ref:e},[c("label",is,[c("span",null,_(((h=o.value)==null?void 0:h.name)||r(t)("no files selected")),1),c("input",{type:"file",name:"file",accept:".ipk, .run",hidden:"",onChange:a},null,32),c("div",ls,_(r(t)("select or drag and drop files")),1)]),us],512)],40,cs)])}}};var ds=C(ps,[["__scopeId","data-v-0b0723c2"]]);const _s={class:"cbi-section"},hs={class:"webapp-container"},vs=["src"],fs={setup(n){const t=D(()=>""),e=D(()=>""),o=D(()=>`${L.getIframeURL()}/#/apps?token=${e.value}&deviceId=${t.value}`);return(s,a)=>(p(),d("fieldset",_s,[c("div",hs,[c("iframe",{src:r(o),sandbox:"allow-scripts allow-same-origin allow-popups",seamless:""},null,8,vs)])]))}};var ms=C(fs,[["__scopeId","data-v-8e330954"]]);const gs={class:"log-containers"},ws={key:0,class:"containers-tit"},ks={key:1,class:"containers-tit"},$s=["value"],bs={key:1},ys={setup(n){const{$gettext:t}=O(),e=z(),o=D(()=>e.state.version),s=D(()=>e.state.versionLoad),a=()=>{V.Start(`${t("updateing")}...`),b.selfUpdateIstore().then(({data:i})=>{if(i){const{stdout:u,stderr:l,code:h}=i;if(h==0){$({content:`${t("update success, reloading")}...`,keep:!0}),e.dispatch("istoreUpdated"),setTimeout(()=>{location.href=location.href},1e3);return}else throw l||"unknown error"}throw"unknown error"}).catch(i=>{$(`${t("update error")}: ${i}`)}).finally(()=>{V.Stop()})};return(i,u)=>(p(),d("div",gs,[r(s)?(p(),d("div",ks,[r(o)?(p(),d(E,{key:0},[c("span",null,_(r(t)("last version"))+":"+_(r(o)),1),c("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:u[0]||(u[0]=l=>a()),value:r(t)("click to update")},null,8,$s)],64)):(p(),d("span",bs,_(r(t)("the is last version"))+"...",1))])):(p(),d("div",ws,_(r(t)("checking for latest version")),1))]))}};var xs=C(ys,[["__scopeId","data-v-8ac6e0ca"]]);const Cs={class:"log-containers"},Ss={class:"containers-tit"},As=["disabled","value"],Ls={setup(n){const{$gettext:t}=O(),e=z(),o=D(()=>e.state.apps.Cur.hide_docker),s=x(!1),a=()=>{s.value=!0;let i=!o.value;window.istore_config.hide_docker=i,e.dispatch("apps/filterCurApps",{hide_docker:i}),b.toggleDocker(i).finally(()=>{s.value=!1})};return(i,u)=>(p(),d("div",Cs,[c("div",Ss,[c("input",{disabled:s.value,type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:u[0]||(u[0]=l=>a()),value:r(o)?r(t)("show docker packages"):r(t)("hide docker packages")},null,8,As)])]))}};var Ts=C(Ls,[["__scopeId","data-v-0a9c0f22"]]);const Is={class:"Lightweight"},Ps={class:"Lightweight-container"},Ds={class:"model"},Es={class:"Lightweight-container1"},Bs={class:"container1-center"},Ms={class:"Lightweight-tit"},Os={class:"Lightweight-backup"},Fs=["value"],Vs=["value"],zs={setup(n){const{$gettext:t}=O(),e=x(null),o=()=>{const u=t("backuping"),l=t("backup success"),h=t("backup fail"),I=t("click to download");V.Start(`${u}...`),b.lightBackup().then(M=>{if(M){const{msg:N,code:W}=M;if(W==200){$({content:`${l}\uFF0C${I}

`,keep:!0,html:!0});return}else throw N||"unknown error"}throw"unknown error"}).catch(M=>{$(`${h} : ${M}`)}).finally(()=>{V.Stop()})},s=u=>{const l=u.target.files;if(l&&l.length>0){const h=l[0];a(h);return}},a=u=>{let l=new FormData;l.append(u.name,u),V.Start(`${t("uploading")}...`),b.lightRestore(l).then(h=>{let I=h.stderr;h.code!==0?$({content:`${I} +${t("restore failed with error code")}: ${h.code}`,keep:!0}):window.istore_log(!0)}).catch(h=>{$({content:`${t("restore failed with error code")}: ${500}`,keep:!0})}).finally(()=>{V.Stop()})},i=u=>{e.value.click(u),u.preventDefault()};return(u,l)=>(p(),d("div",Is,[c("div",Ps,[c("div",Ds,_(r(t)("explain")),1),c("div",Es,[c("div",Bs,[c("div",Ms,[c("span",null,"\xB7 "+_(r(t)("backup now will download a list of iStore installed software")),1),c("span",null,"\xB7 "+_(r(t)("upload software list and install from iStore when restoring backup")),1)]),c("div",Os,[c("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:o,value:r(t)("backup now")},null,8,Fs),c("input",{type:"file",name:"file",accept:".tar, .gz",hidden:"",onChange:s,ref_key:"upl",ref:e},null,544),c("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:i,value:r(t)("restore backup")},null,8,Vs)])])])])]))}};var Us=C(zs,[["__scopeId","data-v-a4c06ae8"]]);const Rs={class:"local"},Gs={class:"local-container"},Hs={class:"model"},Ks={class:"local-container1"},Ns={class:"container1-center"},Ws={class:"local-tit"},Zs={class:"local-device"},qs={class:"local-input"},Js={value:"",disabled:""},Ys=["value"],Qs={value:"-"},Xs=["onKeyup","placeholder"],js={key:2,class:"local-btn"},to=["value"],eo=["value"],no={key:0,class:"device-list"},so=["value"],oo=["value"],ao={setup(n){const{$gettext:t}=O(),e=t("backup now backs up installed software (unlimited installation sources) to external storage"),o=x([]),s=x("-");let a="-";const i=x(!1),u=x([]),l=x(""),h=x(""),I=x(),M=(m,f)=>{if(!(f===""||f==="-"||m.find(v=>v.path===f))){let v;m.filter(S=>S.mount&&S.dev&&f.startsWith(S.mount)).forEach(S=>{v&&v.mount.length>S.mount.length||(v=S)}),m.push({path:f,size:v?v.size:void 0})}o.value=m,f!=="-"&&(s.value=f,N())};s.value=="-"&&(b.localBackupdirPath().then(m=>{if(m){const{code:f,msg:v}=m;f==200&&M(o.value,v)}}),b.getBlockDevices().then(m=>{if(m&&m.code==200){const f=m.data,v=[];for(let S in f){const F=f[S];F.mount&&F.mount!="/"&&F.mount!="/rom"&&F.mount!="/overlay"&&v.push(F)}v.forEach(S=>{S.path=S.mount+"/istore_backup"}),M(v,v.length>0&&s.value==="-"?"":s.value)}}));const N=m=>{i.value=!1,s.value==="-"?(a!="-"&&(h.value=a),I.value.focus()):a=s.value},W=m=>{h.value==""?a!="-"?s.value=a:s.value="":h.value.startsWith("/")?M(o.value,h.value):($(t("please enter the path, give up the input, please clear the input box")),I.value.setSelectionRange(0,h.value.length),I.value.focus())},Y=()=>s.value.length>1&&s.value.endsWith("/")?s.value.substring(0,s.value.length-1):s.value,nt=()=>{let m=Y();if(m==""){$(t("please fill in the external storage directory"));return}i.value=!1,b.backupFileList(m).then(f=>{if(f){const{code:v,msg:S}=f;if(v==200){let F=JSON.parse(S);F.length==0?($(t("there are no backup files in this path")),i.value=!1):(u.value=F,i.value=!0);return}throw S||"unknown error"}throw"unknown error"}).catch(f=>{$(f)})},g=()=>{let m=Y();if(m==""){$(t("please fill in the external storage directory"));return}b.localBackup(m).then(f=>{let v=f.stderr;f.code!==0?$({content:`${v} +${t("backup fail with error code")}: ${f.code}`,keep:!0}):window.istore_log(!1)}).catch(f=>{$({content:`${t("backup fail with error code")}: ${500}`,keep:!0})})},w=m=>s.value.endsWith("/")?s.value+m:s.value+"/"+m,T=()=>{if(l.value===""){$(t("please select a backup file to restore"));return}b.localRestore(w(l.value)).then(m=>{let f=res.stderr;res.code!==0?$({content:`${f} +${t("restore failed with error code")}: ${res.code}`,keep:!0}):window.istore_log(!0)}).catch(m=>{$({content:`${t("restore failed with error code")}: ${500}`,keep:!0})})};return(m,f)=>(p(),d("div",Rs,[c("div",Gs,[c("div",Hs,_(r(t)("explain")),1),c("div",Ks,[c("div",Ns,[c("div",Ws,[c("span",null,"\xB7 "+_(r(t)(r(e))),1),c("span",null,"\xB7 "+_(r(t)("no internet required for recovery")),1)]),c("div",Zs,_(r(t)("external storage directory"))+" \uFF1A ",1),c("div",qs,[s.value!="-"?X((p(),d("select",{key:0,class:"local-input-field",onChange:N,"onUpdate:modelValue":f[0]||(f[0]=v=>s.value=v)},[c("option",Js,_(r(t)("choose")),1),(p(!0),d(E,null,K(o.value,(v,S)=>(p(),d("option",{value:v.path,key:S},_(v.path+(v.size?"\uFF08"+v.size+"\uFF09":"")),9,Ys))),128)),c("option",Qs,_(r(t)("customize")),1)],544)),[[$t,s.value,void 0,{trim:!0}]]):X((p(),d("input",{key:1,class:"local-input-field",onBlur:W,onKeyup:Vt(W,["enter"]),placeholder:r(t)("please enter an absolute path starting with %{name}",{name:"/"}),type:"text","onUpdate:modelValue":f[1]||(f[1]=v=>h.value=v),ref_key:"user_input",ref:I},null,40,Xs)),[[xt,h.value,void 0,{trim:!0}]]),s.value!="-"&&s.value!=""?(p(),d("div",js,[c("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:g,value:r(t)("backup now")},null,8,to),c("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:nt,value:r(t)("restore backup")},null,8,eo)])):P("",!0)]),i.value?(p(),d("div",no,[c("div",null,_(r(t)("choose backup file"))+" \uFF1A",1),X(c("select",{"onUpdate:modelValue":f[2]||(f[2]=v=>l.value=v)},[(p(!0),d(E,null,K(u.value,v=>(p(),d("option",{key:v,value:v},_(v),9,so))),128))],512),[[$t,l.value,void 0,{trim:!0}]]),c("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:T,value:r(t)("restore now")},null,8,oo)])):P("",!0)])])])]))}};var ro=C(ao,[["__scopeId","data-v-67b754ac"]]);const co={class:"cbi-map"},io={class:"cbi-section"},lo={class:"panel-title"},uo={class:"cbi-section"},po={class:"panel-title"},_o={key:0,class:"cbi-section"},ho={class:"panel-title"},vo={class:"cbi-tabmenu"},fo={onclick:"false",href:"#"},mo={onclick:"false",href:"#"},go={setup(n){const{$gettext:t}=O(),e=x(2);return(o,s)=>(p(),d("div",co,[c("fieldset",io,[c("span",lo,_(r(t)("upgrade"))+" iStore",1),B(xs)]),c("fieldset",uo,[c("span",po,_(r(t)("config"))+" iStore",1),B(Ts)]),r(rt)("backup")?(p(),d("fieldset",_o,[c("span",ho,_(r(t)("app backup")),1),c("ul",vo,[c("li",{class:q(e.value==2?"cbi-tab":"cbi-tab-disabled"),onClick:s[0]||(s[0]=a=>e.value=2)},[c("a",fo,_(r(t)("light backup")),1)],2),c("li",{class:q(e.value==3?"cbi-tab":"cbi-tab-disabled"),onClick:s[1]||(s[1]=a=>e.value=3)},[c("a",mo,_(r(t)("local backup")),1)],2)]),e.value==2?(p(),Q(Us,{key:0})):P("",!0),e.value==3?(p(),Q(ro,{key:1})):P("",!0)])):P("",!0)]))}},wo=zt({history:Ut(L.BasePage()),routes:[{path:"/",redirect:"/installed"},{path:"/installed",name:"Installed",component:Mn},{path:"/store",name:"Store",component:ss},{path:"/upload",name:"Upload",component:ds},{path:"/webapps",name:"Webapps",component:ms},{path:"/maintance",name:"Maintance",component:go},{path:"/:pathMatch(.*)*",name:"notfound",redirect:"/"}]});var ko={namespaced:!0,state:{Load:!1,LocalApps:[],StoreApps:[],Expand:{},Cur:{tag:"default",sort:"default",search:"",limit:30,offset:0,hide_docker:window.istore_config.hide_docker||!1},LocalAppsMap:{},StoreAppsMap:{}},mutations:{setExpand(n,t){n.Expand=t},setLocalApps(n,t){t=t||[],n.LocalAppsMap={},t.forEach(s=>{n.LocalAppsMap[s.name]=s});const e=[],o=JSON.parse(window.localStorage&&window.localStorage.getItem("istore.tops")||"[]");o.forEach(s=>{const a=n.LocalAppsMap[s];a&&e.push(a)}),t.sort((s,a)=>a.time-s.time),t.forEach(s=>{o.indexOf(s.name)==-1&&e.push(s)}),n.LocalApps=e},setStoreApps(n,t){n.StoreApps=t||[],t.forEach(e=>{n.StoreAppsMap[e.name]=e})},setCur(n,t){for(const e in t)Object.hasOwnProperty.call(t,e)&&(n.Cur[e]=t[e])}},getters:{Cur(n){return n.Cur},LocalApps(n){let t=[...n.LocalApps],e=n.Expand;for(let o=0;o((a==null?void 0:a.depends)||[]).indexOf("luci-js-deps")==-1));let e=n.Expand;for(let a=0;a((a==null?void 0:a.depends)||[]).indexOf("docker-deps")==-1));let o=n.Cur.tag;o!="default"&&(t=t.filter(a=>((a==null?void 0:a.tags)||[]).indexOf(o)!=-1));let s=n.Cur.search;switch(s&&(t=t.filter(a=>{let i=JSON.stringify(a);return new RegExp(s,"i").test(i)})),n.Cur.sort){case"download":t=t.sort((a,i)=>{var u,l;return(((u=i==null?void 0:i.expand)==null?void 0:u.downloadCount)||0)-(((l=a==null?void 0:a.expand)==null?void 0:l.downloadCount)||0)});break;case"star":t=t.sort((a,i)=>{var u,l;return(((u=i==null?void 0:i.expand)==null?void 0:u.starCount)||0)-(((l=a==null?void 0:a.expand)==null?void 0:l.starCount)||0)});break;case"updateDate":t=t.sort((a,i)=>i.time-a.time);break}return t}},actions:{incrAppDownload(n,t){const{state:e}=n;e.Expand[t==null?void 0:t.name]&&e.Expand[t==null?void 0:t.name].downloadCount++},incrAppStar(n,t){const{state:e}=n;e!=null&&e.Expand[t==null?void 0:t.name]&&(e.Expand[t==null?void 0:t.name].starCount++,e.Expand[t==null?void 0:t.name].isStar=!0)},filterCurApps(n,t){const{commit:e,dispatch:o}=n;e("setCur",t)},getApps(n){const{state:t,dispatch:e}=n;e("getLocalApps"),e("getStoreApps",t.Cur)},getLocalApps(n){const{commit:t}=n;b.getInstalledApp().then(e=>{e.forEach(o=>{o.installed=!0}),t("setLocalApps",e)})},getStoreApps(n,t){const{state:e,commit:o,dispatch:s}=n,a={deviceId:L.getDeviceId(),arch:L.modelArch(),ver:L.getVersion(),feature:L.getFeatures().join(",")};let i=[];b.postStoreAppList(t,a).then(u=>{u.apps&&(u.apps.forEach(l=>{i.push(l.name)}),s("getStoreAppsExpand",i),o("setStoreApps",u.apps)),e.Load=!0}).catch(u=>{console.log(u)})},getStoreAppsExpand(n,t){const{commit:e}=n;b.getAppExpandData(t).then(o=>{o&&e("setExpand",o)})},stickTop(n,t){if(!window.localStorage)return;const e=JSON.parse(window.localStorage.getItem("istore.tops")||"[]");if(e.length>0&&e[0]==t)return;const o=[t];e.forEach(i=>{i!=t&&o.push(i)}),window.localStorage.setItem("istore.tops",JSON.stringify(o));const{state:s,commit:a}=n;a("setLocalApps",s.LocalApps)}}},$o={namespaced:!0,state:{Tags:[],Total:0},mutations:{},getters:{Tags(n){return n.Tags},Total(n){return n.Total}},actions:{getTags(n){const{state:t,commit:e}=n;b.getStoreTags().then(o=>{t.Tags=(o==null?void 0:o.tags)||[],t.Total=(o==null?void 0:o.total)||0})}}},bo=Rt({state:{version:"",versionLoad:!1},mutations:{setVersion(n,t){n.version=t},setVersionLoad(n,t){n.versionLoad=t}},modules:{apps:ko,tags:$o},actions:{getData(n){const{dispatch:t}=n;t("tags/getTags"),t("apps/getApps"),t("getVersion")},getVersion(n){return k(this,null,function*(){const{commit:t}=n;try{const e=yield b.updateIstore(),{code:o,msg:s}=e==null?void 0:e.data;o==200&&t("setVersion",s)}catch(e){console.log(e)}t("setVersionLoad",!0)})},istoreUpdated(n){const{commit:t}=n;t("setVersion","")}}});const yo={},xo={width:"16px",height:"16px",viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},Co=c("path",{d:"M14.9234958,14.5525054 L10.84453,10.4679606 C11.8849284,9.46327833 12.5294813,8.07823887 12.5294813,6.55073066 C12.5294813,3.48989918 9.94358337,1 6.76474066,1 C3.58589795,1 1,3.48989918 1,6.55073066 C1,9.61156213 3.58589795,12.1014613 6.76474066,12.1014613 C8.16008242,12.1014613 9.44067838,11.621191 10.438802,10.8242646 L14.5276502,14.9188536 C14.5814545,14.9730393 14.6533765,15 14.725573,15 C14.7942009,15 14.8625542,14.9754182 14.9158095,14.9262546 C15.025065,14.8250198 15.0283592,14.6577049 14.9234958,14.5525054 Z M6.76474066,11.5728203 C3.8886841,11.5728203 1.54902292,9.32001661 1.54902292,6.55073066 C1.54902292,3.7814447 3.8886841,1.52864101 6.76474066,1.52864101 C9.64079723,1.52864101 11.9804584,3.7814447 11.9804584,6.55073066 C11.9804584,9.32001661 9.64052272,11.5728203 6.76474066,11.5728203 Z",id:"Shape",stroke:"#FFFFFF","stroke-width":"1.3"},null,-1),So=[Co];function Ao(n,t,e,o,s,a){return p(),d("svg",xo,So)}var Lo=C(yo,[["render",Ao]]);const To={},Io={width:"12px",height:"12px",viewBox:"0 0 12 12",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},Po=c("path",{d:"M10.171916,3.81818329 C10.6519813,3.81274681 11.1102149,4.01840688 11.4252438,4.38069009 C11.7402726,4.74297329 11.8803105,5.2253253 11.8081406,5.70080197 L11.0555552,10.608963 C10.9332063,11.4157454 10.2351606,12.0090843 9.42537185,12 L3.27269856,12 C2.97145497,12 2.7272488,11.7556885 2.7272488,11.454445 L2.7272488,5.4544976 C2.7272488,5.37817917 2.74326442,5.30271013 2.77426027,5.23296947 L4.95605931,0.323921631 C5.04360472,0.126944443 5.23894201,0 5.4544976,0 C6.65947193,0 7.63629663,0.976824702 7.63629663,2.18179904 L7.63629663,3.81815451 L10.171916,3.81818329 Z M3.81814832,10.9090654 L9.43153778,10.9090654 C9.70352269,10.9121048 9.93620458,10.7143252 9.97712277,10.4445109 L10.7297188,5.53628009 C10.7537339,5.3780602 10.7070546,5.2172762 10.602045,5.09651513 C10.4970353,4.97575406 10.3442908,4.9072007 10.1780925,4.90904784 L7.09084687,4.90904784 C6.78960329,4.90904784 6.54539711,4.66484166 6.54539711,4.36359808 L6.54539711,2.18179904 C6.54539711,1.69494967 6.22647822,1.2825878 5.78615711,1.14223013 L3.81814832,5.57024992 L3.81814832,10.9090654 Z M2.7272488,5.99994736 L1.63634928,5.99994736 C1.33510569,5.99994736 1.09089952,6.24415353 1.09089952,6.54539711 L1.09089952,10.3635454 C1.09089952,10.664789 1.33510569,10.9089952 1.63634928,10.9089952 L2.7272488,10.9089952 L2.7272488,5.99994736 Z M3.27269856,11.9998947 L1.63634928,11.9998947 C0.732618527,11.9998947 -1.03028697e-13,11.2672762 -1.03028697e-13,10.3635454 L-1.03028697e-13,6.54539711 C-1.03028697e-13,5.64166636 0.732618527,4.90904784 1.63634928,4.90904784 L3.27269856,4.90904784 C3.57394214,4.90904784 3.81814832,5.15325401 3.81814832,5.4544976 L3.81814832,11.454445 C3.81814832,11.7556885 3.57394214,11.9998947 3.27269856,11.9998947 Z",id:"Shape",fill:"#FFFFFF","fill-rule":"nonzero"},null,-1),Do=[Po];function Eo(n,t,e,o,s,a){return p(),d("svg",Io,Do)}var Bo=C(To,[["render",Eo]]);const Mo={},Oo={width:"12px",height:"12px",viewBox:"0 0 12 12",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},Fo=c("path",{d:"M10.171916,3.81818329 C10.6519813,3.81274681 11.1102149,4.01840688 11.4252438,4.38069009 C11.7402726,4.74297329 11.8803105,5.2253253 11.8081406,5.70080197 L11.0555552,10.608963 C10.9332063,11.4157454 10.2351606,12.0090843 9.42537185,12 L3.27269856,12 C2.97145497,12 2.7272488,11.7556885 2.7272488,11.454445 L2.7272488,5.4544976 C2.7272488,5.37817917 2.74326442,5.30271013 2.77426027,5.23296947 L4.95605931,0.323921631 C5.04360472,0.126944443 5.23894201,0 5.4544976,0 C6.65947193,0 7.63629663,0.976824702 7.63629663,2.18179904 L7.63629663,3.81815451 L10.171916,3.81818329 Z M3.27269856,11.9998947 L1.63634928,11.9998947 C0.732618527,11.9998947 0,11.2672762 0,10.3635454 L0,6.54539711 C0,5.64166636 0.732618527,4.90904784 1.63634928,4.90904784 L3.27269856,4.90904784 C3.57394214,4.90904784 3.81814832,5.15325401 3.81814832,5.4544976 L3.81814832,11.454445 C3.81814832,11.7556885 3.57394214,11.9998947 3.27269856,11.9998947 Z",id:"Shape",fill:"#FFE45A","fill-rule":"nonzero"},null,-1),Vo=[Fo];function zo(n,t,e,o,s,a){return p(),d("svg",Oo,Vo)}var Uo=C(Mo,[["render",zo]]);const Ro={},Go={viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",width:"20",height:"20"},Ho=c("title",null,"Docker",-1),Ko=c("path",{fill:"currentColor",d:"M560.86064 480h-105.6v-94.4H560.86064V480z m0-326.4h-105.6v97.6H560.86064V153.6z m124.8 232h-105.6V480h105.6v-94.4z m-249.6-115.2h-105.6v96h105.6v-96z m124.8 0h-105.6v96H560.86064v-96z m443.2 160c-22.4-16-76.8-20.8-116.8-12.8-4.8-38.4-27.2-72-65.6-102.4l-22.4-14.4-14.4 22.4c-28.8 44.8-36.8 118.4-6.4 166.4-14.4 8-41.6 17.6-76.8 17.6H4.06064c-14.4 81.6 9.6 187.2 70.4 259.2 59.2 70.4 148.8 105.6 264 105.6 251.2 0 438.4-115.2 524.8-326.4 33.6 0 108.8 0 145.6-72 1.6-3.2 11.2-20.8 12.8-27.2l-17.6-16z m-817.6-44.8H80.86064V480h105.6v-94.4z m124.8 0h-105.6V480h105.6v-94.4z m124.8 0h-105.6V480h105.6v-94.4z m-124.8-115.2h-105.6v96h105.6v-96z"},null,-1),No=[Ho,Ko];function Wo(n,t,e,o,s,a){return p(),d("svg",Go,No)}var Zo=C(Ro,[["render",Wo]]);const H=at(Qt);H.component("svg-search",Lo);H.component("svg-star-on",Bo);H.component("svg-star-off",Uo);H.component("svg-docker",Zo);const qo=()=>k(y,null,function*(){yield Ht(H),H.use(wo).use(bo),H.mount("#app")});qo()});export default Jo(); diff --git a/app-store-ui/src/dist/luci-static/istore/style.css b/app-store-ui/src/dist/luci-static/istore/style.css index 859e890..3f08261 100644 --- a/app-store-ui/src/dist/luci-static/istore/style.css +++ b/app-store-ui/src/dist/luci-static/istore/style.css @@ -1 +1 @@ -#app *[data-v-13251538]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}li[data-v-13251538]{position:relative}li span[data-v-13251538]{position:absolute;top:5px;right:5px;padding:3px;background-color:#fd1919;border-radius:50%}#app *[data-v-b05f92bc]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.toast[data-v-b05f92bc]{position:fixed;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;justify-content:space-around;box-sizing:content-box;width:150px;max-width:70%;min-height:30px;padding:10px;color:#fff;font-size:14px;text-align:center;background-color:#000000b3;border-radius:8px;transform:translate3d(-50%,-50%,0);z-index:9999}.toast .toast-close[data-v-b05f92bc]{cursor:pointer;padding-bottom:36px;right:-61px;position:relative;font-size:20px}#app *[data-v-6d7664a4]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}@keyframes load-6d7664a4{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.loading[data-v-6d7664a4]{position:fixed;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;justify-content:space-around;box-sizing:content-box;max-width:150px;padding:16px;color:#fff;font-size:14px;text-align:center;background-color:#000000b3;border-radius:8px;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);z-index:999999}.loading .icon[data-v-6d7664a4]{width:35px;height:35px;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;animation:load-6d7664a4 1s linear infinite}.loading .msg[data-v-6d7664a4]{margin-top:10px;color:#fff}#app *[data-v-62f0600f]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.app-container[data-v-62f0600f]{padding:15px;background:#88888822;border-radius:.375rem;overflow:hidden;margin:10px;position:relative}.app-container .app-info[data-v-62f0600f]{display:flex;flex-wrap:wrap;width:100%;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed #999}.app-container .app-info .app-f[data-v-62f0600f]{flex:0 0 100%;max-width:150px}.app-container .app-info .app-f .app-icon[data-v-62f0600f]{width:100px;height:100px;margin:0 auto;position:relative}.app-container .app-info .app-f .app-icon img[data-v-62f0600f]{width:100%;height:100%;object-fit:contain}.app-container .app-info .app-f .app-icon .docker-icon-i[data-v-62f0600f]{position:absolute;right:5px;top:5px}.app-container .app-info .app-f .app-icon .docker-icon[data-v-62f0600f]{position:absolute;width:30px;height:30px;left:-15px;top:-15px;color:#fff;background-color:#2496ed;border-radius:50%;padding:5px}.app-container .app-info .app-f .app-tags[data-v-62f0600f]{width:100%;display:flex;align-items:center;padding:0 25px}.app-container .app-info .app-f .app-tags .tag[data-v-62f0600f]{font-family:PingFangSC-Medium,PingFang SC;font-weight:500;line-height:12px;font-size:.8125rem;white-space:nowrap;padding:.5rem}.app-container .app-info .app-f .app-tags .block[data-v-62f0600f]{font-size:12px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;margin:0 2px}.app-container .app-info .app-f .app-tags .block[data-v-62f0600f]:last-child{display:none}.app-container .app-info .app-r[data-v-62f0600f]{flex:0 0 100%;max-width:calc(100% - 150px);padding:0 15px}.app-container .app-info .app-r .app-title[data-v-62f0600f]{width:100%;margin-bottom:10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:26px;padding-top:12px}.app-container .app-info .app-r .app-title .app-version[data-v-62f0600f]{margin-left:10px;font-size:.8125rem}.app-container .app-info .app-r .app-as[data-v-62f0600f]{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-bottom:10px}.app-container .app-info .app-r .app-as .star-btn[data-v-62f0600f]{padding:0;margin:0 0 0 10px;width:30px;border:none!important;cursor:pointer;background:none;box-shadow:none}.app-container .app-info .app-r .app-as .star-btn[data-v-62f0600f] svg path{fill:currentColor}.app-container .app-info .app-r .app-as .star-btn[data-v-62f0600f]:hover svg path{filter:invert(.6)}.app-container .app-info .app-r .app-description[data-v-62f0600f]{font-size:12px;height:36px;line-height:18px;margin-bottom:10px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;padding:0}.app-container .app-info .app-r .app-description span[data-v-62f0600f]{-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;display:-webkit-box}.app-container .app-info .app-r .app-author[data-v-62f0600f],.app-container .app-info .app-r .app-date[data-v-62f0600f]{width:100%;height:20px;line-height:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.app-container .app-btns[data-v-62f0600f]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end}.app-container .app-btns .auto[data-v-62f0600f]{flex:auto}.app-container .app-btns .app-margin-left[data-v-62f0600f]{margin:0 5px}.app-container .app-btns .app-btn[data-v-62f0600f]{padding-top:5px;padding-bottom:5px;text-decoration:none}.app-container .fav-icon-i[data-v-62f0600f]{user-select:none;position:absolute;top:10px;right:10px;cursor:pointer;display:none;font-family:none;font-style:normal;line-height:1;font-size:24px}.app-list-installed .app-container:hover .fav-icon-i[data-v-62f0600f]{display:initial}@media (hover: none){.app-list-installed .app-container .fav-icon-i[data-v-62f0600f]{display:initial}}@media screen and (max-width: 420px){.app-container .app-btns .app-margin-left[data-v-62f0600f]{margin:0 3px}}#app *[data-v-0708f588]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.containers[data-v-0708f588]{width:100%;height:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(475px,1fr))}@media screen and (max-width: 1242px){.containers[data-v-0708f588]{grid-template-columns:1fr 1fr}}@media screen and (max-width: 900px){.containers[data-v-0708f588]{grid-template-columns:1fr}}#app *[data-v-bb2340b4]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.cbi-section[data-v-bb2340b4]{padding:15px}#app *[data-v-9f592bc6]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.sort-container[data-v-9f592bc6]{display:flex;flex-wrap:wrap;align-items:flex-start;margin-bottom:10px}.sort-container .sort-title[data-v-9f592bc6]{width:50px;height:28px;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;line-height:28px}.sort-container .sort-value[data-v-9f592bc6]{display:flex;flex-wrap:wrap;flex:0 0 100%;max-width:calc(100% - 50px)}.sort-container .sort-value .cbi-button[data-v-9f592bc6]{margin-right:5px}#app *[data-v-07bccc36]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.tags-container[data-v-07bccc36]{display:flex;flex-wrap:wrap;align-items:flex-start;margin-bottom:10px}.tags-container .tags-title[data-v-07bccc36]{width:50px;height:28px;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;line-height:28px}.tags-container .tags-value[data-v-07bccc36]{display:flex;flex-wrap:wrap;flex:0 0 100%;max-width:calc(100% - 50px)}.tags-container .tags-value .cbi-button[data-v-07bccc36]{margin-right:5px}#app *[data-v-c4e8a9f2]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}form.search[data-v-c4e8a9f2]{width:100%;display:flex;flex-wrap:wrap;align-items:center;margin-bottom:10px;position:relative}form.search input[data-v-c4e8a9f2]{width:100%;height:36px;border-radius:19px;padding:0 40px}form.search .search-btn[data-v-c4e8a9f2]{position:absolute;left:20px;border:none!important;box-shadow:none!important;background:none!important;cursor:pointer;z-index:10;display:flex;flex-wrap:wrap;align-items:center;width:30px;padding:0;margin:0}form.search .search-btn[data-v-c4e8a9f2] svg path{stroke:currentColor}#app *[data-v-74b0669f]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.cbi-section[data-v-74b0669f]{padding:15px}.cbi-section[data-v-74b0669f] .cbi-value{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:10px}#app *[data-v-0b0723c2]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.cbi-section[data-v-0b0723c2]{padding:15px}.cbi-section .container_msg span[data-v-0b0723c2]{display:block;width:100%;margin-bottom:5px}.cbi-section form[data-v-0b0723c2]{width:100%;margin:30px 0}.cbi-section form .flex[data-v-0b0723c2]{width:100%;display:flex;flex-wrap:wrap;align-items:center}.cbi-section form .flex label.upload-file[data-v-0b0723c2]{width:100%;height:54px;background:linear-gradient(144deg,#009aff 0%,#0060ff 100%);border-radius:12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:0 20px;cursor:pointer}.cbi-section form .flex label.upload-file span[data-v-0b0723c2]{font-size:12px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;color:#fff;line-height:22px}.cbi-section form .flex label.upload-file .button[data-v-0b0723c2]{min-width:116px;padding:0 10px;height:38px;background:rgba(255,255,255,.2);border-radius:6px;font-size:12px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;color:#fff;display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.cbi-section form .flex label.upload-file input[data-v-0b0723c2]{visibility:hidden}.cbi-section form .flex label.upload-file[data-v-0b0723c2]:hover{opacity:.9}.cbi-section form button.upload-button[data-v-0b0723c2]{width:118px;height:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(144deg,#009aff 0%,#0060ff 100%);border-radius:10px;font-size:14px;font-family:PingFangSC-Semibold,PingFang SC;font-weight:600;color:#fff}.cbi-section form button.upload-button[data-v-0b0723c2]:hover{opacity:.9}#app *[data-v-8e330954]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.cbi-section[data-v-8e330954]{width:100%;min-height:400px;display:block;background:rgba(0,0,0,.9)}.cbi-section .webapp-container[data-v-8e330954]{width:100%;height:100%;min-height:inherit}.cbi-section .webapp-container iframe[data-v-8e330954]{width:100%;height:100%;min-height:inherit;border:none}#app *[data-v-8ac6e0ca]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.log-containers[data-v-8ac6e0ca]{display:flex;flex-wrap:wrap}.log-containers .model[data-v-8ac6e0ca]{width:100%;flex:0 0 100%;display:block;margin-left:18px;margin-top:18px}.log-containers .containers-tit[data-v-8ac6e0ca]{margin:1rem 0;display:flex;align-items:center;align-content:center;padding-left:16px}.log-containers .containers-tit .app-btn[data-v-8ac6e0ca]{margin-left:3rem}em[data-v-8ac6e0ca]{width:100%;display:block;border-bottom:1px solid #eee;margin:1rem 0}#app *[data-v-a4c06ae8]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.Lightweight[data-v-a4c06ae8]{margin-top:20px;margin-left:18px}.Lightweight .Lightweight-container .model[data-v-a4c06ae8]{margin-bottom:10px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-tit[data-v-a4c06ae8]{margin-bottom:20px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-tit span[data-v-a4c06ae8]{display:block;line-height:24px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-backup[data-v-a4c06ae8]{display:flex}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-backup .app-btn[data-v-a4c06ae8]{margin-left:14px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .upload-file[data-v-a4c06ae8]{color:#000}input[hidden][data-v-a4c06ae8]{display:none!important}#app *[data-v-67b754ac]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.local[data-v-67b754ac]{margin-top:20px}.local .local-container[data-v-67b754ac]{margin-left:18px}.local .local-container .model[data-v-67b754ac]{margin-bottom:10px}.local .local-container .local-container1[data-v-67b754ac]{width:800px;height:400px}.local .local-container .local-container1 .container1-center[data-v-67b754ac]{text-align:left}.local .local-container .local-container1 .container1-center .local-tit span[data-v-67b754ac]{display:block;line-height:24px}.local .local-container .local-container1 .container1-center .local-device[data-v-67b754ac]{margin-top:20px;margin-bottom:10px}.local .local-container .local-container1 .container1-center .local-input[data-v-67b754ac]{display:flex;align-items:center}.local .local-container .local-container1 .container1-center .local-input .app-btn[data-v-67b754ac]{margin-left:14px}.local .local-container .local-container1 .container1-center .local-input .local-input-field[data-v-67b754ac]{width:20rem}.local .local-container .local-container1 .container1-center .list[data-v-67b754ac]{margin-top:20px;margin-bottom:10px}.local .local-container .local-container1 .container1-center .select[data-v-67b754ac]{flex:0 0 100%;max-width:100%} +#app *[data-v-13251538]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}li[data-v-13251538]{position:relative}li span[data-v-13251538]{position:absolute;top:5px;right:5px;padding:3px;background-color:#fd1919;border-radius:50%}#app *[data-v-b05f92bc]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.toast[data-v-b05f92bc]{position:fixed;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;justify-content:space-around;box-sizing:content-box;width:150px;max-width:70%;min-height:30px;padding:10px;color:#fff;font-size:14px;text-align:center;background-color:#000000b3;border-radius:8px;transform:translate3d(-50%,-50%,0);z-index:9999}.toast .toast-close[data-v-b05f92bc]{cursor:pointer;padding-bottom:36px;right:-61px;position:relative;font-size:20px}#app *[data-v-6d7664a4]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}@keyframes load-6d7664a4{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.loading[data-v-6d7664a4]{position:fixed;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;justify-content:space-around;box-sizing:content-box;max-width:150px;padding:16px;color:#fff;font-size:14px;text-align:center;background-color:#000000b3;border-radius:8px;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);z-index:999999}.loading .icon[data-v-6d7664a4]{width:35px;height:35px;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;animation:load-6d7664a4 1s linear infinite}.loading .msg[data-v-6d7664a4]{margin-top:10px;color:#fff}#app *[data-v-62f0600f]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.app-container[data-v-62f0600f]{padding:15px;background:#88888822;border-radius:.375rem;overflow:hidden;margin:10px;position:relative}.app-container .app-info[data-v-62f0600f]{display:flex;flex-wrap:wrap;width:100%;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed #999}.app-container .app-info .app-f[data-v-62f0600f]{flex:0 0 100%;max-width:150px}.app-container .app-info .app-f .app-icon[data-v-62f0600f]{width:100px;height:100px;margin:0 auto;position:relative}.app-container .app-info .app-f .app-icon img[data-v-62f0600f]{width:100%;height:100%;object-fit:contain}.app-container .app-info .app-f .app-icon .docker-icon-i[data-v-62f0600f]{position:absolute;right:5px;top:5px}.app-container .app-info .app-f .app-icon .docker-icon[data-v-62f0600f]{position:absolute;width:30px;height:30px;left:-15px;top:-15px;color:#fff;background-color:#2496ed;border-radius:50%;padding:5px}.app-container .app-info .app-f .app-tags[data-v-62f0600f]{width:100%;display:flex;align-items:center;padding:0 25px}.app-container .app-info .app-f .app-tags .tag[data-v-62f0600f]{font-family:PingFangSC-Medium,PingFang SC;font-weight:500;line-height:12px;font-size:.8125rem;white-space:nowrap;padding:.5rem}.app-container .app-info .app-f .app-tags .block[data-v-62f0600f]{font-size:12px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;margin:0 2px}.app-container .app-info .app-f .app-tags .block[data-v-62f0600f]:last-child{display:none}.app-container .app-info .app-r[data-v-62f0600f]{flex:0 0 100%;max-width:calc(100% - 150px);padding:0 15px}.app-container .app-info .app-r .app-title[data-v-62f0600f]{width:100%;margin-bottom:10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:26px;padding-top:12px}.app-container .app-info .app-r .app-title .app-version[data-v-62f0600f]{margin-left:10px;font-size:.8125rem}.app-container .app-info .app-r .app-as[data-v-62f0600f]{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-bottom:10px}.app-container .app-info .app-r .app-as .star-btn[data-v-62f0600f]{padding:0;margin:0 0 0 10px;width:30px;border:none!important;cursor:pointer;background:none;box-shadow:none}.app-container .app-info .app-r .app-as .star-btn[data-v-62f0600f] svg path{fill:currentColor}.app-container .app-info .app-r .app-as .star-btn[data-v-62f0600f]:hover svg path{filter:invert(.6)}.app-container .app-info .app-r .app-description[data-v-62f0600f]{font-size:12px;height:36px;line-height:18px;margin-bottom:10px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;padding:0}.app-container .app-info .app-r .app-description span[data-v-62f0600f]{-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;display:-webkit-box}.app-container .app-info .app-r .app-author[data-v-62f0600f],.app-container .app-info .app-r .app-date[data-v-62f0600f]{width:100%;height:20px;line-height:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.app-container .app-btns[data-v-62f0600f]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end}.app-container .app-btns .auto[data-v-62f0600f]{flex:auto}.app-container .app-btns .app-margin-left[data-v-62f0600f]{margin:0 5px}.app-container .app-btns .app-btn[data-v-62f0600f]{padding-top:5px;padding-bottom:5px;text-decoration:none}.app-container .fav-icon-i[data-v-62f0600f]{user-select:none;position:absolute;top:10px;right:10px;cursor:pointer;display:none;font-family:none;font-style:normal;line-height:1;font-size:24px}.app-list-installed .app-container:hover .fav-icon-i[data-v-62f0600f]{display:initial}@media (hover: none){.app-list-installed .app-container .fav-icon-i[data-v-62f0600f]{display:initial}}@media screen and (max-width: 420px){.app-container .app-btns .app-margin-left[data-v-62f0600f]{margin:0 3px}}#app *[data-v-0708f588]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.containers[data-v-0708f588]{width:100%;height:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(475px,1fr))}@media screen and (max-width: 1242px){.containers[data-v-0708f588]{grid-template-columns:1fr 1fr}}@media screen and (max-width: 900px){.containers[data-v-0708f588]{grid-template-columns:1fr}}#app *[data-v-bb2340b4]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.cbi-section[data-v-bb2340b4]{padding:15px}#app *[data-v-9f592bc6]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.sort-container[data-v-9f592bc6]{display:flex;flex-wrap:wrap;align-items:flex-start;margin-bottom:10px}.sort-container .sort-title[data-v-9f592bc6]{width:50px;height:28px;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;line-height:28px}.sort-container .sort-value[data-v-9f592bc6]{display:flex;flex-wrap:wrap;flex:0 0 100%;max-width:calc(100% - 50px)}.sort-container .sort-value .cbi-button[data-v-9f592bc6]{margin-right:5px}#app *[data-v-07bccc36]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.tags-container[data-v-07bccc36]{display:flex;flex-wrap:wrap;align-items:flex-start;margin-bottom:10px}.tags-container .tags-title[data-v-07bccc36]{width:50px;height:28px;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;line-height:28px}.tags-container .tags-value[data-v-07bccc36]{display:flex;flex-wrap:wrap;flex:0 0 100%;max-width:calc(100% - 50px)}.tags-container .tags-value .cbi-button[data-v-07bccc36]{margin-right:5px}#app *[data-v-c4e8a9f2]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}form.search[data-v-c4e8a9f2]{width:100%;display:flex;flex-wrap:wrap;align-items:center;margin-bottom:10px;position:relative}form.search input[data-v-c4e8a9f2]{width:100%;height:36px;border-radius:19px;padding:0 40px}form.search .search-btn[data-v-c4e8a9f2]{position:absolute;left:20px;border:none!important;box-shadow:none!important;background:none!important;cursor:pointer;z-index:10;display:flex;flex-wrap:wrap;align-items:center;width:30px;padding:0;margin:0}form.search .search-btn[data-v-c4e8a9f2] svg path{stroke:currentColor}#app *[data-v-74b0669f]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.cbi-section[data-v-74b0669f]{padding:15px}.cbi-section[data-v-74b0669f] .cbi-value{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:10px}#app *[data-v-0b0723c2]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.cbi-section[data-v-0b0723c2]{padding:15px}.cbi-section .container_msg span[data-v-0b0723c2]{display:block;width:100%;margin-bottom:5px}.cbi-section form[data-v-0b0723c2]{width:100%;margin:30px 0}.cbi-section form .flex[data-v-0b0723c2]{width:100%;display:flex;flex-wrap:wrap;align-items:center}.cbi-section form .flex label.upload-file[data-v-0b0723c2]{width:100%;height:54px;background:linear-gradient(144deg,#009aff 0%,#0060ff 100%);border-radius:12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:0 20px;cursor:pointer}.cbi-section form .flex label.upload-file span[data-v-0b0723c2]{font-size:12px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;color:#fff;line-height:22px}.cbi-section form .flex label.upload-file .button[data-v-0b0723c2]{min-width:116px;padding:0 10px;height:38px;background:rgba(255,255,255,.2);border-radius:6px;font-size:12px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;color:#fff;display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.cbi-section form .flex label.upload-file input[data-v-0b0723c2]{visibility:hidden}.cbi-section form .flex label.upload-file[data-v-0b0723c2]:hover{opacity:.9}.cbi-section form button.upload-button[data-v-0b0723c2]{width:118px;height:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(144deg,#009aff 0%,#0060ff 100%);border-radius:10px;font-size:14px;font-family:PingFangSC-Semibold,PingFang SC;font-weight:600;color:#fff}.cbi-section form button.upload-button[data-v-0b0723c2]:hover{opacity:.9}#app *[data-v-8e330954]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.cbi-section[data-v-8e330954]{width:100%;min-height:400px;display:block;background:rgba(0,0,0,.9)}.cbi-section .webapp-container[data-v-8e330954]{width:100%;height:100%;min-height:inherit}.cbi-section .webapp-container iframe[data-v-8e330954]{width:100%;height:100%;min-height:inherit;border:none}#app *[data-v-8ac6e0ca]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.log-containers[data-v-8ac6e0ca]{display:flex;flex-wrap:wrap}.log-containers .model[data-v-8ac6e0ca]{width:100%;flex:0 0 100%;display:block;margin-left:18px;margin-top:18px}.log-containers .containers-tit[data-v-8ac6e0ca]{margin:1rem 0;display:flex;align-items:center;align-content:center;padding-left:16px}.log-containers .containers-tit .app-btn[data-v-8ac6e0ca]{margin-left:3rem}em[data-v-8ac6e0ca]{width:100%;display:block;border-bottom:1px solid #eee;margin:1rem 0}#app *[data-v-0a9c0f22]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.log-containers[data-v-0a9c0f22]{display:flex;flex-wrap:wrap}.log-containers .containers-tit[data-v-0a9c0f22]{margin:1rem 0;display:flex;align-items:center;align-content:center;padding-left:16px}em[data-v-0a9c0f22]{width:100%;display:block;border-bottom:1px solid #eee;margin:1rem 0}#app *[data-v-a4c06ae8]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.Lightweight[data-v-a4c06ae8]{margin-top:20px;margin-left:18px}.Lightweight .Lightweight-container .model[data-v-a4c06ae8]{margin-bottom:10px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-tit[data-v-a4c06ae8]{margin-bottom:20px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-tit span[data-v-a4c06ae8]{display:block;line-height:24px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-backup[data-v-a4c06ae8]{display:flex}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-backup .app-btn[data-v-a4c06ae8]{margin-left:14px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .upload-file[data-v-a4c06ae8]{color:#000}input[hidden][data-v-a4c06ae8]{display:none!important}#app *[data-v-67b754ac]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.local[data-v-67b754ac]{margin-top:20px}.local .local-container[data-v-67b754ac]{margin-left:18px}.local .local-container .model[data-v-67b754ac]{margin-bottom:10px}.local .local-container .local-container1[data-v-67b754ac]{width:800px;height:400px}.local .local-container .local-container1 .container1-center[data-v-67b754ac]{text-align:left}.local .local-container .local-container1 .container1-center .local-tit span[data-v-67b754ac]{display:block;line-height:24px}.local .local-container .local-container1 .container1-center .local-device[data-v-67b754ac]{margin-top:20px;margin-bottom:10px}.local .local-container .local-container1 .container1-center .local-input[data-v-67b754ac]{display:flex;align-items:center}.local .local-container .local-container1 .container1-center .local-input .app-btn[data-v-67b754ac]{margin-left:14px}.local .local-container .local-container1 .container1-center .local-input .local-input-field[data-v-67b754ac]{width:20rem}.local .local-container .local-container1 .container1-center .list[data-v-67b754ac]{margin-top:20px;margin-bottom:10px}.local .local-container .local-container1 .container1-center .select[data-v-67b754ac]{flex:0 0 100%;max-width:100%}