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 88a91c94e..a4a097db3 100644
--- a/app-store-ui/src/dist/luci-static/istore/index.js
+++ b/app-store-ui/src/dist/luci-static/istore/index.js
@@ -1,4 +1,4 @@
-var Et=Object.defineProperty,It=Object.defineProperties;var Dt=Object.getOwnPropertyDescriptors;var bt=Object.getOwnPropertySymbols;var Pt=Object.prototype.hasOwnProperty,Bt=Object.prototype.propertyIsEnumerable;var $t=(e,t,n)=>t in e?Et(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Z=(e,t)=>{for(var n in t||(t={}))Pt.call(t,n)&&$t(e,n,t[n]);if(bt)for(var n of bt(t))Bt.call(t,n)&&$t(e,n,t[n]);return e},_t=(e,t)=>It(e,Dt(t));var Vt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var A=(e,t,n)=>new Promise((a,o)=>{var l=c=>{try{i(n.next(c))}catch(h){o(h)}},u=c=>{try{i(n.throw(c))}catch(h){o(h)}},i=c=>c.done?a(c.value):Promise.resolve(c.value).then(l,u);i((n=n.apply(e,t)).next())});import{a as ht,c as Ft,u as R,b as H,d as B,r as rt,o as d,e as _,F as U,f as K,g as X,w as Mt,h as r,p as lt,i as ct,j as s,t as g,k as z,n as j,l as zt,m as S,q as xt,s as Ut,v as N,x as gt,y as Ct,z as ut,A as St,B as Lt,C as Ot,D as yt,E as Rt,G as Nt,H as Gt}from"./vendor.js?v=64c6a109";var jo=Vt(I=>{const Ht=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))a(o);new MutationObserver(o=>{for(const l of o)if(l.type==="childList")for(const u of l.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&a(u)}).observe(document,{childList:!0,subtree:!0});function n(o){const l={};return o.integrity&&(l.integrity=o.integrity),o.referrerpolicy&&(l.referrerPolicy=o.referrerpolicy),o.crossorigin==="use-credentials"?l.credentials="include":o.crossorigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function a(o){if(o.ep)return;o.ep=!0;const l=n(o);fetch(o.href,l)}};Ht();const pt={tagMap:{},numberFormat:new Intl.NumberFormat("en",{notation:"compact"})},Kt=e=>A(I,null,function*(){const t=window.vue_lang;new Date().getTime();let n={};try{const l=yield ht({url:window.vue_lang_data,method:"GET"});l.data&&(n=l.data)}catch(l){console.log(l)}const a=Ft({defaultLanguage:t,translations:n,setGlobalProperties:!1,provideDirective:!1,provideComponent:!1});e.use(a);const{$gettext:o}=a;window.$i18n=o,pt.tagMap={net:o("net"),tool:o("tool"),download:o("download"),service:o("service"),multimedia:o("multimedia"),nas:o("nas"),monitor:o("monitor"),system:o("system"),networking:o("networking")};try{pt.numberFormat=new Intl.NumberFormat(t,{notation:"compact"})}catch(l){console.error("Intl.NumberFormat unsupported lang",t,l)}}),At=e=>pt.tagMap[e]||e,kt=e=>typeof e=="number"?pt.numberFormat.format(e):"?";var E=(e,t)=>{const n=e.__vccOpts||e;for(const[a,o]of t)n[a]=o;return n};const Wt=e=>(lt("data-v-13251538"),e=e(),ct(),e),qt={class:"tabs"},Zt=["href","onClick"],Yt={key:0},Jt=Wt(()=>s("div",{class:"auto"},null,-1)),Qt={setup(e){const{$gettext:t}=R(),n=H(),a=B(()=>n.state.version),o=B(()=>[{to:"/installed",name:t("installed")},{to:"/store",name:t("all app")},{to:"/upload",name:t("manual install")},{to:"/maintance",name:t("maintain"),up:a.value}]);return(l,u)=>{const i=rt("router-link");return d(),_("ul",qt,[(d(!0),_(U,null,K(r(o),c=>(d(),X(i,{to:c.to,custom:"",key:c.to},{default:Mt(({href:h,navigate:y,isActive:k})=>[s("li",{class:j(k&&"active cbi-tab")},[s("a",{href:h,onClick:y},g(c.name),9,Zt),c.up?(d(),_("span",Yt)):z("",!0)],2)]),_:2},1032,["to"]))),128)),Jt])}}};var Xt=E(Qt,[["__scopeId","data-v-13251538"]]);const jt=()=>window.vue_base,te=()=>window.istore_api_base||"https://istore.linkease.com",ee=e=>{if(e)return zt(e).format("YYYY-MM-DD HH:mm:ss")},ne=()=>new Date().getTime(),ae=e=>{if(e<1024)return""+e+"KB";let n=1024,a=0;for(let l=e/1024;l>=1024;l/=1024)n*=1024,a++;let o=["M","G","T","P","E"];return(e/100/(n/100)).toFixed(2)+o[a]},oe=e=>{if(e==null)return 0;if(e<1e4)return e;let n=parseInt(`${e/1e4}`),a=e%1e4;return`${n}\u4E07${a}`},se=()=>window.token||"",re=()=>{var e;return((e=window==null?void 0:window.device_id)==null?void 0:e.uid)||""},le=()=>{var e;return((e=window==null?void 0:window.device_id)==null?void 0:e.version)||""},ce=()=>{var e;return((e=window==null?void 0:window.device_id)==null?void 0:e.arch)||""},ie=()=>"https://www.kooldns.cn/bind";var ue=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",BasePage:jt,ApiBaseURL:te,formatDate:ee,UnixDate:ne,numberToSize:ae,numberToSum:oe,getToken:se,getDeviceId:re,getVersion:le,modelArch:ce,getIframeURL:ie}),O=Z({},ue);const D=ht.create({});D.interceptors.request.use(e=>(e.params==null&&(e.params={}),e.params=_t(Z({},e.params),{token:O.getToken(),_t:O.UnixDate()}),e),e=>e);D.interceptors.response.use(e=>e,e=>e);const Y=ht.create({baseURL:O.ApiBaseURL()});Y.interceptors.request.use(e=>(e.params==null&&(e.params={}),e.params=_t(Z({},e.params),{modelArch:O.modelArch(),deviceId:O.getDeviceId(),_t:O.UnixDate()}),e),e=>e);Y.interceptors.response.use(e=>e);const de=()=>new Promise((e,t)=>A(I,null,function*(){try{const n=yield D({method:"GET",url:"/cgi-bin/luci/admin/store/installed"});if(n.status==200){e(n.data);return}t(n.status);return}catch(n){t(n);return}})),pe=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/install",params:{package:e}});if(a.status==200){t(a.data);return}n(a.status);return}catch(a){n(a);return}})),_e=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/upgrade",params:{package:e}});if(a.status==200){t(a.data);return}n(a.status);return}catch(a){n(a);return}})),he=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/remove",params:{package:e}});if(a.status==200){t(a.data);return}n(a.status);return}catch(a){n(a);return}})),ge=()=>new Promise((e,t)=>A(I,null,function*(){try{const n=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/update"});if(n.status==200){e(n.data);return}t(n.status);return}catch(n){t(n);return}})),fe=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"GET",url:"/cgi-bin/luci/admin/store/status",params:{package:e}});if(a.status==200){t(a.data);return}n(a.status);return}catch(a){n(a);return}})),ve=()=>new Promise((e,t)=>A(I,null,function*(){try{const n=yield D({method:"GET",url:"/cgi-bin/luci/admin/store/log"});if(n.status==200){e(n.data);return}t(n.status);return}catch(n){t(n);return}})),me=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/upload",headers:{"Content-Type":"multipart/form-data"},data:e});if(a.data){t(a.data);return}}catch(a){n(a);return}n("not found soft")})),we=()=>new Promise((e,t)=>A(I,null,function*(){try{const n=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/light_backup"});if(n.status==200){e(n.data);return}t(n.status);return}catch(n){t(n);return}})),be=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/light_restore",headers:{"Content-Type":"multipart/form-data"},data:e});if(a.data){t(a.data);return}}catch(a){n(a);return}n("not found soft")})),$e=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"GET",url:"/cgi-bin/luci/admin/store/get_available_backup_file_list",params:{path:e}});if(a.status==200){t(a==null?void 0:a.data);return}n(a.status);return}catch(a){n(a);return}})),ye=()=>new Promise((e,t)=>A(I,null,function*(){try{const n=yield D({method:"GET",url:"/cgi-bin/luci/admin/store/get_local_backup_dir_path"});if(n.status==200){e(n==null?void 0:n.data);return}t(n.status);return}catch(n){t(n);return}})),ke=(e,t)=>new Promise((n,a)=>A(I,null,function*(){try{const o=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/local_backup",params:{path:e,force:t}});if(o.status==200){n(o==null?void 0:o.data);return}a(o.status);return}catch(o){a(o);return}})),xe=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/local_restore",params:{path:e}});if(a.status==200){t(a.data);return}n(a.status);return}catch(a){n(a);return}})),Ce=()=>new Promise((e,t)=>A(I,null,function*(){try{const n=yield D({method:"GET",url:"/cgi-bin/luci/admin/store/get_block_devices"});if(n.status==200){e(n==null?void 0:n.data);return}t(n.status);return}catch(n){t(n);return}}));var Se=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",getInstalledApp:de,installApp:pe,upgradeApp:_e,removeApp:he,updateAppStore:ge,getAppStatus:fe,getLog:ve,uploadAppIPK:me,lightBackup:we,lightRestore:be,backupFileList:$e,localBackupdirPath:ye,localBackup:ke,localRestore:xe,getBlockDevices:Ce});const Le=e=>new Promise((t,n)=>A(I,null,function*(){var a,o,l,u;try{const i=yield Y({method:"GET",url:"/api/store/list",params:e});if(((a=i==null?void 0:i.data)==null?void 0:a.success)===0){t((o=i==null?void 0:i.data)==null?void 0:o.result);return}if((l=i==null?void 0:i.data)!=null&&l.message){n((u=i==null?void 0:i.data)==null?void 0:u.message);return}n("error")}catch(i){console.log(i),n(i);return}})),Ae=O.ApiBaseURL(),Te=e=>`${Ae}${e}`,Ee=()=>new Promise((e,t)=>A(I,null,function*(){var n,a,o,l;try{const u=yield Y({method:"GET",url:"/api/store/tags"});if(((n=u==null?void 0:u.data)==null?void 0:n.success)===0){e((a=u==null?void 0:u.data)==null?void 0:a.result);return}if((o=u==null?void 0:u.data)!=null&&o.message){t((l=u==null?void 0:u.data)==null?void 0:l.message);return}t("error")}catch(u){t(u);return}})),Ie=e=>new Promise((t,n)=>{Y({method:"POST",url:"/api/store/expand",data:{appsId:e||[],deviceId:O.getDeviceId()}}).then(a=>{var o,l,u;if(((o=a.data)==null?void 0:o.success)==0&&((l=a.data)==null?void 0:l.result)){t((u=a.data)==null?void 0:u.result);return}n("not found expand")}).catch(a=>{n(a)})}),De=e=>{Y({method:"POST",url:"/api/store/download",data:{appId:e,deviceId:O.getDeviceId()}}).then(t=>{var n;((n=t.data)==null?void 0:n.success)!=0})},Pe=e=>new Promise((t,n)=>{Y({method:"POST",url:"/api/store/star",data:{appId:e,deviceId:O.getDeviceId()}}).then(a=>{var o;if(((o=a.data)==null?void 0:o.success)==0){t(a.data);return}n("not found expand")}).catch(a=>{n(a)})});var Be=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",getStoreAppList:Le,getStoreAppIcon:Te,getStoreTags:Ee,getAppExpandData:Ie,increasingDownloadCount:De,postStarApp:Pe});const Ve=()=>D({method:"GET",url:"/cgi-bin/luci/admin/store/check_self_upgrade"}),Fe=()=>D({method:"POST",url:"/cgi-bin/luci/admin/store/do_self_upgrade"});var Me=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",updateIstore:Ve,selfUpdateIstore:Fe}),T=Z(Z(Z({},Se),Be),Me);const ze={setup(){const e=H(),t=B(()=>e.state.log.action),n=B(()=>e.state.log.content),a=B(()=>e.state.log.end),o=B(()=>e.state.log.exitCode),l=S(!1),u=S(null);let i="",c=S(""),h=S("."),y="",k="";switch(t.value){case"install":i="\u6B63\u5728\u5B89\u88C5\u63D2\u4EF6",y="\u5B89\u88C5\u5B8C\u6210,\u8BF7\u5173\u95ED\u5F53\u524D\u7A97\u53E3",k="\u5B89\u88C5\u5931\u8D25,\u9519\u8BEF\u7801";break;case"uninstall":i="\u6B63\u5728\u5378\u8F7D\u63D2\u4EF6",y="\u5378\u8F7D\u6210\u529F,\u8BF7\u5173\u95ED\u5F53\u524D\u7A97\u53E3",k="\u5378\u8F7D\u5931\u8D25,\u9519\u8BEF\u7801";break;case"upgrade":i="\u6B63\u5728\u66F4\u65B0\u63D2\u4EF6",y="\u66F4\u65B0\u6210\u529F,\u8BF7\u5173\u95ED\u5F53\u524D\u7A97\u53E3",k="\u66F4\u65B0\u5931\u8D25,\u9519\u8BEF\u7801";break;case"upload":i="\u6B63\u5728\u4E0A\u4F20\u63D2\u4EF6",y="\u79BB\u7EBF\u5B89\u88C5\u6210\u529F,\u8BF7\u5173\u95ED\u5F53\u524D\u7A97\u53E3",k="\u79BB\u7EBF\u5B89\u88C5\u5931\u8D25,\u9519\u8BEF\u7801";break}xt(()=>{document.body.setAttribute("lock-scroll",!0),V()}),Ut(()=>{document.body.removeAttribute("lock-scroll")});const P=()=>{var f;(f=u.value)!=null&&f.scrollHeight&&(u.value.scrollTop=u.value.scrollHeight)},V=()=>{setTimeout(()=>{if(a.value){w(),P();return}T.getLog().then(f=>{if(a.value){w(),P();return}switch(f==null?void 0:f.code){}const C=f==null?void 0:f.stdout,v=f==null?void 0:f.stderr;(C||v)&&(c.value=`${C}${v}`),h.value=`${h.value}.`,P(),V()}).catch(f=>{c.value=`${f}`,P(),V()})},500)},w=()=>{l.value=!0},p=()=>{location.reload()};return{logText:B(()=>l.value?o.value!==void 0&&o.value!==0?`${i}
+var Et=Object.defineProperty,It=Object.defineProperties;var Dt=Object.getOwnPropertyDescriptors;var bt=Object.getOwnPropertySymbols;var Pt=Object.prototype.hasOwnProperty,Bt=Object.prototype.propertyIsEnumerable;var $t=(e,t,n)=>t in e?Et(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Z=(e,t)=>{for(var n in t||(t={}))Pt.call(t,n)&&$t(e,n,t[n]);if(bt)for(var n of bt(t))Bt.call(t,n)&&$t(e,n,t[n]);return e},_t=(e,t)=>It(e,Dt(t));var Vt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var A=(e,t,n)=>new Promise((a,o)=>{var l=c=>{try{i(n.next(c))}catch(h){o(h)}},u=c=>{try{i(n.throw(c))}catch(h){o(h)}},i=c=>c.done?a(c.value):Promise.resolve(c.value).then(l,u);i((n=n.apply(e,t)).next())});import{a as ht,c as Ft,u as R,b as H,d as B,r as rt,o as d,e as _,F as U,f as K,g as X,w as Mt,h as r,p as lt,i as ct,j as s,t as f,k as z,n as j,l as zt,m as S,q as xt,s as Ut,v as N,x as gt,y as Ct,z as ut,A as St,B as Lt,C as Ot,D as yt,E as Rt,G as Nt,H as Gt}from"./vendor.js?v=64c6a109";var jo=Vt(I=>{const Ht=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))a(o);new MutationObserver(o=>{for(const l of o)if(l.type==="childList")for(const u of l.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&a(u)}).observe(document,{childList:!0,subtree:!0});function n(o){const l={};return o.integrity&&(l.integrity=o.integrity),o.referrerpolicy&&(l.referrerPolicy=o.referrerpolicy),o.crossorigin==="use-credentials"?l.credentials="include":o.crossorigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function a(o){if(o.ep)return;o.ep=!0;const l=n(o);fetch(o.href,l)}};Ht();const pt={tagMap:{},numberFormat:new Intl.NumberFormat("en",{notation:"compact"})},Kt=e=>A(I,null,function*(){const t=window.vue_lang;new Date().getTime();let n={};try{const l=yield ht({url:window.vue_lang_data,method:"GET"});l.data&&(n=l.data)}catch(l){console.log(l)}const a=Ft({defaultLanguage:t,translations:n,setGlobalProperties:!1,provideDirective:!1,provideComponent:!1});e.use(a);const{$gettext:o}=a;window.$i18n=o,pt.tagMap={net:o("net"),tool:o("tool"),download:o("download"),service:o("service"),multimedia:o("multimedia"),nas:o("nas"),monitor:o("monitor"),system:o("system"),networking:o("networking")};try{pt.numberFormat=new Intl.NumberFormat(t,{notation:"compact"})}catch(l){console.error("Intl.NumberFormat unsupported lang",t,l)}}),At=e=>pt.tagMap[e]||e,kt=e=>typeof e=="number"?pt.numberFormat.format(e):"?";var E=(e,t)=>{const n=e.__vccOpts||e;for(const[a,o]of t)n[a]=o;return n};const Wt=e=>(lt("data-v-13251538"),e=e(),ct(),e),qt={class:"tabs"},Zt=["href","onClick"],Yt={key:0},Jt=Wt(()=>s("div",{class:"auto"},null,-1)),Qt={setup(e){const{$gettext:t}=R(),n=H(),a=B(()=>n.state.version),o=B(()=>[{to:"/installed",name:t("installed")},{to:"/store",name:t("all app")},{to:"/upload",name:t("manual install")},{to:"/maintance",name:t("maintain"),up:a.value}]);return(l,u)=>{const i=rt("router-link");return d(),_("ul",qt,[(d(!0),_(U,null,K(r(o),c=>(d(),X(i,{to:c.to,custom:"",key:c.to},{default:Mt(({href:h,navigate:y,isActive:k})=>[s("li",{class:j(k&&"active cbi-tab")},[s("a",{href:h,onClick:y},f(c.name),9,Zt),c.up?(d(),_("span",Yt)):z("",!0)],2)]),_:2},1032,["to"]))),128)),Jt])}}};var Xt=E(Qt,[["__scopeId","data-v-13251538"]]);const jt=()=>window.vue_base,te=()=>window.istore_api_base||"https://istore.linkease.com",ee=e=>{if(e)return zt(e).format("YYYY-MM-DD HH:mm:ss")},ne=()=>new Date().getTime(),ae=e=>{if(e<1024)return""+e+"KB";let n=1024,a=0;for(let l=e/1024;l>=1024;l/=1024)n*=1024,a++;let o=["M","G","T","P","E"];return(e/100/(n/100)).toFixed(2)+o[a]},oe=e=>{if(e==null)return 0;if(e<1e4)return e;let n=parseInt(`${e/1e4}`),a=e%1e4;return`${n}\u4E07${a}`},se=()=>window.token||"",re=()=>{var e;return((e=window==null?void 0:window.device_id)==null?void 0:e.uid)||""},le=()=>{var e;return((e=window==null?void 0:window.device_id)==null?void 0:e.version)||""},ce=()=>{var e;return((e=window==null?void 0:window.device_id)==null?void 0:e.arch)||""},ie=()=>"https://www.kooldns.cn/bind";var ue=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",BasePage:jt,ApiBaseURL:te,formatDate:ee,UnixDate:ne,numberToSize:ae,numberToSum:oe,getToken:se,getDeviceId:re,getVersion:le,modelArch:ce,getIframeURL:ie}),O=Z({},ue);const D=ht.create({});D.interceptors.request.use(e=>(e.params==null&&(e.params={}),e.params=_t(Z({},e.params),{token:O.getToken(),_t:O.UnixDate()}),e),e=>e);D.interceptors.response.use(e=>e,e=>e);const Y=ht.create({baseURL:O.ApiBaseURL()});Y.interceptors.request.use(e=>(e.params==null&&(e.params={}),e.params=_t(Z({},e.params),{modelArch:O.modelArch(),deviceId:O.getDeviceId(),_t:O.UnixDate()}),e),e=>e);Y.interceptors.response.use(e=>e);const de=()=>new Promise((e,t)=>A(I,null,function*(){try{const n=yield D({method:"GET",url:"/cgi-bin/luci/admin/store/installed"});if(n.status==200){e(n.data);return}t(n.status);return}catch(n){t(n);return}})),pe=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/install",params:{package:e}});if(a.status==200){t(a.data);return}n(a.status);return}catch(a){n(a);return}})),_e=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/upgrade",params:{package:e}});if(a.status==200){t(a.data);return}n(a.status);return}catch(a){n(a);return}})),he=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/remove",params:{package:e}});if(a.status==200){t(a.data);return}n(a.status);return}catch(a){n(a);return}})),ge=()=>new Promise((e,t)=>A(I,null,function*(){try{const n=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/update"});if(n.status==200){e(n.data);return}t(n.status);return}catch(n){t(n);return}})),fe=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"GET",url:"/cgi-bin/luci/admin/store/status",params:{package:e}});if(a.status==200){t(a.data);return}n(a.status);return}catch(a){n(a);return}})),ve=()=>new Promise((e,t)=>A(I,null,function*(){try{const n=yield D({method:"GET",url:"/cgi-bin/luci/admin/store/log"});if(n.status==200){e(n.data);return}t(n.status);return}catch(n){t(n);return}})),me=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/upload",headers:{"Content-Type":"multipart/form-data"},data:e});if(a.data){t(a.data);return}}catch(a){n(a);return}n("not found soft")})),we=()=>new Promise((e,t)=>A(I,null,function*(){try{const n=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/light_backup"});if(n.status==200){e(n.data);return}t(n.status);return}catch(n){t(n);return}})),be=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/light_restore",headers:{"Content-Type":"multipart/form-data"},data:e});if(a.data){t(a.data);return}}catch(a){n(a);return}n("not found soft")})),$e=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"GET",url:"/cgi-bin/luci/admin/store/get_available_backup_file_list",params:{path:e}});if(a.status==200){t(a==null?void 0:a.data);return}n(a.status);return}catch(a){n(a);return}})),ye=()=>new Promise((e,t)=>A(I,null,function*(){try{const n=yield D({method:"GET",url:"/cgi-bin/luci/admin/store/get_local_backup_dir_path"});if(n.status==200){e(n==null?void 0:n.data);return}t(n.status);return}catch(n){t(n);return}})),ke=(e,t)=>new Promise((n,a)=>A(I,null,function*(){try{const o=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/local_backup",params:{path:e,force:t}});if(o.status==200){n(o==null?void 0:o.data);return}a(o.status);return}catch(o){a(o);return}})),xe=e=>new Promise((t,n)=>A(I,null,function*(){try{const a=yield D({method:"POST",url:"/cgi-bin/luci/admin/store/local_restore",params:{path:e}});if(a.status==200){t(a.data);return}n(a.status);return}catch(a){n(a);return}})),Ce=()=>new Promise((e,t)=>A(I,null,function*(){try{const n=yield D({method:"GET",url:"/cgi-bin/luci/admin/store/get_block_devices"});if(n.status==200){e(n==null?void 0:n.data);return}t(n.status);return}catch(n){t(n);return}}));var Se=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",getInstalledApp:de,installApp:pe,upgradeApp:_e,removeApp:he,updateAppStore:ge,getAppStatus:fe,getLog:ve,uploadAppIPK:me,lightBackup:we,lightRestore:be,backupFileList:$e,localBackupdirPath:ye,localBackup:ke,localRestore:xe,getBlockDevices:Ce});const Le=e=>new Promise((t,n)=>A(I,null,function*(){var a,o,l,u;try{const i=yield Y({method:"GET",url:"/api/store/list",params:e});if(((a=i==null?void 0:i.data)==null?void 0:a.success)===0){t((o=i==null?void 0:i.data)==null?void 0:o.result);return}if((l=i==null?void 0:i.data)!=null&&l.message){n((u=i==null?void 0:i.data)==null?void 0:u.message);return}n("error")}catch(i){console.log(i),n(i);return}})),Ae=O.ApiBaseURL(),Te=e=>`${Ae}${e}`,Ee=()=>new Promise((e,t)=>A(I,null,function*(){var n,a,o,l;try{const u=yield Y({method:"GET",url:"/api/store/tags"});if(((n=u==null?void 0:u.data)==null?void 0:n.success)===0){e((a=u==null?void 0:u.data)==null?void 0:a.result);return}if((o=u==null?void 0:u.data)!=null&&o.message){t((l=u==null?void 0:u.data)==null?void 0:l.message);return}t("error")}catch(u){t(u);return}})),Ie=e=>new Promise((t,n)=>{Y({method:"POST",url:"/api/store/expand",data:{appsId:e||[],deviceId:O.getDeviceId()}}).then(a=>{var o,l,u;if(((o=a.data)==null?void 0:o.success)==0&&((l=a.data)==null?void 0:l.result)){t((u=a.data)==null?void 0:u.result);return}n("not found expand")}).catch(a=>{n(a)})}),De=e=>{Y({method:"POST",url:"/api/store/download",data:{appId:e,deviceId:O.getDeviceId()}}).then(t=>{var n;((n=t.data)==null?void 0:n.success)!=0})},Pe=e=>new Promise((t,n)=>{Y({method:"POST",url:"/api/store/star",data:{appId:e,deviceId:O.getDeviceId()}}).then(a=>{var o;if(((o=a.data)==null?void 0:o.success)==0){t(a.data);return}n("not found expand")}).catch(a=>{n(a)})});var Be=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",getStoreAppList:Le,getStoreAppIcon:Te,getStoreTags:Ee,getAppExpandData:Ie,increasingDownloadCount:De,postStarApp:Pe});const Ve=()=>D({method:"GET",url:"/cgi-bin/luci/admin/store/check_self_upgrade"}),Fe=()=>D({method:"POST",url:"/cgi-bin/luci/admin/store/do_self_upgrade"});var Me=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",updateIstore:Ve,selfUpdateIstore:Fe}),T=Z(Z(Z({},Se),Be),Me);const ze={setup(){const e=H(),t=B(()=>e.state.log.action),n=B(()=>e.state.log.content),a=B(()=>e.state.log.end),o=B(()=>e.state.log.exitCode),l=S(!1),u=S(null);let i="",c=S(""),h=S("."),y="",k="";switch(t.value){case"install":i="\u6B63\u5728\u5B89\u88C5\u63D2\u4EF6",y="\u5B89\u88C5\u5B8C\u6210,\u8BF7\u5173\u95ED\u5F53\u524D\u7A97\u53E3",k="\u5B89\u88C5\u5931\u8D25,\u9519\u8BEF\u7801";break;case"uninstall":i="\u6B63\u5728\u5378\u8F7D\u63D2\u4EF6",y="\u5378\u8F7D\u6210\u529F,\u8BF7\u5173\u95ED\u5F53\u524D\u7A97\u53E3",k="\u5378\u8F7D\u5931\u8D25,\u9519\u8BEF\u7801";break;case"upgrade":i="\u6B63\u5728\u66F4\u65B0\u63D2\u4EF6",y="\u66F4\u65B0\u6210\u529F,\u8BF7\u5173\u95ED\u5F53\u524D\u7A97\u53E3",k="\u66F4\u65B0\u5931\u8D25,\u9519\u8BEF\u7801";break;case"upload":i="\u6B63\u5728\u4E0A\u4F20\u63D2\u4EF6",y="\u79BB\u7EBF\u5B89\u88C5\u6210\u529F,\u8BF7\u5173\u95ED\u5F53\u524D\u7A97\u53E3",k="\u79BB\u7EBF\u5B89\u88C5\u5931\u8D25,\u9519\u8BEF\u7801";break}xt(()=>{document.body.setAttribute("lock-scroll",!0),V()}),Ut(()=>{document.body.removeAttribute("lock-scroll")});const P=()=>{var g;(g=u.value)!=null&&g.scrollHeight&&(u.value.scrollTop=u.value.scrollHeight)},V=()=>{setTimeout(()=>{if(a.value){b(),P();return}T.getLog().then(g=>{if(a.value){b(),P();return}switch(g==null?void 0:g.code){}const C=g==null?void 0:g.stdout,v=g==null?void 0:g.stderr;(C||v)&&(c.value=`${C}${v}`),h.value=`${h.value}.`,P(),V()}).catch(g=>{c.value=`${g}`,P(),V()})},500)},b=()=>{l.value=!0},p=()=>{location.reload()};return{logText:B(()=>l.value?o.value!==void 0&&o.value!==0?`${i}
${n.value}
${k} ${o.value}
`:`${i}
@@ -8,7 +8,7 @@ ${y}
${h.value}
${c.value}
${n.value}
-`),Close:p,disabled:l,textDom:u}},mounted(){this.$nextTick(()=>{const e=document.querySelector("body");e.append?e.append(this.$el):e.appendChild(this.$el)})}},ft=e=>(lt("data-v-6695545b"),e=e(),ct(),e),Ue={class:"software-log_shade"},Oe=ft(()=>s("div",{class:"software-log_shade__bg"},null,-1)),Re={class:"software-log_shade__pannel"},Ne=ft(()=>s("div",{class:"software-log_shade__pannel-title"}," \u8F6F\u4EF6\u4E2D\u5FC3 - \u65E5\u5FD7\u8BB0\u5F55 ",-1)),Ge=ft(()=>s("div",{class:"software-log_shade__pannel-now"},[s("i",null,"\xA0\xA0\xA0\xA0\u63D2\u4EF6\u5B89\u88C5/\u5378\u8F7D\u8FC7\u7A0B\u4E2D\u8BF7\u52FF\u5237\u65B0\u6B64\u9875\u9762\uFF01")],-1)),He={class:"software-log_shade__pannel-content"},Ke=["value"],We={key:0,class:"software-log_shade__pannel-btn"};function qe(e,t,n,a,o,l){return d(),_("div",Ue,[Oe,s("div",Re,[Ne,Ge,s("div",He,[s("textarea",{ref:"textDom",cols:"63",rows:"26",wrap:"on",readonly:"readonly",autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",value:a.logText},null,8,Ke)]),a.disabled?(d(),_("div",We,[s("button",{class:"close",onClick:t[0]||(t[0]=u=>a.Close())}," \u5173\u95ED ")])):z("",!0)])])}var Ze=E(ze,[["render",qe],["__scopeId","data-v-6695545b"]]);const Ye={setup(e){const t=H();t.dispatch("getData");const n=B(()=>t.state.log.status);return(a,o)=>{const l=rt("router-view");return d(),_(U,null,[N(Xt),N(l),r(n)?(d(),X(Ze,{key:0})):z("",!0)],64)}}},Je={class:"toast"},Qe=["title"],Xe={key:1,class:"msg"},je=["innerHTML"],tn={props:{content:String,type:String,Close:Function,keep:Boolean,html:Boolean},setup(e){const t=e,n=S(t.content),a=S(t.keep),o=S(t.html),l=S(window.$i18n);t.keep||setTimeout(()=>{t.Close()},2e3);const u=()=>{t.Close()};return(i,c)=>(d(),_("div",Je,[a.value?(d(),_("div",{key:0,class:"toast-close",onClick:u,title:l.value("closed")},"x",8,Qe)):z("",!0),o.value?z("",!0):(d(),_("div",Xe,g(n.value),1)),o.value?(d(),_("div",{key:2,class:"msg",innerHTML:n.value},null,8,je)):z("",!0)]))}};var en=E(tn,[["__scopeId","data-v-b05f92bc"]]);const M=e=>{let t={content:"",type:"",keep:!1,html:!1,Close:()=>{a.unmount(n),document.body.removeChild(n)}};e!=null&&(typeof e=="object"?(t.content=(e==null?void 0:e.content)||"",t.type=(e==null?void 0:e.type)||"",t.keep=(e==null?void 0:e.keep)||!1,t.html=(e==null?void 0:e.html)||!1):t.content=e);let n=document.createElement("div"),a=gt(en,t);document.body.append(n),a.mount(n),Ct(()=>{a.unmount(n),document.body.removeChild(n)})},nn={props:{content:String,Close:Function},setup(e){return{message:e.content}}},an=e=>(lt("data-v-6d7664a4"),e=e(),ct(),e),on={class:"loading"},sn=an(()=>s("div",{class:"icon"},null,-1)),rn={class:"msg"};function ln(e,t,n,a,o,l){return d(),_("div",on,[sn,s("div",rn,g(a.message),1)])}var cn=E(nn,[["render",ln],["__scopeId","data-v-6d7664a4"]]),G={props:{content:"",Close:()=>{}},Start(e){this.props={content:e,Close:()=>{t.unmount(n),document.body.removeChild(n)}};let t=gt(cn,this.props),n=document.createElement("div");document.body.append(n),t.mount(n),Ct(()=>{this.props.Close()})},Stop(){this.props.Close()}};const un=()=>`
+`),Close:p,disabled:l,textDom:u}},mounted(){this.$nextTick(()=>{const e=document.querySelector("body");e.append?e.append(this.$el):e.appendChild(this.$el)})}},ft=e=>(lt("data-v-6695545b"),e=e(),ct(),e),Ue={class:"software-log_shade"},Oe=ft(()=>s("div",{class:"software-log_shade__bg"},null,-1)),Re={class:"software-log_shade__pannel"},Ne=ft(()=>s("div",{class:"software-log_shade__pannel-title"}," \u8F6F\u4EF6\u4E2D\u5FC3 - \u65E5\u5FD7\u8BB0\u5F55 ",-1)),Ge=ft(()=>s("div",{class:"software-log_shade__pannel-now"},[s("i",null,"\xA0\xA0\xA0\xA0\u63D2\u4EF6\u5B89\u88C5/\u5378\u8F7D\u8FC7\u7A0B\u4E2D\u8BF7\u52FF\u5237\u65B0\u6B64\u9875\u9762\uFF01")],-1)),He={class:"software-log_shade__pannel-content"},Ke=["value"],We={key:0,class:"software-log_shade__pannel-btn"};function qe(e,t,n,a,o,l){return d(),_("div",Ue,[Oe,s("div",Re,[Ne,Ge,s("div",He,[s("textarea",{ref:"textDom",cols:"63",rows:"26",wrap:"on",readonly:"readonly",autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",value:a.logText},null,8,Ke)]),a.disabled?(d(),_("div",We,[s("button",{class:"close",onClick:t[0]||(t[0]=u=>a.Close())}," \u5173\u95ED ")])):z("",!0)])])}var Ze=E(ze,[["render",qe],["__scopeId","data-v-6695545b"]]);const Ye={setup(e){const t=H();t.dispatch("getData");const n=B(()=>t.state.log.status);return(a,o)=>{const l=rt("router-view");return d(),_(U,null,[N(Xt),N(l),r(n)?(d(),X(Ze,{key:0})):z("",!0)],64)}}},Je={class:"toast"},Qe=["title"],Xe={key:1,class:"msg"},je=["innerHTML"],tn={props:{content:String,type:String,Close:Function,keep:Boolean,html:Boolean},setup(e){const t=e,n=S(t.content),a=S(t.keep),o=S(t.html),l=S(window.$i18n);t.keep||setTimeout(()=>{t.Close()},2e3);const u=()=>{t.Close()};return(i,c)=>(d(),_("div",Je,[a.value?(d(),_("div",{key:0,class:"toast-close",onClick:u,title:l.value("closed")},"x",8,Qe)):z("",!0),o.value?z("",!0):(d(),_("div",Xe,f(n.value),1)),o.value?(d(),_("div",{key:2,class:"msg",innerHTML:n.value},null,8,je)):z("",!0)]))}};var en=E(tn,[["__scopeId","data-v-b05f92bc"]]);const M=e=>{let t={content:"",type:"",keep:!1,html:!1,Close:()=>{a.unmount(n),document.body.removeChild(n)}};e!=null&&(typeof e=="object"?(t.content=(e==null?void 0:e.content)||"",t.type=(e==null?void 0:e.type)||"",t.keep=(e==null?void 0:e.keep)||!1,t.html=(e==null?void 0:e.html)||!1):t.content=e);let n=document.createElement("div"),a=gt(en,t);document.body.append(n),a.mount(n),Ct(()=>{a.unmount(n),document.body.removeChild(n)})},nn={props:{content:String,Close:Function},setup(e){return{message:e.content}}},an=e=>(lt("data-v-6d7664a4"),e=e(),ct(),e),on={class:"loading"},sn=an(()=>s("div",{class:"icon"},null,-1)),rn={class:"msg"};function ln(e,t,n,a,o,l){return d(),_("div",on,[sn,s("div",rn,f(a.message),1)])}var cn=E(nn,[["render",ln],["__scopeId","data-v-6d7664a4"]]),G={props:{content:"",Close:()=>{}},Start(e){this.props={content:e,Close:()=>{t.unmount(n),document.body.removeChild(n)}};let t=gt(cn,this.props),n=document.createElement("div");document.body.append(n),t.mount(n),Ct(()=>{this.props.Close()})},Stop(){this.props.Close()}};const un=()=>`
`,dn=()=>{const e=document.createElement("div");return e.className="software-log_shade",e.setAttribute("data-logger",""),e.innerHTML=un(),e},pn=()=>{const e=document.createElement("div");return e.className="software-log_shade__bg",e},_n=()=>{const e=document.createElement("div");return e.className="software-log_shade__pannel",e},hn=e=>{const t=document.createElement("div");return t.className="software-log_shade__pannel-title",t.textContent=e,t},gn=e=>{const t=document.createElement("div");return t.className="software-log_shade__pannel-now",t.innerHTML=` ${e}`,t},fn=()=>{const e=document.createElement("div");return e.className="software-log_shade__pannel-content",e},vn=e=>{const t=document.createElement("textarea");return t.setAttribute("readonly",""),t.setAttribute("cols","63"),t.setAttribute("rows","26"),t.setAttribute("wrap","on"),t.setAttribute("autocomplete","off"),t.setAttribute("autocapitalize","off"),t.setAttribute("spellcheck","false"),t.className="software-log_shade__pannel-content-text",t.value=e,t},mn=(e,t)=>{const n=document.createElement("button");return n.className="software-log_shade__pannel-btn-close",n.textContent=e,n.addEventListener("click",t),n},wn=()=>{const e=document.createElement("div");return e.className="software-log_shade__pannel-btn",e},bn=e=>{const t=e.title!=null?e.title:"\u65E5\u5FD7\u8BB0\u5F55",n=e.description!=null?e.description:"\u63D2\u4EF6\u5B89\u88C5/\u5378\u8F7D\u8FC7\u7A0B\u4E2D\u8BF7\u52FF\u5237\u65B0\u6B64\u9875\u9762!",a=e.clearText!=null?e.clearText:"\u5173\u95ED",o=e.value!=null?e.value:"",l=e.callback!=null?e.callback:()=>{};return{title:t,description:n,clearText:a,valueText:o,callback:l}},dt=e=>{const{title:t,description:n,clearText:a,valueText:o,callback:l}=bn(e);let u=!1,i="",c="",h=!1;const y=dn(),k=()=>{h||(document.body&&document.body.removeAttribute("lock-scroll"),l&&l(),y&&y.remove(),h=!0)},P=()=>{W.scrollTop=W.scrollHeight},V=L=>{W.value=`${i}
-${L}`,P()},w=L=>{c=L,V(c)},p=L=>{w(c+L)},b=()=>{i+=".",w(c)},f=L=>{u=L,u?J.appendChild(et):J.removeChild(et)},C=()=>u,v=()=>{C()||setTimeout(()=>{T.getLog().then(L=>{switch(L==null?void 0:L.code){}const nt=L==null?void 0:L.stdout,at=L==null?void 0:L.stderr;(nt||at)&&w(`${nt}${at}`),b()}).catch(L=>{w(`${L}`)}).finally(()=>{v()})},500)};v();const $=pn(),m=_n(),x=hn(t),F=gn(n),tt=fn(),W=vn(o);tt.appendChild(W);const J=wn(),et=mn(a,k);return m.append(x,F,tt,J),y.append($,m),document.body.appendChild(y),document.body.setAttribute("lock-scroll","true"),{close:k,setValue:w,addValue:p,setDisabled:f,getDisabled:C}},it=e=>(lt("data-v-ed22959e"),e=e(),ct(),e),$n={class:"app-container"},yn={class:"app-info"},kn={class:"app-f"},xn={class:"app-icon"},Cn=["alt","src"],Sn={class:"app-tags"},Ln={class:"tag"},An=it(()=>s("span",{class:"block"},"\uFF5C",-1)),Tn={class:"app-r"},En=["title"],In={class:"app-name"},Dn={class:"app-version"},Pn={class:"app-as"},Bn=it(()=>s("span",{style:{margin:"0 10px"}},"|",-1)),Vn=["title"],Fn=["title"],Mn=["title"],zn={class:"app-author"},Un={class:"app-date"},On={class:"app-btns"},Rn=["href"],Nn=it(()=>s("div",{class:"auto"},null,-1)),Gn=it(()=>s("div",{class:"app-margin-left"},null,-1)),Hn=["href"],Kn=it(()=>s("div",{class:"app-margin-left"},null,-1)),Wn={props:{col:{type:Object,default(){return{description:"",tags:[],entry:"",author:"",depends:[],installed:!1,hasupdate:!1,title:"",time:"",release:1,website:"",name:"",version:""}}}},setup(e){const t=e,{$gettext:n,$ngettext:a}=R(),o=B(()=>t.col),l=H(),u=O.formatDate,i=p=>{const b=dt({title:n("updating plugin"),description:n("do not refresh this page during plugin installation/uninstallation"),clearText:n("closed"),valueText:"",callback:()=>{location.reload()}});T.upgradeApp(p).then(f=>{let C=f.stdout,v=f.stderr;b.addValue(`${C}
-${v}`),b.addValue(`
-${n("the update is success, please close the current window")}`)}).catch(f=>{b.addValue(`${f}`),b.addValue(`
-${n("update failed with error code")}: ${500}`)}).finally(()=>{b.setDisabled(!0);try{window.L.ui.menu.flushCache()}catch(f){}})},c=p=>{const b=dt({title:n("installing plugin"),description:n("do not refresh this page during plugin installation/uninstallation"),clearText:n("closed"),valueText:"",callback:()=>{location.reload()}});T.increasingDownloadCount(p),l.dispatch("apps/incrAppDownload",{name:p}),T.installApp(p).then(f=>{let C=f.stdout,v=f.stderr;b.addValue(`${C}
-${v}`),b.addValue(`
-${n("installation is complete, please close the current window")}`)}).catch(f=>{b.addValue(`${f}`),b.addValue(`
-${n("installation failed, error code")}: ${500}`)}).finally(()=>{b.setDisabled(!0);try{window.L.ui.menu.flushCache()}catch(f){}})},h=p=>{if(!confirm(n("are you sure you want to uninstall %{name}?",{name:p})))return;const f=dt({title:n("uninstalling plugin"),description:n("do not refresh this page during plugin installation/uninstallation"),clearText:n("closed"),valueText:"",callback:()=>{location.reload()}});T.removeApp(p).then(C=>{let v=C.stdout,$=C.stderr;f.addValue(`${v}
-${$}`),f.addValue(`
-${n("uninstallation succeeded, please close the current window")}`)}).catch(C=>{f.addValue(`${C}`),f.addValue(`
-${n("uninstall failed, error code")}: ${500}`)}).finally(()=>{f.setDisabled(!0);try{window.L.ui.menu.flushCache()}catch(C){}})},y=p=>A(this,null,function*(){G.Start();try{(yield T.postStarApp(p))&&l.dispatch("apps/incrAppStar",{name:p})}catch(b){}G.Stop()}),k=()=>{M(n("you have already liked"))},P=p=>o.value.installed?`/luci-static/resources/app-icons/${p}.png`:o.value.icon?T.getStoreAppIcon(o.value.icon):`/luci-static/resources/app-icons/${p}.png`,V=p=>{switch(window.vue_lang){case"zh-cn":case"zh-tw":return p.title}return p.title_en||p.title},w=p=>{switch(window.vue_lang){case"zh-cn":case"zh-tw":return p.description}return p.description_en||p.description};return(p,b)=>{var v,$,m,x,F,tt,W,J,et,L,nt,at,vt,mt,wt;const f=rt("svg-star-off"),C=rt("svg-star-on");return d(),_("div",$n,[s("div",yn,[s("div",kn,[s("div",xn,[s("img",{alt:r(n)("Icon is gone")+"~",src:P(r(o).name)},null,8,Cn)]),s("div",Sn,[(d(!0),_(U,null,K(r(o).tags,q=>(d(),_(U,{key:q},[s("div",Ln,[s("span",null,g(r(At)(q)),1)]),An],64))),128))])]),s("div",Tn,[s("div",{class:"app-title",title:r(o).name},[s("span",In,g(V(r(o))),1),s("span",Dn,"v"+g(r(o).version),1)],8,En),s("div",Pn,[s("span",null,g(r(a)("%{ num } download","%{ num } downloads",(($=(v=r(o))==null?void 0:v.expand)==null?void 0:$.downloadCount)||0,{num:r(kt)((x=(m=r(o))==null?void 0:m.expand)==null?void 0:x.downloadCount)})),1),Bn,s("span",null,g(r(a)("%{ num } like","%{ num } likes",((tt=(F=r(o))==null?void 0:F.expand)==null?void 0:tt.starCount)||0,{num:r(kt)((J=(W=r(o))==null?void 0:W.expand)==null?void 0:J.starCount)})),1),((et=r(o))==null?void 0:et.expand)!=null?(d(),_(U,{key:0},[(nt=(L=r(o))==null?void 0:L.expand)!=null&&nt.isStar?(d(),_("a",{key:0,class:"star-btn",title:r(n)("liked"),onClick:b[0]||(b[0]=q=>k())},[N(f)],8,Vn)):(d(),_("a",{key:1,class:"star-btn",title:r(n)("like"),onClick:b[1]||(b[1]=q=>y(r(o).name))},[N(C)],8,Fn))],64)):z("",!0)]),s("div",{class:"app-description cbi-value-description",title:w(r(o))},[s("span",null,g(w(r(o))),1)],8,Mn),s("div",zn,[s("span",null,g(r(n)("author"))+": "+g(r(o).author||"null"),1)]),s("div",Un,[s("span",null,g(r(n)("update date"))+": "+g(r(u)(r(o).time*1e3)||"null"),1)])])]),s("div",On,[r(o).website?(d(),_("a",{key:0,class:"app-btn cbi-button cbi-button-apply",target:"_blank",href:r(o).website},g(r(n)("website")),9,Rn)):z("",!0),Nn,r(o).installed?(d(),_(U,{key:1},[((at=r(o))==null?void 0:at.curVersion)!=((vt=r(o))==null?void 0:vt.lastVersion)||((mt=r(o))==null?void 0:mt.curRelease)!=((wt=r(o))==null?void 0:wt.lastRelease)?(d(),_("a",{key:0,class:"app-btn cbi-button cbi-button-reload",onClick:b[2]||(b[2]=q=>i(r(o).name))},g(r(n)("upgrade")),1)):z("",!0),Gn,r(o).entry?(d(),_("a",{key:1,class:"app-btn cbi-button cbi-button-apply",href:r(o).entry},g(r(n)("open")),9,Hn)):z("",!0),Kn,s("a",{class:"app-btn cbi-button cbi-button-remove",onClick:b[3]||(b[3]=q=>h(r(o).name))},g(r(n)("uninstall")),1)],64)):(d(),_("a",{key:2,class:"app-btn cbi-button cbi-button-add",onClick:b[4]||(b[4]=q=>c(r(o).name))},g(r(n)("install")),1))])])}}};var Tt=E(Wn,[["__scopeId","data-v-ed22959e"]]);const qn={class:"cbi-section"},Zn={class:"containers"},Yn={setup(e){const t=H(),n=B(()=>t.getters["apps/LocalApps"]);return(a,o)=>(d(),_("fieldset",qn,[s("div",Zn,[(d(!0),_(U,null,K(r(n),l=>(d(),X(Tt,{key:l.name,col:l},null,8,["col"]))),128))])]))}};var Jn=E(Yn,[["__scopeId","data-v-0046e0f2"]]);const Qn={class:"sort-container"},Xn={class:"sort-title"},jn={class:"sort-value"},ta=["value","onClick"],ea={setup(e){const{$gettext:t}=R(),n=S("default"),a=H(),o=S([{key:t("default"),value:"default"},{key:t("By download"),value:"download"},{key:t("By rating"),value:"star"}]),l=u=>{n.value=u,a.dispatch("apps/filterCurApps",{sort:u})};return(u,i)=>(d(),_("div",Qn,[s("div",Xn,g(r(t)("order"))+":",1),s("div",jn,[(d(!0),_(U,null,K(o.value,c=>(d(),_("input",{key:c.value,class:j(["cbi-button",{"cbi-button-apply":n.value==c.value}]),type:"button",value:c.key,onClick:h=>l(c.value)},null,10,ta))),128))])]))}};var na=E(ea,[["__scopeId","data-v-e3845a5c"]]);const aa={class:"tags-container"},oa={class:"tags-title"},sa={class:"tags-value"},ra=["value"],la=["value","onClick"],ca={setup(e){const{$gettext:t}=R(),n=S("default"),a=H(),o=B(()=>a.getters["tags/Tags"]),l=u=>{n.value=u,a.dispatch("apps/filterCurApps",{tag:u})};return(u,i)=>(d(),_("div",aa,[s("div",oa,g(r(t)("tag"))+": ",1),s("div",sa,[s("input",{class:j(["cbi-button",{"cbi-button-apply":n.value=="default"}]),type:"button",value:r(t)("default"),onClick:i[0]||(i[0]=c=>l("default"))},null,10,ra),(d(!0),_(U,null,K(r(o),c=>(d(),_("input",{key:c,class:j(["cbi-button",{"cbi-button-apply":n.value==c}]),type:"button",value:r(At)(c),onClick:h=>l(c)},null,10,la))),128))])]))}};var ia=E(ca,[["__scopeId","data-v-07bccc36"]]);const ua=["onSubmit"],da=["placeholder"],pa={setup(e){const{$gettext:t}=R(),n=S(""),a=H(),o=()=>{a.dispatch("apps/filterCurApps",{search:n.value})};return(l,u)=>{const i=rt("svg-search");return d(),_("form",{class:"search",onSubmit:Lt(o,["prevent"])},[s("a",{class:"search-btn",onClick:o},[N(i)]),ut(s("input",{type:"text",placeholder:r(t)("please enter the search keyword"),"onUpdate:modelValue":u[0]||(u[0]=c=>n.value=c)},null,8,da),[[St,n.value,void 0,{trim:!0}]])],40,ua)}}};var _a=E(pa,[["__scopeId","data-v-c4e8a9f2"]]);const ha={class:"containers"},ga={key:1,style:{margin:"10px 0","text-align":"center",width:"100%"}},fa={setup(e){const{$gettext:t}=R(),n=H(),a=B(()=>n.getters["apps/StoreApps"]),o=B(()=>n.state.apps.Load);return(l,u)=>(d(),_("div",ha,[r(o)?(d(!0),_(U,{key:0},K(r(a),i=>(d(),X(Tt,{key:i.name,col:i},null,8,["col"]))),128)):(d(),_("span",ga,g(r(t)("loading data"))+"...",1))]))}};var va=E(fa,[["__scopeId","data-v-1b494368"]]);const ma={class:"cbi-section"},wa={setup(e){return(t,n)=>(d(),_("fieldset",ma,[N(_a),N(ia),N(na),N(va)]))}};var ba=E(wa,[["__scopeId","data-v-74b0669f"]]);const $a=e=>(lt("data-v-9c880c04"),e=e(),ct(),e),ya={class:"cbi-section"},ka={class:"container_msg cbi-map-descr"},xa=["onSubmit"],Ca={class:"upload-file"},Sa={class:"button"},La=$a(()=>s("div",{class:"auto"},null,-1)),Aa={setup(e){const{$gettext:t}=R(),n=S(null),a=S(null);xt(()=>{if(n.value){const i=n.value;i.addEventListener("dragenter",c=>{(c.fromElement===null||!i.contains(c.fromElement))&&console.log("dragenter")},!1),i.addEventListener("dragleave",c=>{(c.fromElement===null||!i.contains(c.fromElement))&&console.log("dragleave")},!1),i.addEventListener("dragover",c=>{c.preventDefault(),c.dataTransfer.dropEffect="link"},!1),i.addEventListener("drop",c=>{console.log("drop"),c.preventDefault(),o(c)},!1)}});const o=i=>{const c=i.dataTransfer.files;if(c&&c.length>0){const h=c[0];u(h);return}},l=i=>{const c=i.target.files;if(c&&c.length>0){const h=c[0];u(h);return}},u=i=>{if(i.name.endsWith(".run")||i.name.endsWith(".ipk")){const c=dt({title:t("uploading plugin"),description:t("do not refresh this page during plugin installation/uninstallation"),clearText:t("closed"),valueText:"",callback:()=>{location.reload()}});let h=new FormData;h.append(i.name,i),T.uploadAppIPK(h).then(y=>{let k=y.stdout,P=y.stderr;c.addValue(`${k}
+${L}`,P()},b=L=>{c=L,V(c)},p=L=>{b(c+L)},m=()=>{i+=".",b(c)},g=L=>{u=L,u?J.appendChild(et):J.removeChild(et)},C=()=>u,v=()=>{C()||setTimeout(()=>{T.getLog().then(L=>{switch(L==null?void 0:L.code){}const nt=L==null?void 0:L.stdout,at=L==null?void 0:L.stderr;(nt||at)&&b(`${nt}${at}`),m()}).catch(L=>{b(`${L}`)}).finally(()=>{v()})},500)};v();const $=pn(),w=_n(),x=hn(t),F=gn(n),tt=fn(),W=vn(o);tt.appendChild(W);const J=wn(),et=mn(a,k);return w.append(x,F,tt,J),y.append($,w),document.body.appendChild(y),document.body.setAttribute("lock-scroll","true"),{close:k,setValue:b,addValue:p,setDisabled:g,getDisabled:C}},it=e=>(lt("data-v-42a2bb20"),e=e(),ct(),e),$n={class:"app-container"},yn={class:"app-info"},kn={class:"app-f"},xn={class:"app-icon"},Cn=["alt","src"],Sn={class:"app-tags"},Ln={class:"tag"},An=it(()=>s("span",{class:"block"},"\uFF5C",-1)),Tn={class:"app-r"},En=["title"],In={class:"app-name"},Dn={class:"app-version"},Pn={class:"app-as"},Bn=it(()=>s("span",{style:{margin:"0 10px"}},"|",-1)),Vn=["title"],Fn=["title"],Mn=["title"],zn={class:"app-author"},Un={class:"app-date"},On={class:"app-btns"},Rn=["href"],Nn=it(()=>s("div",{class:"auto"},null,-1)),Gn=it(()=>s("div",{class:"app-margin-left"},null,-1)),Hn=["href"],Kn=it(()=>s("div",{class:"app-margin-left"},null,-1)),Wn={props:{col:{type:Object,default(){return{description:"",tags:[],entry:"",author:"",depends:[],installed:!1,hasupdate:!1,title:"",time:"",release:1,website:"",name:"",version:""}}}},setup(e){const t=e,{$gettext:n,$ngettext:a}=R(),o=B(()=>t.col),l=H(),u=O.formatDate,i=p=>{const m=dt({title:n("updating plugin"),description:n("do not refresh this page during plugin installation/uninstallation"),clearText:n("closed"),valueText:"",callback:()=>{location.reload()}});T.upgradeApp(p).then(g=>{let C=g.stdout,v=g.stderr;g.code!==0?(m.addValue(`${v}`),m.addValue(`
+${n("update failed with error code")}: ${g.code}`)):(m.addValue(`${C}
+${v}`),m.addValue(`
+${n("the update is success, please close the current window")}`))}).catch(g=>{m.addValue(`${g}`),m.addValue(`
+${n("update failed with error code")}: ${500}`)}).finally(()=>{m.setDisabled(!0);try{window.L.ui.menu.flushCache()}catch(g){}})},c=p=>{const m=dt({title:n("installing plugin"),description:n("do not refresh this page during plugin installation/uninstallation"),clearText:n("closed"),valueText:"",callback:()=>{location.reload()}});T.increasingDownloadCount(p),l.dispatch("apps/incrAppDownload",{name:p}),T.installApp(p).then(g=>{let C=g.stdout,v=g.stderr;g.code!==0?(m.addValue(`${v}`),m.addValue(`
+${n("installation failed, error code")}: ${g.code}`)):(m.addValue(`${C}
+${v}`),m.addValue(`
+${n("installation is complete, please close the current window")}`))}).catch(g=>{m.addValue(`${g}`),m.addValue(`
+${n("installation failed, error code")}: ${500}`)}).finally(()=>{m.setDisabled(!0);try{window.L.ui.menu.flushCache()}catch(g){}})},h=p=>{if(!confirm(n("are you sure you want to uninstall %{name}?",{name:p})))return;const g=dt({title:n("uninstalling plugin"),description:n("do not refresh this page during plugin installation/uninstallation"),clearText:n("closed"),valueText:"",callback:()=>{location.reload()}});T.removeApp(p).then(C=>{let v=C.stdout,$=C.stderr;g.addValue(`${v}
+${$}`),g.addValue(`
+${n("uninstallation succeeded, please close the current window")}`)}).catch(C=>{g.addValue(`${C}`),g.addValue(`
+${n("uninstall failed, error code")}: ${500}`)}).finally(()=>{g.setDisabled(!0);try{window.L.ui.menu.flushCache()}catch(C){}})},y=p=>A(this,null,function*(){G.Start();try{(yield T.postStarApp(p))&&l.dispatch("apps/incrAppStar",{name:p})}catch(m){}G.Stop()}),k=()=>{M(n("you have already liked"))},P=p=>o.value.installed?`/luci-static/resources/app-icons/${p}.png`:o.value.icon?T.getStoreAppIcon(o.value.icon):`/luci-static/resources/app-icons/${p}.png`,V=p=>{switch(window.vue_lang){case"zh-cn":case"zh-tw":return p.title}return p.title_en||p.title},b=p=>{switch(window.vue_lang){case"zh-cn":case"zh-tw":return p.description}return p.description_en||p.description};return(p,m)=>{var v,$,w,x,F,tt,W,J,et,L,nt,at,vt,mt,wt;const g=rt("svg-star-off"),C=rt("svg-star-on");return d(),_("div",$n,[s("div",yn,[s("div",kn,[s("div",xn,[s("img",{alt:r(n)("Icon is gone")+"~",src:P(r(o).name)},null,8,Cn)]),s("div",Sn,[(d(!0),_(U,null,K(r(o).tags,q=>(d(),_(U,{key:q},[s("div",Ln,[s("span",null,f(r(At)(q)),1)]),An],64))),128))])]),s("div",Tn,[s("div",{class:"app-title",title:r(o).name},[s("span",In,f(V(r(o))),1),s("span",Dn,"v"+f(r(o).version),1)],8,En),s("div",Pn,[s("span",null,f(r(a)("%{ num } download","%{ num } downloads",(($=(v=r(o))==null?void 0:v.expand)==null?void 0:$.downloadCount)||0,{num:r(kt)((x=(w=r(o))==null?void 0:w.expand)==null?void 0:x.downloadCount)})),1),Bn,s("span",null,f(r(a)("%{ num } like","%{ num } likes",((tt=(F=r(o))==null?void 0:F.expand)==null?void 0:tt.starCount)||0,{num:r(kt)((J=(W=r(o))==null?void 0:W.expand)==null?void 0:J.starCount)})),1),((et=r(o))==null?void 0:et.expand)!=null?(d(),_(U,{key:0},[(nt=(L=r(o))==null?void 0:L.expand)!=null&&nt.isStar?(d(),_("a",{key:0,class:"star-btn",title:r(n)("liked"),onClick:m[0]||(m[0]=q=>k())},[N(g)],8,Vn)):(d(),_("a",{key:1,class:"star-btn",title:r(n)("like"),onClick:m[1]||(m[1]=q=>y(r(o).name))},[N(C)],8,Fn))],64)):z("",!0)]),s("div",{class:"app-description cbi-value-description",title:b(r(o))},[s("span",null,f(b(r(o))),1)],8,Mn),s("div",zn,[s("span",null,f(r(n)("author"))+": "+f(r(o).author||"null"),1)]),s("div",Un,[s("span",null,f(r(n)("update date"))+": "+f(r(u)(r(o).time*1e3)||"null"),1)])])]),s("div",On,[r(o).website?(d(),_("a",{key:0,class:"app-btn cbi-button cbi-button-apply",target:"_blank",href:r(o).website},f(r(n)("website")),9,Rn)):z("",!0),Nn,r(o).installed?(d(),_(U,{key:1},[((at=r(o))==null?void 0:at.curVersion)!=((vt=r(o))==null?void 0:vt.lastVersion)||((mt=r(o))==null?void 0:mt.curRelease)!=((wt=r(o))==null?void 0:wt.lastRelease)?(d(),_("a",{key:0,class:"app-btn cbi-button cbi-button-reload",onClick:m[2]||(m[2]=q=>i(r(o).name))},f(r(n)("upgrade")),1)):z("",!0),Gn,r(o).entry?(d(),_("a",{key:1,class:"app-btn cbi-button cbi-button-apply",href:r(o).entry},f(r(n)("open")),9,Hn)):z("",!0),Kn,s("a",{class:"app-btn cbi-button cbi-button-remove",onClick:m[3]||(m[3]=q=>h(r(o).name))},f(r(n)("uninstall")),1)],64)):(d(),_("a",{key:2,class:"app-btn cbi-button cbi-button-add",onClick:m[4]||(m[4]=q=>c(r(o).name))},f(r(n)("install")),1))])])}}};var Tt=E(Wn,[["__scopeId","data-v-42a2bb20"]]);const qn={class:"cbi-section"},Zn={class:"containers"},Yn={setup(e){const t=H(),n=B(()=>t.getters["apps/LocalApps"]);return(a,o)=>(d(),_("fieldset",qn,[s("div",Zn,[(d(!0),_(U,null,K(r(n),l=>(d(),X(Tt,{key:l.name,col:l},null,8,["col"]))),128))])]))}};var Jn=E(Yn,[["__scopeId","data-v-0046e0f2"]]);const Qn={class:"sort-container"},Xn={class:"sort-title"},jn={class:"sort-value"},ta=["value","onClick"],ea={setup(e){const{$gettext:t}=R(),n=S("default"),a=H(),o=S([{key:t("default"),value:"default"},{key:t("By download"),value:"download"},{key:t("By rating"),value:"star"}]),l=u=>{n.value=u,a.dispatch("apps/filterCurApps",{sort:u})};return(u,i)=>(d(),_("div",Qn,[s("div",Xn,f(r(t)("order"))+":",1),s("div",jn,[(d(!0),_(U,null,K(o.value,c=>(d(),_("input",{key:c.value,class:j(["cbi-button",{"cbi-button-apply":n.value==c.value}]),type:"button",value:c.key,onClick:h=>l(c.value)},null,10,ta))),128))])]))}};var na=E(ea,[["__scopeId","data-v-e3845a5c"]]);const aa={class:"tags-container"},oa={class:"tags-title"},sa={class:"tags-value"},ra=["value"],la=["value","onClick"],ca={setup(e){const{$gettext:t}=R(),n=S("default"),a=H(),o=B(()=>a.getters["tags/Tags"]),l=u=>{n.value=u,a.dispatch("apps/filterCurApps",{tag:u})};return(u,i)=>(d(),_("div",aa,[s("div",oa,f(r(t)("tag"))+": ",1),s("div",sa,[s("input",{class:j(["cbi-button",{"cbi-button-apply":n.value=="default"}]),type:"button",value:r(t)("default"),onClick:i[0]||(i[0]=c=>l("default"))},null,10,ra),(d(!0),_(U,null,K(r(o),c=>(d(),_("input",{key:c,class:j(["cbi-button",{"cbi-button-apply":n.value==c}]),type:"button",value:r(At)(c),onClick:h=>l(c)},null,10,la))),128))])]))}};var ia=E(ca,[["__scopeId","data-v-07bccc36"]]);const ua=["onSubmit"],da=["placeholder"],pa={setup(e){const{$gettext:t}=R(),n=S(""),a=H(),o=()=>{a.dispatch("apps/filterCurApps",{search:n.value})};return(l,u)=>{const i=rt("svg-search");return d(),_("form",{class:"search",onSubmit:Lt(o,["prevent"])},[s("a",{class:"search-btn",onClick:o},[N(i)]),ut(s("input",{type:"text",placeholder:r(t)("please enter the search keyword"),"onUpdate:modelValue":u[0]||(u[0]=c=>n.value=c)},null,8,da),[[St,n.value,void 0,{trim:!0}]])],40,ua)}}};var _a=E(pa,[["__scopeId","data-v-c4e8a9f2"]]);const ha={class:"containers"},ga={key:1,style:{margin:"10px 0","text-align":"center",width:"100%"}},fa={setup(e){const{$gettext:t}=R(),n=H(),a=B(()=>n.getters["apps/StoreApps"]),o=B(()=>n.state.apps.Load);return(l,u)=>(d(),_("div",ha,[r(o)?(d(!0),_(U,{key:0},K(r(a),i=>(d(),X(Tt,{key:i.name,col:i},null,8,["col"]))),128)):(d(),_("span",ga,f(r(t)("loading data"))+"...",1))]))}};var va=E(fa,[["__scopeId","data-v-1b494368"]]);const ma={class:"cbi-section"},wa={setup(e){return(t,n)=>(d(),_("fieldset",ma,[N(_a),N(ia),N(na),N(va)]))}};var ba=E(wa,[["__scopeId","data-v-74b0669f"]]);const $a=e=>(lt("data-v-9c880c04"),e=e(),ct(),e),ya={class:"cbi-section"},ka={class:"container_msg cbi-map-descr"},xa=["onSubmit"],Ca={class:"upload-file"},Sa={class:"button"},La=$a(()=>s("div",{class:"auto"},null,-1)),Aa={setup(e){const{$gettext:t}=R(),n=S(null),a=S(null);xt(()=>{if(n.value){const i=n.value;i.addEventListener("dragenter",c=>{(c.fromElement===null||!i.contains(c.fromElement))&&console.log("dragenter")},!1),i.addEventListener("dragleave",c=>{(c.fromElement===null||!i.contains(c.fromElement))&&console.log("dragleave")},!1),i.addEventListener("dragover",c=>{c.preventDefault(),c.dataTransfer.dropEffect="link"},!1),i.addEventListener("drop",c=>{console.log("drop"),c.preventDefault(),o(c)},!1)}});const o=i=>{const c=i.dataTransfer.files;if(c&&c.length>0){const h=c[0];u(h);return}},l=i=>{const c=i.target.files;if(c&&c.length>0){const h=c[0];u(h);return}},u=i=>{if(i.name.endsWith(".run")||i.name.endsWith(".ipk")){const c=dt({title:t("uploading plugin"),description:t("do not refresh this page during plugin installation/uninstallation"),clearText:t("closed"),valueText:"",callback:()=>{location.reload()}});let h=new FormData;h.append(i.name,i),T.uploadAppIPK(h).then(y=>{let k=y.stdout,P=y.stderr;c.addValue(`${k}
${P}`),c.addValue(`
${t("offline installation is successful, please close the current window")}`)}).catch(y=>{c.addValue(`${y}`),c.addValue(`
-${t("offline installation failed with error code")}: ${500}`)}).finally(()=>{c.setDisabled(!0);try{window.L.ui.menu.flushCache()}catch(y){}})}};return(i,c)=>{var h;return d(),_("fieldset",ya,[s("div",ka,[s("span",null,g(r(t)("offline install")),1),s("span",null,"\xB7 "+g(r(t)("from this page, you can upload plugin packages to install plugins")),1),s("span",null,"\xB7 "+g(r(t)("support .ipk plug-in, .run self-extracting format")),1)]),s("form",{onSubmit:Lt(u,["prevent"])},[s("div",{class:"flex",ref_key:"upl",ref:n},[s("label",Ca,[s("span",null,g(((h=a.value)==null?void 0:h.name)||r(t)("no files selected")),1),s("input",{type:"file",name:"file",accept:".ipk, .run",hidden:"",onChange:l},null,32),s("div",Sa,g(r(t)("select or drag and drop files")),1)]),La],512)],40,xa)])}}};var Ta=E(Aa,[["__scopeId","data-v-9c880c04"]]);const Ea={class:"cbi-section"},Ia={class:"webapp-container"},Da=["src"],Pa={setup(e){const t=B(()=>""),n=B(()=>""),a=B(()=>`${O.getIframeURL()}/#/apps?token=${n.value}&deviceId=${t.value}`);return(o,l)=>(d(),_("fieldset",Ea,[s("div",Ia,[s("iframe",{src:r(a),sandbox:"allow-scripts allow-same-origin allow-popups",seamless:""},null,8,Da)])]))}};var Ba=E(Pa,[["__scopeId","data-v-8e330954"]]);const Va={class:"log-containers"},Fa={key:0,class:"containers-tit"},Ma={key:1,class:"containers-tit"},za=["value"],Ua={key:1},Oa={setup(e){const{$gettext:t}=R(),n=H(),a=B(()=>n.state.version),o=B(()=>n.state.versionLoad),l=()=>{G.Start(`${t("updateing")}...`),T.selfUpdateIstore().then(({data:u})=>{if(u){const{stdout:i,stderr:c,code:h}=u;if(h==0){M(t("update success")),n.dispatch("istoreUpdated");return}else throw c||"unknown error"}throw"unknown error"}).catch(u=>{M(`${t("update error")}: ${u}`)}).finally(()=>{G.Stop()})};return(u,i)=>(d(),_("div",Va,[r(o)?(d(),_("div",Ma,[r(a)?(d(),_(U,{key:0},[s("span",null,g(r(t)("last version"))+":"+g(r(a)),1),s("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:i[0]||(i[0]=c=>l()),value:r(t)("click to update")},null,8,za)],64)):(d(),_("span",Ua,g(r(t)("the is last version"))+"...",1))])):(d(),_("div",Fa,g(r(t)("checking for latest version")),1))]))}};var Ra=E(Oa,[["__scopeId","data-v-8f2ad39a"]]),Na={namespaced:!0,state:{Load:!1,LocalApps:[],StoreApps:[],Expand:{},Cur:{tag:"default",sort:"default",search:"",limit:30,offset:0},LocalAppsMap:{},StoreAppsMap:{}},mutations:{setExpand(e,t){e.Expand=t},setLocalApps(e,t){e.LocalApps=t||[],t.forEach(n=>{e.LocalAppsMap[n.name]=n})},setStoreApps(e,t){e.StoreApps=t||[],t.forEach(n=>{e.StoreAppsMap[n.name]=n})},setCur(e,t){for(const n in t)Object.hasOwnProperty.call(t,n)&&(e.Cur[n]=t[n])}},getters:{Cur(e){return e.Cur},LocalApps(e){let t=[...e.LocalApps],n=e.Expand;for(let a=0;a{p.tags&&p.tags.forEach(b=>{b==a&&w.push(p)})}),t=w}let o=e.Cur.search;if(o){let w=[];t.forEach(p=>{let b=JSON.stringify(p);new RegExp(o,"i").test(b)&&w.push(p)}),t=w}let l=t.length;switch(e.Cur.sort){case"download":for(let w=0;w{n.forEach(a=>{a.installed=!0}),t("setLocalApps",n)})},getStoreApps(e,t){const{state:n,commit:a,dispatch:o}=e;let l=[];T.getStoreAppList(t).then(u=>{u.apps&&(u.apps.forEach(i=>{l.push(i.name)}),o("getStoreAppsExpand",l),a("setStoreApps",u.apps)),n.Load=!0}).catch(u=>{console.log(u)})},getStoreAppsExpand(e,t){const{commit:n}=e;T.getAppExpandData(t).then(a=>{a&&n("setExpand",a)})}}},Ga={namespaced:!0,state:{Tags:[],Total:0},mutations:{},getters:{Tags(e){return e.Tags},Total(e){return e.Total}},actions:{getTags(e){const{state:t,commit:n}=e;T.getStoreTags().then(a=>{t.Tags=(a==null?void 0:a.tags)||[],t.Total=(a==null?void 0:a.total)||0})}}},Ha={namespaced:!0,state:{status:!1,action:"install",content:"",end:!1,exitCode:void 0},mutations:{setStatus(e,t){e.status=t.status,e.action=(t==null?void 0:t.action)||"install",e.content=(t==null?void 0:t.content)||"",e.end=(t==null?void 0:t.end)||!1,e.exitCode=void 0},setContent(e,t){e.content=t},setEnd(e,t){e.end=!0,e.exitCode=t}},getters:{},actions:{}},st=Ot({state:{version:"",versionLoad:!1},mutations:{setVersion(e,t){e.version=t},setVersionLoad(e,t){e.versionLoad=t}},modules:{apps:Na,tags:Ga,log:Ha},actions:{getData(e){const{dispatch:t}=e;t("tags/getTags"),t("apps/getApps"),t("getVersion")},getVersion(e){return A(this,null,function*(){const{commit:t}=e;try{const n=yield T.updateIstore(),{code:a,msg:o}=n==null?void 0:n.data;a==200&&t("setVersion",o)}catch(n){console.log(n)}t("setVersionLoad",!0)})},istoreUpdated(e){const{commit:t}=e;t("setVersion","")}}}),ot={Start(e,t){st.commit("log/setStatus",{status:!0,action:e,content:""})},Stop(){st.commit("log/setStatus",{status:!1,action:"install",content:""})},Add(e){st.commit("log/setContent",e)},End(e){st.commit("log/setEnd",e)}};const Ka={class:"Lightweight"},Wa={class:"Lightweight-container"},qa={class:"model"},Za={class:"Lightweight-container1"},Ya={class:"container1-center"},Ja={class:"Lightweight-tit"},Qa={class:"Lightweight-backup"},Xa=["value"],ja=["value"],to={setup(e){const{$gettext:t}=R(),n=S(null),a=()=>{const i=t("backuping"),c=t("backup success"),h=t("backup fail"),y=t("click to download");G.Start(`${i}...`),T.lightBackup().then(k=>{if(k){const{msg:P,code:V}=k;if(V==200){M({content:`${c}\uFF0C${y}
`,keep:!0,html:!0});return}else throw P||"unknown error"}throw"unknown error"}).catch(k=>{M(`${h} : ${k}`)}).finally(()=>{G.Stop()})},o=i=>{const c=i.target.files;if(c&&c.length>0){const h=c[0];l(h);return}},l=i=>{let c=new FormData;c.append(i.name,i),ot.Start("upload"),T.lightRestore(c).then(h=>{let y=h.stdout,k=h.stderr;ot.Add(`${y}
-${k}`),ot.End(h.code)}).catch(h=>{ot.Add(h),ot.End(500)})},u=i=>{n.value.click(i),i.preventDefault()};return(i,c)=>(d(),_("div",Ka,[s("div",Wa,[s("div",qa,g(r(t)("explain")),1),s("div",Za,[s("div",Ya,[s("div",Ja,[s("span",null,"\xB7 "+g(r(t)("backup now will download a list of iStore installed software")),1),s("span",null,"\xB7 "+g(r(t)("upload software list and install from iStore when restoring backup")),1)]),s("div",Qa,[s("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:a,value:r(t)("backup now")},null,8,Xa),s("input",{type:"file",name:"file",accept:".tar, .gz",hidden:"",onChange:o,ref_key:"upl",ref:n},null,544),s("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:u,value:r(t)("restore backup")},null,8,ja)])])])])]))}};var eo=E(to,[["__scopeId","data-v-0f5d170b"]]);const no={class:"local"},ao={class:"local-container"},oo={class:"model"},so={class:"local-container1"},ro={class:"container1-center"},lo={class:"local-tit"},co={class:"local-device"},io={class:"local-input"},uo={value:"",disabled:""},po=["value"],_o={value:"-"},ho=["onKeyup","placeholder"],go={key:2,class:"local-btn"},fo=["value"],vo=["value"],mo={key:0,class:"device-list"},wo=["value"],bo=["value"],$o={setup(e){const{$gettext:t}=R(),n=t("backup now backs up installed software (unlimited installation sources) to external storage"),a=S([]),o=S("-");let l="-";const u=S(!1),i=S([]),c=S(""),h=S(""),y=S(),k=(v,$)=>{if(!($===""||$==="-"||v.find(m=>m.path===$))){let m;v.filter(x=>x.mount&&x.dev&&$.startsWith(x.mount)).forEach(x=>{m&&m.mount.length>x.mount.length||(m=x)}),v.push({path:$,size:m?m.size:void 0})}a.value=v,$!=="-"&&(o.value=$,P())};o.value=="-"&&(T.localBackupdirPath().then(v=>{if(v){const{code:$,msg:m}=v;$==200&&k(a.value,m)}}),T.getBlockDevices().then(v=>{if(v&&v.code==200){const $=v.data,m=[];for(let x in $){const F=$[x];F.mount&&F.mount!="/"&&F.mount!="/rom"&&F.mount!="/overlay"&&m.push(F)}m.forEach(x=>{x.path=x.mount+"/istore_backup"}),k(m,m.length>0&&o.value==="-"?"":o.value)}}));const P=v=>{u.value=!1,o.value==="-"?(l!="-"&&(h.value=l),y.value.focus()):l=o.value},V=v=>{h.value==""?l!="-"?o.value=l:o.value="":h.value.startsWith("/")?k(a.value,h.value):(M(t("please enter the path, give up the input, please clear the input box")),y.value.setSelectionRange(0,h.value.length),y.value.focus())},w=()=>o.value.length>1&&o.value.endsWith("/")?o.value.substring(0,o.value.length-1):o.value,p=()=>{let v=w();if(v==""){M(t("please fill in the external storage directory"));return}u.value=!1,T.backupFileList(v).then($=>{if($){const{code:m,msg:x}=$;if(m==200){let F=JSON.parse(x);F.length==0?(M(t("there are no backup files in this path")),u.value=!1):(i.value=F,u.value=!0);return}throw x||"unknown error"}throw"unknown error"}).catch($=>{M($)})},b=()=>{let v=w();if(v==""){M(t("please fill in the external storage directory"));return}G.Start(`${t("backuping")}...`),T.localBackup(v).then($=>{if($){const{msg:m,code:x,stderr:F}=$;if(x==0){M(t("backup success"));return}else throw x==500?m:F||"unknown error"}throw"unknown error"}).catch($=>{M(`${t("backup fail")}: ${$}`)}).finally(()=>{G.Stop()})},f=v=>o.value.endsWith("/")?o.value+v:o.value+"/"+v,C=()=>{if(c.value===""){M(t("please select a backup file to restore"));return}G.Start(`${t("restoring backup")}...`),T.localRestore(f(c.value)).then(v=>{if(v){const{msg:$,stderr:m,code:x}=v;if(x==0){M(t("the backup was restored success"));return}else throw $||m||"unknown error"}throw"unknown error"}).catch(v=>{M(`${t("the backup was restored fail")}: ${v}`)}).finally(()=>{G.Stop()})};return(v,$)=>(d(),_("div",no,[s("div",ao,[s("div",oo,g(r(t)("explain")),1),s("div",so,[s("div",ro,[s("div",lo,[s("span",null,"\xB7 "+g(r(t)(r(n))),1),s("span",null,"\xB7 "+g(r(t)("no internet required for recovery")),1)]),s("div",co,g(r(t)("external storage directory"))+" \uFF1A ",1),s("div",io,[o.value!="-"?ut((d(),_("select",{key:0,class:"local-input-field",onChange:P,"onUpdate:modelValue":$[0]||($[0]=m=>o.value=m)},[s("option",uo,g(r(t)("choose")),1),(d(!0),_(U,null,K(a.value,(m,x)=>(d(),_("option",{value:m.path,key:x},g(m.path+(m.size?"\uFF08"+m.size+"\uFF09":"")),9,po))),128)),s("option",_o,g(r(t)("customize")),1)],544)),[[yt,o.value,void 0,{trim:!0}]]):ut((d(),_("input",{key:1,class:"local-input-field",onBlur:V,onKeyup:Rt(V,["enter"]),placeholder:r(t)("please enter an absolute path starting with %{name}",{name:"/"}),type:"text","onUpdate:modelValue":$[1]||($[1]=m=>h.value=m),ref_key:"user_input",ref:y},null,40,ho)),[[St,h.value,void 0,{trim:!0}]]),o.value!="-"&&o.value!=""?(d(),_("div",go,[s("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:b,value:r(t)("backup now")},null,8,fo),s("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:p,value:r(t)("restore backup")},null,8,vo)])):z("",!0)]),u.value?(d(),_("div",mo,[s("div",null,g(r(t)("choose backup file"))+" \uFF1A",1),ut(s("select",{"onUpdate:modelValue":$[2]||($[2]=m=>c.value=m)},[(d(!0),_(U,null,K(i.value,m=>(d(),_("option",{key:m,value:m},g(m),9,wo))),128))],512),[[yt,c.value,void 0,{trim:!0}]]),s("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:C,value:r(t)("restore now")},null,8,bo)])):z("",!0)])])])]))}};var yo=E($o,[["__scopeId","data-v-745c433e"]]);const ko={class:"cbi-map"},xo={class:"cbi-section"},Co={class:"panel-title"},So={class:"cbi-section"},Lo={class:"panel-title"},Ao={class:"cbi-tabmenu"},To={onclick:"false",href:"#"},Eo={onclick:"false",href:"#"},Io={setup(e){const{$gettext:t}=R(),n=S(2);return(a,o)=>(d(),_("div",ko,[s("fieldset",xo,[s("span",Co,g(r(t)("upgrade"))+" iStore",1),N(Ra)]),s("fieldset",So,[s("span",Lo,g(r(t)("app backup")),1),s("ul",Ao,[s("li",{class:j(n.value==2?"cbi-tab":"cbi-tab-disabled"),onClick:o[0]||(o[0]=l=>n.value=2)},[s("a",To,g(r(t)("light backup")),1)],2),s("li",{class:j(n.value==3?"cbi-tab":"cbi-tab-disabled"),onClick:o[1]||(o[1]=l=>n.value=3)},[s("a",Eo,g(r(t)("local backup")),1)],2)]),n.value==2?(d(),X(eo,{key:0})):z("",!0),n.value==3?(d(),X(yo,{key:1})):z("",!0)])]))}};var Do=E(Io,[["__scopeId","data-v-1d5c62fe"]]);const Po=Nt({history:Gt(O.BasePage()),routes:[{path:"/",redirect:"/installed"},{path:"/installed",name:"Installed",component:Jn},{path:"/store",name:"Store",component:ba},{path:"/upload",name:"Upload",component:Ta},{path:"/webapps",name:"Webapps",component:Ba},{path:"/maintance",name:"Maintance",component:Do},{path:"/:pathMatch(.*)*",name:"notfound",redirect:"/"}]}),Bo={},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"},Fo=s("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),Mo=[Fo];function zo(e,t,n,a,o,l){return d(),_("svg",Vo,Mo)}var Uo=E(Bo,[["render",zo]]);const Oo={},Ro={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"},No=s("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),Go=[No];function Ho(e,t,n,a,o,l){return d(),_("svg",Ro,Go)}var Ko=E(Oo,[["render",Ho]]);const Wo={},qo={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"},Zo=s("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),Yo=[Zo];function Jo(e,t,n,a,o,l){return d(),_("svg",qo,Yo)}var Qo=E(Wo,[["render",Jo]]);const Q=gt(Ye);Q.component("svg-search",Uo);Q.component("svg-star-on",Ko);Q.component("svg-star-off",Qo);const Xo=()=>A(I,null,function*(){yield Kt(Q),Q.use(Po).use(st),Q.mount("#app")});Xo()});export default jo();
+${t("offline installation failed with error code")}: ${500}`)}).finally(()=>{c.setDisabled(!0);try{window.L.ui.menu.flushCache()}catch(y){}})}};return(i,c)=>{var h;return d(),_("fieldset",ya,[s("div",ka,[s("span",null,f(r(t)("offline install")),1),s("span",null,"\xB7 "+f(r(t)("from this page, you can upload plugin packages to install plugins")),1),s("span",null,"\xB7 "+f(r(t)("support .ipk plug-in, .run self-extracting format")),1)]),s("form",{onSubmit:Lt(u,["prevent"])},[s("div",{class:"flex",ref_key:"upl",ref:n},[s("label",Ca,[s("span",null,f(((h=a.value)==null?void 0:h.name)||r(t)("no files selected")),1),s("input",{type:"file",name:"file",accept:".ipk, .run",hidden:"",onChange:l},null,32),s("div",Sa,f(r(t)("select or drag and drop files")),1)]),La],512)],40,xa)])}}};var Ta=E(Aa,[["__scopeId","data-v-9c880c04"]]);const Ea={class:"cbi-section"},Ia={class:"webapp-container"},Da=["src"],Pa={setup(e){const t=B(()=>""),n=B(()=>""),a=B(()=>`${O.getIframeURL()}/#/apps?token=${n.value}&deviceId=${t.value}`);return(o,l)=>(d(),_("fieldset",Ea,[s("div",Ia,[s("iframe",{src:r(a),sandbox:"allow-scripts allow-same-origin allow-popups",seamless:""},null,8,Da)])]))}};var Ba=E(Pa,[["__scopeId","data-v-8e330954"]]);const Va={class:"log-containers"},Fa={key:0,class:"containers-tit"},Ma={key:1,class:"containers-tit"},za=["value"],Ua={key:1},Oa={setup(e){const{$gettext:t}=R(),n=H(),a=B(()=>n.state.version),o=B(()=>n.state.versionLoad),l=()=>{G.Start(`${t("updateing")}...`),T.selfUpdateIstore().then(({data:u})=>{if(u){const{stdout:i,stderr:c,code:h}=u;if(h==0){M(t("update success")),n.dispatch("istoreUpdated");return}else throw c||"unknown error"}throw"unknown error"}).catch(u=>{M(`${t("update error")}: ${u}`)}).finally(()=>{G.Stop()})};return(u,i)=>(d(),_("div",Va,[r(o)?(d(),_("div",Ma,[r(a)?(d(),_(U,{key:0},[s("span",null,f(r(t)("last version"))+":"+f(r(a)),1),s("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:i[0]||(i[0]=c=>l()),value:r(t)("click to update")},null,8,za)],64)):(d(),_("span",Ua,f(r(t)("the is last version"))+"...",1))])):(d(),_("div",Fa,f(r(t)("checking for latest version")),1))]))}};var Ra=E(Oa,[["__scopeId","data-v-8f2ad39a"]]),Na={namespaced:!0,state:{Load:!1,LocalApps:[],StoreApps:[],Expand:{},Cur:{tag:"default",sort:"default",search:"",limit:30,offset:0},LocalAppsMap:{},StoreAppsMap:{}},mutations:{setExpand(e,t){e.Expand=t},setLocalApps(e,t){e.LocalApps=t||[],t.forEach(n=>{e.LocalAppsMap[n.name]=n})},setStoreApps(e,t){e.StoreApps=t||[],t.forEach(n=>{e.StoreAppsMap[n.name]=n})},setCur(e,t){for(const n in t)Object.hasOwnProperty.call(t,n)&&(e.Cur[n]=t[n])}},getters:{Cur(e){return e.Cur},LocalApps(e){let t=[...e.LocalApps],n=e.Expand;for(let a=0;a{p.tags&&p.tags.forEach(m=>{m==a&&b.push(p)})}),t=b}let o=e.Cur.search;if(o){let b=[];t.forEach(p=>{let m=JSON.stringify(p);new RegExp(o,"i").test(m)&&b.push(p)}),t=b}let l=t.length;switch(e.Cur.sort){case"download":for(let b=0;b{n.forEach(a=>{a.installed=!0}),t("setLocalApps",n)})},getStoreApps(e,t){const{state:n,commit:a,dispatch:o}=e;let l=[];T.getStoreAppList(t).then(u=>{u.apps&&(u.apps.forEach(i=>{l.push(i.name)}),o("getStoreAppsExpand",l),a("setStoreApps",u.apps)),n.Load=!0}).catch(u=>{console.log(u)})},getStoreAppsExpand(e,t){const{commit:n}=e;T.getAppExpandData(t).then(a=>{a&&n("setExpand",a)})}}},Ga={namespaced:!0,state:{Tags:[],Total:0},mutations:{},getters:{Tags(e){return e.Tags},Total(e){return e.Total}},actions:{getTags(e){const{state:t,commit:n}=e;T.getStoreTags().then(a=>{t.Tags=(a==null?void 0:a.tags)||[],t.Total=(a==null?void 0:a.total)||0})}}},Ha={namespaced:!0,state:{status:!1,action:"install",content:"",end:!1,exitCode:void 0},mutations:{setStatus(e,t){e.status=t.status,e.action=(t==null?void 0:t.action)||"install",e.content=(t==null?void 0:t.content)||"",e.end=(t==null?void 0:t.end)||!1,e.exitCode=void 0},setContent(e,t){e.content=t},setEnd(e,t){e.end=!0,e.exitCode=t}},getters:{},actions:{}},st=Ot({state:{version:"",versionLoad:!1},mutations:{setVersion(e,t){e.version=t},setVersionLoad(e,t){e.versionLoad=t}},modules:{apps:Na,tags:Ga,log:Ha},actions:{getData(e){const{dispatch:t}=e;t("tags/getTags"),t("apps/getApps"),t("getVersion")},getVersion(e){return A(this,null,function*(){const{commit:t}=e;try{const n=yield T.updateIstore(),{code:a,msg:o}=n==null?void 0:n.data;a==200&&t("setVersion",o)}catch(n){console.log(n)}t("setVersionLoad",!0)})},istoreUpdated(e){const{commit:t}=e;t("setVersion","")}}}),ot={Start(e,t){st.commit("log/setStatus",{status:!0,action:e,content:""})},Stop(){st.commit("log/setStatus",{status:!1,action:"install",content:""})},Add(e){st.commit("log/setContent",e)},End(e){st.commit("log/setEnd",e)}};const Ka={class:"Lightweight"},Wa={class:"Lightweight-container"},qa={class:"model"},Za={class:"Lightweight-container1"},Ya={class:"container1-center"},Ja={class:"Lightweight-tit"},Qa={class:"Lightweight-backup"},Xa=["value"],ja=["value"],to={setup(e){const{$gettext:t}=R(),n=S(null),a=()=>{const i=t("backuping"),c=t("backup success"),h=t("backup fail"),y=t("click to download");G.Start(`${i}...`),T.lightBackup().then(k=>{if(k){const{msg:P,code:V}=k;if(V==200){M({content:`${c}\uFF0C${y}
`,keep:!0,html:!0});return}else throw P||"unknown error"}throw"unknown error"}).catch(k=>{M(`${h} : ${k}`)}).finally(()=>{G.Stop()})},o=i=>{const c=i.target.files;if(c&&c.length>0){const h=c[0];l(h);return}},l=i=>{let c=new FormData;c.append(i.name,i),ot.Start("upload"),T.lightRestore(c).then(h=>{let y=h.stdout,k=h.stderr;ot.Add(`${y}
+${k}`),ot.End(h.code)}).catch(h=>{ot.Add(h),ot.End(500)})},u=i=>{n.value.click(i),i.preventDefault()};return(i,c)=>(d(),_("div",Ka,[s("div",Wa,[s("div",qa,f(r(t)("explain")),1),s("div",Za,[s("div",Ya,[s("div",Ja,[s("span",null,"\xB7 "+f(r(t)("backup now will download a list of iStore installed software")),1),s("span",null,"\xB7 "+f(r(t)("upload software list and install from iStore when restoring backup")),1)]),s("div",Qa,[s("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:a,value:r(t)("backup now")},null,8,Xa),s("input",{type:"file",name:"file",accept:".tar, .gz",hidden:"",onChange:o,ref_key:"upl",ref:n},null,544),s("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:u,value:r(t)("restore backup")},null,8,ja)])])])])]))}};var eo=E(to,[["__scopeId","data-v-0f5d170b"]]);const no={class:"local"},ao={class:"local-container"},oo={class:"model"},so={class:"local-container1"},ro={class:"container1-center"},lo={class:"local-tit"},co={class:"local-device"},io={class:"local-input"},uo={value:"",disabled:""},po=["value"],_o={value:"-"},ho=["onKeyup","placeholder"],go={key:2,class:"local-btn"},fo=["value"],vo=["value"],mo={key:0,class:"device-list"},wo=["value"],bo=["value"],$o={setup(e){const{$gettext:t}=R(),n=t("backup now backs up installed software (unlimited installation sources) to external storage"),a=S([]),o=S("-");let l="-";const u=S(!1),i=S([]),c=S(""),h=S(""),y=S(),k=(v,$)=>{if(!($===""||$==="-"||v.find(w=>w.path===$))){let w;v.filter(x=>x.mount&&x.dev&&$.startsWith(x.mount)).forEach(x=>{w&&w.mount.length>x.mount.length||(w=x)}),v.push({path:$,size:w?w.size:void 0})}a.value=v,$!=="-"&&(o.value=$,P())};o.value=="-"&&(T.localBackupdirPath().then(v=>{if(v){const{code:$,msg:w}=v;$==200&&k(a.value,w)}}),T.getBlockDevices().then(v=>{if(v&&v.code==200){const $=v.data,w=[];for(let x in $){const F=$[x];F.mount&&F.mount!="/"&&F.mount!="/rom"&&F.mount!="/overlay"&&w.push(F)}w.forEach(x=>{x.path=x.mount+"/istore_backup"}),k(w,w.length>0&&o.value==="-"?"":o.value)}}));const P=v=>{u.value=!1,o.value==="-"?(l!="-"&&(h.value=l),y.value.focus()):l=o.value},V=v=>{h.value==""?l!="-"?o.value=l:o.value="":h.value.startsWith("/")?k(a.value,h.value):(M(t("please enter the path, give up the input, please clear the input box")),y.value.setSelectionRange(0,h.value.length),y.value.focus())},b=()=>o.value.length>1&&o.value.endsWith("/")?o.value.substring(0,o.value.length-1):o.value,p=()=>{let v=b();if(v==""){M(t("please fill in the external storage directory"));return}u.value=!1,T.backupFileList(v).then($=>{if($){const{code:w,msg:x}=$;if(w==200){let F=JSON.parse(x);F.length==0?(M(t("there are no backup files in this path")),u.value=!1):(i.value=F,u.value=!0);return}throw x||"unknown error"}throw"unknown error"}).catch($=>{M($)})},m=()=>{let v=b();if(v==""){M(t("please fill in the external storage directory"));return}G.Start(`${t("backuping")}...`),T.localBackup(v).then($=>{if($){const{msg:w,code:x,stderr:F}=$;if(x==0){M(t("backup success"));return}else throw x==500?w:F||"unknown error"}throw"unknown error"}).catch($=>{M(`${t("backup fail")}: ${$}`)}).finally(()=>{G.Stop()})},g=v=>o.value.endsWith("/")?o.value+v:o.value+"/"+v,C=()=>{if(c.value===""){M(t("please select a backup file to restore"));return}G.Start(`${t("restoring backup")}...`),T.localRestore(g(c.value)).then(v=>{if(v){const{msg:$,stderr:w,code:x}=v;if(x==0){M(t("the backup was restored success"));return}else throw $||w||"unknown error"}throw"unknown error"}).catch(v=>{M(`${t("the backup was restored fail")}: ${v}`)}).finally(()=>{G.Stop()})};return(v,$)=>(d(),_("div",no,[s("div",ao,[s("div",oo,f(r(t)("explain")),1),s("div",so,[s("div",ro,[s("div",lo,[s("span",null,"\xB7 "+f(r(t)(r(n))),1),s("span",null,"\xB7 "+f(r(t)("no internet required for recovery")),1)]),s("div",co,f(r(t)("external storage directory"))+" \uFF1A ",1),s("div",io,[o.value!="-"?ut((d(),_("select",{key:0,class:"local-input-field",onChange:P,"onUpdate:modelValue":$[0]||($[0]=w=>o.value=w)},[s("option",uo,f(r(t)("choose")),1),(d(!0),_(U,null,K(a.value,(w,x)=>(d(),_("option",{value:w.path,key:x},f(w.path+(w.size?"\uFF08"+w.size+"\uFF09":"")),9,po))),128)),s("option",_o,f(r(t)("customize")),1)],544)),[[yt,o.value,void 0,{trim:!0}]]):ut((d(),_("input",{key:1,class:"local-input-field",onBlur:V,onKeyup:Rt(V,["enter"]),placeholder:r(t)("please enter an absolute path starting with %{name}",{name:"/"}),type:"text","onUpdate:modelValue":$[1]||($[1]=w=>h.value=w),ref_key:"user_input",ref:y},null,40,ho)),[[St,h.value,void 0,{trim:!0}]]),o.value!="-"&&o.value!=""?(d(),_("div",go,[s("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:m,value:r(t)("backup now")},null,8,fo),s("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:p,value:r(t)("restore backup")},null,8,vo)])):z("",!0)]),u.value?(d(),_("div",mo,[s("div",null,f(r(t)("choose backup file"))+" \uFF1A",1),ut(s("select",{"onUpdate:modelValue":$[2]||($[2]=w=>c.value=w)},[(d(!0),_(U,null,K(i.value,w=>(d(),_("option",{key:w,value:w},f(w),9,wo))),128))],512),[[yt,c.value,void 0,{trim:!0}]]),s("input",{type:"button",class:"app-btn cbi-button cbi-button-apply",onClick:C,value:r(t)("restore now")},null,8,bo)])):z("",!0)])])])]))}};var yo=E($o,[["__scopeId","data-v-745c433e"]]);const ko={class:"cbi-map"},xo={class:"cbi-section"},Co={class:"panel-title"},So={class:"cbi-section"},Lo={class:"panel-title"},Ao={class:"cbi-tabmenu"},To={onclick:"false",href:"#"},Eo={onclick:"false",href:"#"},Io={setup(e){const{$gettext:t}=R(),n=S(2);return(a,o)=>(d(),_("div",ko,[s("fieldset",xo,[s("span",Co,f(r(t)("upgrade"))+" iStore",1),N(Ra)]),s("fieldset",So,[s("span",Lo,f(r(t)("app backup")),1),s("ul",Ao,[s("li",{class:j(n.value==2?"cbi-tab":"cbi-tab-disabled"),onClick:o[0]||(o[0]=l=>n.value=2)},[s("a",To,f(r(t)("light backup")),1)],2),s("li",{class:j(n.value==3?"cbi-tab":"cbi-tab-disabled"),onClick:o[1]||(o[1]=l=>n.value=3)},[s("a",Eo,f(r(t)("local backup")),1)],2)]),n.value==2?(d(),X(eo,{key:0})):z("",!0),n.value==3?(d(),X(yo,{key:1})):z("",!0)])]))}};var Do=E(Io,[["__scopeId","data-v-1d5c62fe"]]);const Po=Nt({history:Gt(O.BasePage()),routes:[{path:"/",redirect:"/installed"},{path:"/installed",name:"Installed",component:Jn},{path:"/store",name:"Store",component:ba},{path:"/upload",name:"Upload",component:Ta},{path:"/webapps",name:"Webapps",component:Ba},{path:"/maintance",name:"Maintance",component:Do},{path:"/:pathMatch(.*)*",name:"notfound",redirect:"/"}]}),Bo={},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"},Fo=s("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),Mo=[Fo];function zo(e,t,n,a,o,l){return d(),_("svg",Vo,Mo)}var Uo=E(Bo,[["render",zo]]);const Oo={},Ro={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"},No=s("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),Go=[No];function Ho(e,t,n,a,o,l){return d(),_("svg",Ro,Go)}var Ko=E(Oo,[["render",Ho]]);const Wo={},qo={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"},Zo=s("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),Yo=[Zo];function Jo(e,t,n,a,o,l){return d(),_("svg",qo,Yo)}var Qo=E(Wo,[["render",Jo]]);const Q=gt(Ye);Q.component("svg-search",Uo);Q.component("svg-star-on",Ko);Q.component("svg-star-off",Qo);const Xo=()=>A(I,null,function*(){yield Kt(Q),Q.use(Po).use(st),Q.mount("#app")});Xo()});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 40b45b767..1efc568e8 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 *{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}[lock-scroll=true]{overflow:hidden!important}#app *[data-v-6695545b]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.software-log_shade[data-v-6695545b]{width:100%;height:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;position:fixed;inset:0;z-index:99999}.software-log_shade .software-log_shade__bg[data-v-6695545b]{position:fixed;inset:0;background:rgba(68,79,83,.94) none repeat scroll 0 0!important;background-position:0 0;background-size:cover;opacity:.94}.software-log_shade .software-log_shade__pannel[data-v-6695545b]{width:800px;min-width:800px;border-radius:10px;z-index:100;box-shadow:3px 3px 10px #000;background:rgba(0,0,0,.9);padding:10px}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-title[data-v-6695545b]{text-align:center;font-size:18px;color:#9f0;padding:10px;font-weight:700}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-now i[data-v-6695545b]{color:#fc0;font-style:normal}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content[data-v-6695545b]{padding:10px;width:100%;text-align:center;overflow:hidden}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content textarea[data-v-6695545b]{width:100%;border:0px solid #222;font-family:Lucida Console;font-size:11px;background:transparent;color:#fff;outline:none;overflow-x:hidden;resize:none;transition:.5s}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content textarea[data-v-6695545b]:focus,.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content textarea[data-v-6695545b]:hover{box-shadow:none;border-color:#fff0!important}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content textarea[data-v-6695545b]::-webkit-scrollbar{width:5px;height:5px}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content textarea[data-v-6695545b]::-webkit-scrollbar-thumb{height:30px;outline:none;border:none;border-radius:1rem;background-color:#4c595c;-webkit-border-radius:1rem}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content textarea[data-v-6695545b]::-webkit-scrollbar-track-piece{background:none;-webkit-border-radius:0;border-radius:0}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-btn[data-v-6695545b]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-btn button[data-v-6695545b]{visibility:visible;min-width:88px;font-weight:bolder;text-shadow:1px 1px 0px black;border-radius:8px;height:33px;font-family:Verdana,Microsoft Yahei UI,sans-serif;font-size:12px;padding:0 .7em;width:auto;min-width:122px;margin:0 10px;cursor:pointer;background:#090a0a!important;border:1px solid #fff!important;color:#fff!important;opacity:1!important}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-btn button[data-v-6695545b]:hover{opacity:.9!important}#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-container[data-v-ed22959e]{flex:0 0 100%;max-width:calc(50% - 20px);padding:15px;background:#88888822;border-radius:.375rem;overflow:hidden;margin:10px}.app-container .app-info[data-v-ed22959e]{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-ed22959e]{flex:0 0 100%;max-width:150px}.app-container .app-info .app-f .app-icon[data-v-ed22959e]{width:100px;height:100px;margin:0 auto}.app-container .app-info .app-f .app-icon img[data-v-ed22959e]{max-width:100%}.app-container .app-info .app-f .app-tags[data-v-ed22959e]{width:100%;display:flex;align-items:center;padding:0 25px}.app-container .app-info .app-f .app-tags .tag[data-v-ed22959e]{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-ed22959e]{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-ed22959e]:last-child{display:none}.app-container .app-info .app-r[data-v-ed22959e]{flex:0 0 100%;max-width:calc(100% - 150px);padding:0 15px}.app-container .app-info .app-r .app-title[data-v-ed22959e]{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-ed22959e]{margin-left:10px;font-size:.8125rem}.app-container .app-info .app-r .app-as[data-v-ed22959e]{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-ed22959e]{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-ed22959e] svg path{fill:currentColor}.app-container .app-info .app-r .app-as .star-btn[data-v-ed22959e]:hover svg path{filter:invert(.6)}.app-container .app-info .app-r .app-description[data-v-ed22959e]{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-ed22959e]{-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-ed22959e],.app-container .app-info .app-r .app-date[data-v-ed22959e]{width:100%;height:20px;line-height:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.app-container .app-btns[data-v-ed22959e]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end}.app-container .app-btns .auto[data-v-ed22959e]{flex:auto}.app-container .app-btns .app-margin-left[data-v-ed22959e]{margin:0 5px}.app-container .app-btns .app-btn[data-v-ed22959e]{padding-top:5px;padding-bottom:5px;text-decoration:none}#app *[data-v-ed22959e]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}@media screen and (max-width: 768px){.app-container[data-v-ed22959e]{max-width:100%;margin:10px 0}}#app *[data-v-0046e0f2]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.cbi-section[data-v-0046e0f2]{padding:15px}.cbi-section .containers[data-v-0046e0f2]{width:100%;height:100%;display:flex;flex-wrap:wrap}#app *[data-v-e3845a5c]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.sort-container[data-v-e3845a5c]{display:flex;flex-wrap:wrap;align-items:flex-start;margin-bottom:10px}.sort-container .sort-title[data-v-e3845a5c]{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-e3845a5c]{display:flex;flex-wrap:wrap;flex:0 0 100%;max-width:calc(100% - 50px)}.sort-container .sort-value .cbi-button[data-v-e3845a5c]{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-1b494368]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.containers[data-v-1b494368]{width:100%;height:100%;display:flex;flex-wrap:wrap}#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-9c880c04]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.cbi-section[data-v-9c880c04]{padding:15px}.cbi-section .container_msg span[data-v-9c880c04]{display:block;width:100%;margin-bottom:5px}.cbi-section form[data-v-9c880c04]{width:100%;margin:30px 0}.cbi-section form .flex[data-v-9c880c04]{width:100%;display:flex;flex-wrap:wrap;align-items:center}.cbi-section form .flex label.upload-file[data-v-9c880c04]{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-9c880c04]{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-9c880c04]{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-9c880c04]{visibility:hidden}.cbi-section form .flex label.upload-file[data-v-9c880c04]:hover{opacity:.9}.cbi-section form button.upload-button[data-v-9c880c04]{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-9c880c04]: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-8f2ad39a]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.log-containers[data-v-8f2ad39a]{display:flex;flex-wrap:wrap}.log-containers .model[data-v-8f2ad39a]{width:100%;flex:0 0 100%;display:block;margin-left:18px;margin-top:18px}.log-containers .containers-tit[data-v-8f2ad39a]{margin:1rem 0;display:flex;align-items:center;align-content:center;padding-left:16px}.log-containers .containers-tit .app-btn[data-v-8f2ad39a]{margin-left:3rem}em[data-v-8f2ad39a]{width:100%;display:block;border-bottom:1px solid #eee;margin:1rem 0}#app *[data-v-0f5d170b]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.Lightweight[data-v-0f5d170b]{margin-top:20px;margin-left:18px}.Lightweight .Lightweight-container .model[data-v-0f5d170b]{margin-bottom:10px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-tit[data-v-0f5d170b]{margin-bottom:20px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-tit span[data-v-0f5d170b]{display:block;line-height:24px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-backup[data-v-0f5d170b]{display:flex}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-backup .app-btn[data-v-0f5d170b]{margin-left:14px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .upload-file[data-v-0f5d170b]{color:#000}input[hidden][data-v-0f5d170b]{display:none!important}#app *[data-v-745c433e]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.local[data-v-745c433e]{margin-top:20px}.local .local-container[data-v-745c433e]{margin-left:18px}.local .local-container .model[data-v-745c433e]{margin-bottom:10px}.local .local-container .local-container1[data-v-745c433e]{width:800px;height:400px}.local .local-container .local-container1 .container1-center[data-v-745c433e]{text-align:left}.local .local-container .local-container1 .container1-center .local-tit span[data-v-745c433e]{display:block;line-height:24px}.local .local-container .local-container1 .container1-center .local-device[data-v-745c433e]{margin-top:20px;margin-bottom:10px}.local .local-container .local-container1 .container1-center .local-input[data-v-745c433e]{display:flex;align-items:center}.local .local-container .local-container1 .container1-center .local-input .app-btn[data-v-745c433e]{margin-left:14px}.local .local-container .local-container1 .container1-center .local-input .local-input-field[data-v-745c433e]{width:20rem}.local .local-container .local-container1 .container1-center .list[data-v-745c433e]{margin-top:20px;margin-bottom:10px}.local .local-container .local-container1 .container1-center .select[data-v-745c433e]{flex:0 0 100%;max-width:100%}#app *[data-v-1d5c62fe]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.log-containers[data-v-1d5c62fe]{width:100%;overflow:auto;margin-top:20px}.log-containers .model[data-v-1d5c62fe]{margin-top:18px;margin-bottom:10px}.log-containers .app-btn[data-v-1d5c62fe]{height:30px;line-height:30px}.log-containers .tabs[data-v-1d5c62fe]{padding-left:0}.log-containers textarea[data-v-1d5c62fe]{font-family:Lucida Console;font-size:14px;outline:none;width:100%;margin:0;resize:none;border-radius:.8rem;padding:15px}
+#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 *{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}[lock-scroll=true]{overflow:hidden!important}#app *[data-v-6695545b]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.software-log_shade[data-v-6695545b]{width:100%;height:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;position:fixed;inset:0;z-index:99999}.software-log_shade .software-log_shade__bg[data-v-6695545b]{position:fixed;inset:0;background:rgba(68,79,83,.94) none repeat scroll 0 0!important;background-position:0 0;background-size:cover;opacity:.94}.software-log_shade .software-log_shade__pannel[data-v-6695545b]{width:800px;min-width:800px;border-radius:10px;z-index:100;box-shadow:3px 3px 10px #000;background:rgba(0,0,0,.9);padding:10px}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-title[data-v-6695545b]{text-align:center;font-size:18px;color:#9f0;padding:10px;font-weight:700}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-now i[data-v-6695545b]{color:#fc0;font-style:normal}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content[data-v-6695545b]{padding:10px;width:100%;text-align:center;overflow:hidden}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content textarea[data-v-6695545b]{width:100%;border:0px solid #222;font-family:Lucida Console;font-size:11px;background:transparent;color:#fff;outline:none;overflow-x:hidden;resize:none;transition:.5s}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content textarea[data-v-6695545b]:focus,.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content textarea[data-v-6695545b]:hover{box-shadow:none;border-color:#fff0!important}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content textarea[data-v-6695545b]::-webkit-scrollbar{width:5px;height:5px}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content textarea[data-v-6695545b]::-webkit-scrollbar-thumb{height:30px;outline:none;border:none;border-radius:1rem;background-color:#4c595c;-webkit-border-radius:1rem}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-content textarea[data-v-6695545b]::-webkit-scrollbar-track-piece{background:none;-webkit-border-radius:0;border-radius:0}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-btn[data-v-6695545b]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-btn button[data-v-6695545b]{visibility:visible;min-width:88px;font-weight:bolder;text-shadow:1px 1px 0px black;border-radius:8px;height:33px;font-family:Verdana,Microsoft Yahei UI,sans-serif;font-size:12px;padding:0 .7em;width:auto;min-width:122px;margin:0 10px;cursor:pointer;background:#090a0a!important;border:1px solid #fff!important;color:#fff!important;opacity:1!important}.software-log_shade .software-log_shade__pannel .software-log_shade__pannel-btn button[data-v-6695545b]:hover{opacity:.9!important}#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-container[data-v-42a2bb20]{flex:0 0 100%;max-width:calc(50% - 20px);padding:15px;background:#88888822;border-radius:.375rem;overflow:hidden;margin:10px}.app-container .app-info[data-v-42a2bb20]{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-42a2bb20]{flex:0 0 100%;max-width:150px}.app-container .app-info .app-f .app-icon[data-v-42a2bb20]{width:100px;height:100px;margin:0 auto}.app-container .app-info .app-f .app-icon img[data-v-42a2bb20]{max-width:100%}.app-container .app-info .app-f .app-tags[data-v-42a2bb20]{width:100%;display:flex;align-items:center;padding:0 25px}.app-container .app-info .app-f .app-tags .tag[data-v-42a2bb20]{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-42a2bb20]{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-42a2bb20]:last-child{display:none}.app-container .app-info .app-r[data-v-42a2bb20]{flex:0 0 100%;max-width:calc(100% - 150px);padding:0 15px}.app-container .app-info .app-r .app-title[data-v-42a2bb20]{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-42a2bb20]{margin-left:10px;font-size:.8125rem}.app-container .app-info .app-r .app-as[data-v-42a2bb20]{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-42a2bb20]{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-42a2bb20] svg path{fill:currentColor}.app-container .app-info .app-r .app-as .star-btn[data-v-42a2bb20]:hover svg path{filter:invert(.6)}.app-container .app-info .app-r .app-description[data-v-42a2bb20]{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-42a2bb20]{-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-42a2bb20],.app-container .app-info .app-r .app-date[data-v-42a2bb20]{width:100%;height:20px;line-height:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.app-container .app-btns[data-v-42a2bb20]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end}.app-container .app-btns .auto[data-v-42a2bb20]{flex:auto}.app-container .app-btns .app-margin-left[data-v-42a2bb20]{margin:0 5px}.app-container .app-btns .app-btn[data-v-42a2bb20]{padding-top:5px;padding-bottom:5px;text-decoration:none}#app *[data-v-42a2bb20]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}@media screen and (max-width: 768px){.app-container[data-v-42a2bb20]{max-width:100%;margin:10px 0}}#app *[data-v-0046e0f2]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.cbi-section[data-v-0046e0f2]{padding:15px}.cbi-section .containers[data-v-0046e0f2]{width:100%;height:100%;display:flex;flex-wrap:wrap}#app *[data-v-e3845a5c]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.sort-container[data-v-e3845a5c]{display:flex;flex-wrap:wrap;align-items:flex-start;margin-bottom:10px}.sort-container .sort-title[data-v-e3845a5c]{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-e3845a5c]{display:flex;flex-wrap:wrap;flex:0 0 100%;max-width:calc(100% - 50px)}.sort-container .sort-value .cbi-button[data-v-e3845a5c]{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-1b494368]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.containers[data-v-1b494368]{width:100%;height:100%;display:flex;flex-wrap:wrap}#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-9c880c04]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.cbi-section[data-v-9c880c04]{padding:15px}.cbi-section .container_msg span[data-v-9c880c04]{display:block;width:100%;margin-bottom:5px}.cbi-section form[data-v-9c880c04]{width:100%;margin:30px 0}.cbi-section form .flex[data-v-9c880c04]{width:100%;display:flex;flex-wrap:wrap;align-items:center}.cbi-section form .flex label.upload-file[data-v-9c880c04]{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-9c880c04]{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-9c880c04]{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-9c880c04]{visibility:hidden}.cbi-section form .flex label.upload-file[data-v-9c880c04]:hover{opacity:.9}.cbi-section form button.upload-button[data-v-9c880c04]{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-9c880c04]: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-8f2ad39a]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.log-containers[data-v-8f2ad39a]{display:flex;flex-wrap:wrap}.log-containers .model[data-v-8f2ad39a]{width:100%;flex:0 0 100%;display:block;margin-left:18px;margin-top:18px}.log-containers .containers-tit[data-v-8f2ad39a]{margin:1rem 0;display:flex;align-items:center;align-content:center;padding-left:16px}.log-containers .containers-tit .app-btn[data-v-8f2ad39a]{margin-left:3rem}em[data-v-8f2ad39a]{width:100%;display:block;border-bottom:1px solid #eee;margin:1rem 0}#app *[data-v-0f5d170b]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.Lightweight[data-v-0f5d170b]{margin-top:20px;margin-left:18px}.Lightweight .Lightweight-container .model[data-v-0f5d170b]{margin-bottom:10px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-tit[data-v-0f5d170b]{margin-bottom:20px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-tit span[data-v-0f5d170b]{display:block;line-height:24px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-backup[data-v-0f5d170b]{display:flex}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .Lightweight-backup .app-btn[data-v-0f5d170b]{margin-left:14px}.Lightweight .Lightweight-container .Lightweight-container1 .container1-center .upload-file[data-v-0f5d170b]{color:#000}input[hidden][data-v-0f5d170b]{display:none!important}#app *[data-v-745c433e]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.local[data-v-745c433e]{margin-top:20px}.local .local-container[data-v-745c433e]{margin-left:18px}.local .local-container .model[data-v-745c433e]{margin-bottom:10px}.local .local-container .local-container1[data-v-745c433e]{width:800px;height:400px}.local .local-container .local-container1 .container1-center[data-v-745c433e]{text-align:left}.local .local-container .local-container1 .container1-center .local-tit span[data-v-745c433e]{display:block;line-height:24px}.local .local-container .local-container1 .container1-center .local-device[data-v-745c433e]{margin-top:20px;margin-bottom:10px}.local .local-container .local-container1 .container1-center .local-input[data-v-745c433e]{display:flex;align-items:center}.local .local-container .local-container1 .container1-center .local-input .app-btn[data-v-745c433e]{margin-left:14px}.local .local-container .local-container1 .container1-center .local-input .local-input-field[data-v-745c433e]{width:20rem}.local .local-container .local-container1 .container1-center .list[data-v-745c433e]{margin-top:20px;margin-bottom:10px}.local .local-container .local-container1 .container1-center .select[data-v-745c433e]{flex:0 0 100%;max-width:100%}#app *[data-v-1d5c62fe]{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.log-containers[data-v-1d5c62fe]{width:100%;overflow:auto;margin-top:20px}.log-containers .model[data-v-1d5c62fe]{margin-top:18px;margin-bottom:10px}.log-containers .app-btn[data-v-1d5c62fe]{height:30px;line-height:30px}.log-containers .tabs[data-v-1d5c62fe]{padding-left:0}.log-containers textarea[data-v-1d5c62fe]{font-family:Lucida Console;font-size:14px;outline:none;width:100%;margin:0;resize:none;border-radius:.8rem;padding:15px}
diff --git a/luci-app-store/Makefile b/luci-app-store/Makefile
index 817427ecd..d85667bf8 100644
--- a/luci-app-store/Makefile
+++ b/luci-app-store/Makefile
@@ -10,13 +10,13 @@ LUCI_DESCRIPTION:=luci-app-store is a ipk store developed by LinkEase team
LUCI_DEPENDS:=+curl +opkg +luci-base +tar +coreutils +coreutils-stat +libuci-lua +mount-utils
LUCI_PKGARCH:=all
-PKG_VERSION:=0.1.10-5
+PKG_VERSION:=0.1.10-6
# PKG_RELEASE MUST be empty for luci.mk
PKG_RELEASE:=
ISTORE_UI_VERSION:=0.1.10
-ISTORE_UI_RELEASE:=5
-PKG_HASH:=edfc68554ae00c33bdee54abdbb93f4355747e8896117aed7671f89852dcc21e
+ISTORE_UI_RELEASE:=6
+PKG_HASH:=432b3ff7c9b80d2525a20c1d382f9824721e3fc92d9a18f37cfcdd9586e20889
PKG_SOURCE_URL_FILE:=v$(ISTORE_UI_VERSION)-$(ISTORE_UI_RELEASE).tar.gz
PKG_SOURCE:=istore-ui-$(PKG_SOURCE_URL_FILE)
diff --git a/my-default-settings/files/etc/uci-defaults/zz-n1-default-settings b/my-default-settings/files/etc/uci-defaults/zz-n1-default-settings
deleted file mode 100644
index 128a571a8..000000000
--- a/my-default-settings/files/etc/uci-defaults/zz-n1-default-settings
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/sh
-. /etc/openwrt_release
-if [[ "$DISTRIB_TARGET" == "armvirt/64" ]]; then
-version=`uci -q get base_config.@status[0].version`
-hostname=`uci -q get system.@system[0].hostname`
-test -n "${hostname}" || hostname="OpenWrt"
-
- wifi_setup_radio(){
- local radio=$1
- htmode="$(uci get wireless.${radio}.htmode)"
- local widx=0
- while uci rename wireless.@wifi-iface[$widx]=default_radio$widx >/dev/null 2>&1; do widx=$((widx+1)); done
- uci -q get wireless.${radio} >/dev/null 2>&1 && {
- uci -q del wireless.${radio}.disabled
- uci -q set wireless.${radio}.country='US'
-
- if [ "$(uci -q get wireless.${radio}.band)" = "5g" ]; then
- uci -q set wireless.default_${radio}.ssid="${SSID}_5G"
- if [[ "${htmode}" == HE* ]]; then # AX
- uci -q set wireless.${radio}.htmode="HE160"
- uci -q set wireless.${radio}.channel='44'
- else
- uci -q set wireless.${radio}.htmode="VHT80" #AC
- uci -q set wireless.${radio}.channel="157"
- fi
- else
- uci -q set wireless.${radio}.htmode="HT40"
- uci -q set wireless.${radio}.noscan='1'
- uci -q set wireless.${radio}.vendor_vht='1'
- uci -q set wireless.default_${radio}.ssid="${SSID}_2.4G"
- uci -q set wireless.${radio}.channel='auto'
- fi
- uci -q set wireless.default_${radio}.device="${radio}"
- if [ "${SSID_PASSWD}" ]; then
- uci -q set wireless.default_${radio}.encryption='psk2'
- uci -q set wireless.default_${radio}.key="${SSID_PASSWD}"
- else
- uci -q set wireless.default_${radio}.encryption='none'
- fi
- }
- }
-
-test $version -lt 3 && {
-uci set firewall.@defaults[0].flow_offloading='1'
-uci commit firewall
-
- [ -f /etc/config/wireless ] && {
- SSID=${hostname}
- SSID_PASSWD=""
- ( while ! cat /etc/config/wireless | grep "radio0"; do
- sleep 1
- done
- for radio in radio0 radio1 radio2 radio3; do
- wifi_setup_radio ${radio}
- done
- uci commit wireless
- wifi reload
- ) &
- }
-}
-
-uci -q set base_config.@status[0].version=3
-uci commit base_config
-fi