@elementspanel/epanel-plugin-market 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -5
- package/package.json +12 -3
- package/panel/backend/index.cjs +10933 -2495
- package/panel/frontend/assets/style-0-_panel-plugin-build-entry_market-aec0cd58.css +1 -0
- package/panel/frontend/panel-plugin-market-179fa00d.js +1 -0
- package/panel/plugin.json +1 -12
- package/panel/frontend/assets/style-0-_panel-plugin-build-entry_market-3c9e2953.css +0 -1
- package/panel/frontend/panel-plugin-market-5910dde0.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.plugin-detail[data-v-bb0914ed]{width:100%;min-width:0;overflow-wrap:anywhere}.plugin-detail[data-v-bb0914ed] .page-toolbar{margin-bottom:56px}.plugin-detail-container[data-v-bb0914ed]{max-width:var(--app-max-width);margin:0 auto;padding:20px 24px 32px}.plugin-detail-header[data-v-bb0914ed]{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:24px}.plugin-detail-heading[data-v-bb0914ed]{display:flex;gap:20px;flex:1 1 420px;min-width:0}.plugin-detail-icon[data-v-bb0914ed]{flex:0 0 auto;overflow:hidden}.plugin-detail-icon-image[data-v-bb0914ed]{width:100%;height:100%}.plugin-detail-heading-text[data-v-bb0914ed]{min-width:0}.plugin-detail-title[data-v-bb0914ed]{margin:0 0 8px;font-size:28px;font-weight:700;line-height:1.25}.plugin-detail-summary[data-v-bb0914ed]{margin:0 0 12px;font-size:15px;line-height:1.6;color:rgba(var(--v-theme-on-surface),.7)}.plugin-detail-meta[data-v-bb0914ed]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px;color:rgba(var(--v-theme-on-surface),.6)}.plugin-detail-author[data-v-bb0914ed]{display:inline-flex;align-items:center;gap:4px}.plugin-detail-category[data-v-bb0914ed]{padding:2px 8px;border-radius:4px;background:rgba(var(--v-theme-on-surface),.06)}.plugin-detail-action[data-v-bb0914ed]{flex:0 1 320px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;text-align:right}.plugin-detail-tabs[data-v-bb0914ed]{margin-bottom:24px}.plugin-detail-body[data-v-bb0914ed]{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:start}.plugin-detail-content[data-v-bb0914ed],.plugin-detail-sidebar[data-v-bb0914ed]{min-width:0}.plugin-detail-sidebar-section+.plugin-detail-sidebar-section[data-v-bb0914ed]{margin-top:28px}.plugin-detail-sidebar-title[data-v-bb0914ed]{margin:0 0 12px;font-size:15px;font-weight:700;color:rgb(var(--v-theme-on-surface))}.plugin-detail-tag[data-v-bb0914ed]{display:inline-block;padding:4px 10px;border-radius:6px;font-size:13px;background:rgba(var(--v-theme-on-surface),.06)}.plugin-detail-info[data-v-bb0914ed]{margin:0}.plugin-detail-info-row[data-v-bb0914ed]{display:flex;gap:12px;margin-bottom:8px;font-size:13px}.plugin-detail-info-row dt[data-v-bb0914ed]{flex:0 0 84px;color:rgba(var(--v-theme-on-surface),.6)}.plugin-detail-info-row dd[data-v-bb0914ed]{margin:0;min-width:0;overflow-wrap:anywhere}.plugin-detail-versions[data-v-bb0914ed]{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.plugin-detail-version[data-v-bb0914ed]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-radius:8px}.plugin-detail-version[data-v-bb0914ed]:hover{background:rgba(var(--v-theme-on-surface),.05)}.plugin-detail-version-text[data-v-bb0914ed]{display:flex;flex-direction:column;gap:6px;min-width:0}.plugin-detail-version-name[data-v-bb0914ed]{font-size:15px;font-weight:600;color:rgb(var(--v-theme-on-surface))}.plugin-detail-version-meta[data-v-bb0914ed]{font-size:12px;color:rgba(var(--v-theme-on-surface),.6)}.plugin-detail-update+.plugin-detail-update[data-v-bb0914ed]{margin-top:28px;padding-top:28px;border-top:1px solid rgba(var(--v-theme-on-surface),.12)}.plugin-detail-update-head[data-v-bb0914ed]{display:flex;align-items:baseline;gap:12px;margin:0 0 12px}.plugin-detail-update-version[data-v-bb0914ed]{font-size:15px;font-weight:700;color:rgb(var(--v-theme-on-surface))}.plugin-detail-update-date[data-v-bb0914ed]{font-size:12px;color:rgba(var(--v-theme-on-surface),.6)}.plugin-detail-empty[data-v-bb0914ed]{margin:0;color:rgba(var(--v-theme-on-surface),.6)}.plugin-detail-markdown[data-v-bb0914ed]{overflow-x:auto}.plugin-detail-markdown[data-v-bb0914ed] img{max-width:100%;height:auto}.plugin-detail-markdown[data-v-bb0914ed] pre{overflow-x:auto}@media (max-width: 992px){.plugin-detail:not(.plugin-detail--embedded) .plugin-detail-container[data-v-bb0914ed]{padding:16px 12px 28px}.plugin-detail:not(.plugin-detail--embedded) .plugin-detail-body[data-v-bb0914ed]{grid-template-columns:minmax(0,1fr);gap:28px}.plugin-detail:not(.plugin-detail--embedded) .plugin-detail-title[data-v-bb0914ed]{font-size:22px}.plugin-detail:not(.plugin-detail--embedded) .plugin-detail-action[data-v-bb0914ed]{align-items:flex-start;text-align:left}}.plugin-detail--embedded[data-v-bb0914ed]{height:100%;min-height:0;overflow-y:auto;container-type:inline-size}.plugin-detail--embedded .plugin-detail-container[data-v-bb0914ed]{max-width:none;padding:20px}.plugin-detail--embedded[data-v-bb0914ed] .page-toolbar{margin-bottom:24px}.plugin-detail--embedded[data-v-bb0914ed] .page-toolbar-title{flex:1 1 180px;font-size:18px}.plugin-detail--embedded[data-v-bb0914ed] .page-toolbar-actions{flex:1 1 260px;justify-content:flex-end}@container (max-width: 820px){.plugin-detail--embedded .plugin-detail-body[data-v-bb0914ed]{grid-template-columns:minmax(0,1fr);gap:28px}.plugin-detail--embedded .plugin-detail-title[data-v-bb0914ed]{font-size:22px}.plugin-detail--embedded .plugin-detail-action[data-v-bb0914ed]{align-items:flex-start;text-align:left}}.plugin-market[data-v-a5e49fbf]{width:100%;min-height:100%;min-width:0;box-sizing:border-box;overflow-x:hidden}.plugin-market-container[data-v-a5e49fbf]{width:100%;min-width:0;max-width:var(--app-max-width);margin:0 auto;box-sizing:border-box;padding:20px 24px 32px}.plugin-market-card[data-v-a5e49fbf]{display:flex;flex-direction:column;padding:12px 8px}.plugin-market-card-content[data-v-a5e49fbf]{flex:1 0 auto}.plugin-market-card-head[data-v-a5e49fbf]{display:flex;align-items:center;gap:12px;margin-bottom:12px}.plugin-market-card-heading[data-v-a5e49fbf]{min-width:0;overflow-wrap:anywhere}.plugin-market-icon[data-v-a5e49fbf]{flex-shrink:0;overflow:hidden}.plugin-market-icon-image[data-v-a5e49fbf]{width:100%;height:100%}.plugin-market-card-summary[data-v-a5e49fbf]{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.5;text-overflow:ellipsis}.plugin-market-card-actions[data-v-a5e49fbf]{flex-wrap:wrap;gap:8px;align-items:center;padding-top:8px}.plugin-market-empty[data-v-a5e49fbf]{min-height:38vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:48px 24px;text-align:center;color:var(--color-gray-7)}.plugin-market-empty-icon[data-v-a5e49fbf]{margin-bottom:8px;color:var(--color-gray-6)}.plugin-market-empty-title[data-v-a5e49fbf]{color:var(--color-gray-8);font-size:1rem;font-weight:600}.plugin-market-empty--filtered[data-v-a5e49fbf]{min-height:28vh}@media (max-width: 992px){.plugin-market-container[data-v-a5e49fbf]{padding:16px 12px 28px}}.plugin-market--embedded[data-v-a5e49fbf]{height:100%;min-height:0;overflow-y:auto}.plugin-market--embedded .plugin-market-container[data-v-a5e49fbf]{max-width:none;padding:20px}.plugin-market--embedded .plugin-market-grid[data-v-a5e49fbf]{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:20px}.plugin-market--embedded[data-v-a5e49fbf] .page-toolbar{margin-bottom:24px;gap:12px}.plugin-market--embedded[data-v-a5e49fbf] .page-toolbar-title{flex:1 1 200px;font-size:18px}.plugin-market--embedded[data-v-a5e49fbf] .page-toolbar-search{flex:1 1 240px}.plugin-market--embedded[data-v-a5e49fbf] .page-toolbar-actions{flex:0 0 auto;justify-content:flex-end}.desktop-plugin-market[data-v-3ed0f56c]{width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;color:var(--desktop-window-text)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as E,g as x_}from"../../../assets/i18n-e810b9fa.js";import{u as z_}from"../../../assets/useAppStateStore-a438b9a6.js";import{bu as m_,bz as r,bC as q_,a1 as T_,b5 as __,aE as R,Q as K,O as d,bJ as _,gY as N_,P as X,R as t,ba as o,_ as $,bP as n,gC as F,$ as O,gz as D_,gA as I_,gZ as G_,gB as t_,gL as R_,gD as C_,F as j,aK as e_,N as h,gW as P_,au as K_,t as d_,gS as X_,gR as u_,h4 as p_,br as j_,h5 as v_,h6 as g_,gE as A_,h7 as Z_,h8 as U_,h3 as f_,bM as V_,ay as Q_,gK as J_,gF as _T,gG as TT,bc as ET,s as eT,c9 as NT,ca as AT}from"../../../assets/vue-6b52a630.js";import{P as b_}from"../../../assets/PageToolbar-7130e13d.js";import{m as S_}from"../../../assets/safe-87846d89.js";import{u as E_,m as H,g as J}from"../../../assets/useDefineApi-b726db1e.js";import{c as L_}from"../../../assets/context-cc90576e.js";import{_ as c_}from"../../../assets/_plugin-vue_export-helper-c27b6911.js";import"../../../assets/lodash-001e4f93.js";import"../../../assets/htmlparser2-bcb8f9db.js";import"../../../assets/_elements-sdk_cordis-e3bebc89.js";import"../../../assets/_elements-sdk_cosmokit-e4842f5c.js";const nT=E_({url:"/api/market/plugin/list",method:"GET"}),DT=E_({url:"/api/market/plugin/icon",method:"GET"}),h_=E_({url:"/api/market/plugin/detail",method:"GET"}),k_=E_({url:"/api/market/plugin/installed",method:"GET"}),IT=E_({url:"/api/market/plugin/nodes",method:"GET"}),tT=E_({url:"/api/market/plugin/package",method:"GET"}),F_=E_({url:"/api/market/plugin/install",method:"POST"}),B_=E_({url:"/api/market/plugin/uninstall",method:"DELETE"});function y_(){const I=r(Object.create(null)),s=new Map;let D=!1;async function l(L,C){var M;try{const{execute:U}=DT(),i=await U({params:{pluginId:L,version:C.version},signal:C.controller.signal});if(D||C.controller.signal.aborted||s.get(L)!==C)return;const g=(M=i.value)==null?void 0:M.dataUrl;typeof g=="string"&&g&&(C.dataUrl=g,I.value[L]=g)}catch{}}function e(L,C,M){if(D)return Promise.resolve();const U=s.get(L);if(C&&U&&U.version===M){if(U.dataUrl)return Promise.resolve();if(U.pending)return U.pending}if(U==null||U.controller.abort(),s.delete(L),delete I.value[L],!C)return Promise.resolve();const i={version:M,controller:new AbortController};return s.set(L,i),i.pending=l(L,i).finally(()=>{i.pending=void 0}),i.pending}return m_(()=>{D=!0,s.forEach(L=>L.controller.abort()),s.clear(),I.value=Object.create(null)}),{icons:I,load:e}}const n_=r(!1),W=r([]),b=r(!1),O_=r(0),o_=q_();function l_(I,s){o_.value={pluginId:I,version:s}}function $_(I){W.value=[...W.value.filter(s=>s.plugin.id!==I.plugin.id),{...I,plugin:{...I.plugin},daemonIds:[...I.daemonIds]}]}function H_(I){b.value||(W.value=W.value.filter(s=>s.plugin.id!==I))}async function RT(){if(b.value||O_.value)return[];b.value=!0;const I=[];try{for(const s of[...W.value])try{const D=s.kind==="install"?await F_().execute({timeout:(s.daemonIds.length+1)*11*60*1e3,data:{pluginId:s.plugin.id,name:s.plugin.name,version:s.version,daemonIds:s.daemonIds}}):await B_().execute({timeout:(s.daemonIds.length+1)*11*60*1e3,params:{pluginId:s.plugin.id,daemonIds:s.daemonIds.join(","),...s.removeConfig?{removeConfig:!0}:{}}});if(!D.value)throw new Error("Empty plugin operation response");const{failedNodes:l,installedVersion:e,restartRequired:L}=D.value;l_(s.plugin.id,e),W.value=W.value.flatMap(C=>C.plugin.id!==s.plugin.id?[C]:l.length?[{...s,daemonIds:l}]:[]),I.push({change:s,failedNodes:l,restartRequired:L})}catch(D){I.push({change:s,error:D,failedNodes:[],restartRequired:!1})}return await L_.plugins.refresh().catch(s=>console.error("Failed to refresh plugins:",s)),I}finally{b.value=!1}}function LT(I,s){const D=L=>{var M;const C=/^v?(\d+(?:\.\d+){0,2})(?:-([\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*))?(?:\+[\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*)?$/.exec(L.trim());return C&&{core:C[1].split("."),pre:(M=C[2])==null?void 0:M.split(".")}},l=D(I),e=D(s);if(!l||!e)return!1;for(let L=0;L<3;L++){const C=BigInt(l.core[L]||"0"),M=BigInt(e.core[L]||"0");if(C!==M)return C>M}if(!l.pre||!e.pre)return!l.pre&&!!e.pre;for(let L=0;L<Math.max(l.pre.length,e.pre.length);L++){const C=l.pre[L],M=e.pre[L];if(C===void 0||M===void 0)return M===void 0;if(C===M)continue;const U=/^\d+$/.test(C),i=/^\d+$/.test(M);if(U&&i){if(BigInt(C)!==BigInt(M))return BigInt(C)>BigInt(M)}else return U!==i?!U:C>M}return!1}const OT={class:"d-flex flex-wrap ga-2"},sT={class:"text-caption text-medium-emphasis mt-2"},CT={class:"mb-2"},PT=T_({__name:"PluginMarketOperations",props:{plugin:{},version:{},installOnly:{type:Boolean},allowVersionChange:{type:Boolean},disabled:{type:Boolean}},emits:["installed","busy","staged"],setup(I,{emit:s}){const D=I,l=s,e=r(""),L=h(()=>!!(D.version&&!D.plugin.installedVersion)),C=h(()=>!!(!D.installOnly&&D.version&&D.plugin.installedVersion&&D.plugin.installedRemovable!==!1&&(D.allowVersionChange?D.version.version!==D.plugin.installedVersion||D.plugin.installedState==="failed":LT(D.version.version,D.plugin.installedVersion)))),M=h(()=>{var P;return Object.values(((P=D.version)==null?void 0:P.compatibility)||{}).some(T=>T&&(T.api!==1||T.sdk!==void 0&&T.sdk!==1))});let U=!1;const i=r(null),g=r(!1),B=h({get:()=>i.value!==null,set:P=>{P||(i.value=null)}}),y=r([]),Y=r([]),x=r(!1),w=r("install"),u=r(null),c=h({get:()=>u.value!==null,set:P=>{P||(u.value=null)}});function f(P){const T=P.port?`${P.ip}:${P.port}`:P.ip,N=P.available?"":` · ${E("TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE")}`;return`${P.remarks||P.ip}(${T})${N}`}function G(P){return P.map(T=>{const N=y.value.find(A=>A.daemonId===T);return N?N.remarks||N.ip:T})}async function k(){const{execute:P}=IT();return(await P()).value??[]}async function S(P){var A,a;const{execute:T}=tT();return((a=(await T({params:{pluginId:P.id,version:(A=P.latestVersion)==null?void 0:A.version}})).value)==null?void 0:a.sides)??[]}function p(P,T,N,A){y.value=N,Y.value=N.map(a=>a.daemonId),w.value=T,x.value=A,u.value=P}function q(){const P=u.value;if(!P||U||e.value)return;const T=[...Y.value];x.value&&!T.length||(e.value=P.id,u.value=null,w.value==="install"?m(P,T):s_(P,T))}async function z(P=!1){if(U||D.disabled||b.value||M.value||Z.value||!D.version||!L.value&&!C.value&&!P||D.plugin.installedVersion&&D.plugin.installedRemovable===!1)return;const T={...D.plugin,latestVersion:D.version};e.value=T.id;try{const N=await S(T);if(U)return;const A=N.includes("daemon")&&!N.includes("panel"),a=N.includes("daemon")?await k():[];if(U)return;if(a.length)return p(T,"install",a,A);if(A)return H.error(E("TXT_CODE_2de92a5d"));await m(T,[])}catch(N){U||H.error(J(N))}finally{e.value=""}}async function m(P,T){var N,A;if(n_.value){$_({plugin:P,kind:"install",version:(N=P.latestVersion)==null?void 0:N.version,daemonIds:T}),e.value="",l("staged");return}e.value=P.id;try{const{execute:a}=F_(),v=await a({timeout:(T.length+1)*11*60*1e3,data:{pluginId:P.id,name:P.name,version:(A=P.latestVersion)==null?void 0:A.version,daemonIds:T}});if(U)return;if(!v.value)throw new Error(E("TXT_CODE_PLUGIN_MARKET_UNREACHABLE"));await L_.plugins.refresh().catch(Q=>console.error("Failed to refresh plugins:",Q)),l("installed",P.id,v.value.installedVersion),l_(P.id,v.value.installedVersion);const V=v.value.failedNodes;V.length?H.error(E("TXT_CODE_PLUGIN_MARKET_NODE_FAILED",{nodes:G(V).join("、")})):H.success(E("TXT_CODE_PLUGIN_MARKET_INSTALLED")),v.value.restartRequired&&H.warning(E("TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED"))}catch(a){U||H.error(J(a))}finally{e.value=""}}async function a_(P=i.value){var T;if(!(!P||U||e.value||u.value||D.disabled&&!i.value)){e.value=P.id,i.value=null;try{const{execute:N}=k_(),A=(T=(await N()).value)==null?void 0:T.find(a=>a.pluginId===P.id);if(U)return;if(A!=null&&A.daemonIds.length){const a=await k();if(U)return;const v=A.daemonIds.map(V=>a.find(Q=>Q.daemonId===V)??{daemonId:V,remarks:"",ip:V,port:0,available:!1});return p(P,"uninstall",v,!A.sides.includes("panel"))}await s_(P,[])}catch(N){U||H.error(J(N))}finally{e.value=""}}}async function s_(P,T){if(n_.value){$_({plugin:P,kind:"uninstall",daemonIds:T,removeConfig:g.value}),e.value="",l("staged");return}e.value=P.id;try{const{execute:N}=B_(),A=await N({timeout:(T.length+1)*11*60*1e3,params:{pluginId:P.id,daemonIds:T.join(","),...g.value?{removeConfig:!0}:{}}});if(U)return;if(!A.value)throw new Error(E("TXT_CODE_PLUGIN_MARKET_UNREACHABLE"));await L_.plugins.refresh().catch(v=>console.error("Failed to refresh plugins:",v)),l("installed",P.id,A.value.installedVersion),l_(P.id,A.value.installedVersion);const a=A.value.failedNodes;a.length?H.error(E("TXT_CODE_PLUGIN_MARKET_NODE_FAILED",{nodes:G(a).join("、")})):A.value.removed?H.success(E("TXT_CODE_PLUGIN_MARKET_UNINSTALLED")):H.warning(E("TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING")),A.value.restartRequired&&H.warning(E("TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED"))}catch(N){U||H.error(J(N))}finally{e.value=""}}const Z=h(()=>!!(e.value||u.value||i.value));return __(Z,P=>l("busy",P),{flush:"sync"}),__(Z,P=>O_.value+=P?1:-1,{flush:"sync"}),m_(()=>{U=!0,Z.value&&O_.value--,Z.value&&l("busy",!1)}),(P,T)=>{var N,A;return R(),K(j,null,[M.value?(R(),d(_(N_),{key:0,type:"warning",variant:"tonal",text:_(E)("TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE")},null,8,["text"])):X("",!0),t("div",null,[t("div",OT,[L.value?(R(),d(_(F),{key:0,color:"primary","prepend-icon":"mdi-download",loading:!!e.value,disabled:Z.value||I.disabled||_(b)||M.value,onClick:T[0]||(T[0]=a=>z())},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_INSTALL")),1)]),_:1},8,["loading","disabled"])):X("",!0),I.plugin.installedVersion&&!I.installOnly&&I.plugin.installedRemovable!==!1?(R(),d(_(F),{key:1,color:"error",variant:"text",disabled:Z.value||I.disabled||_(b),onClick:T[1]||(T[1]=a=>i.value={...I.plugin})},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_UNINSTALL")),1)]),_:1},8,["disabled"])):X("",!0),I.plugin.installedVersion&&!I.installOnly?(R(),d(_(F),{key:2,color:"primary","prepend-icon":"mdi-update",loading:!!e.value,disabled:!C.value||Z.value||I.disabled||_(b)||M.value,onClick:T[2]||(T[2]=a=>z())},{default:o(()=>[$(n(_(E)(I.plugin.installedState==="failed"?"TXT_CODE_PLUGIN_MARKET_REPAIR":"TXT_CODE_40ca4f2")),1)]),_:1},8,["loading","disabled"])):X("",!0),I.allowVersionChange&&I.plugin.installedVersion&&((A=(N=I.version)==null?void 0:N.sides)!=null&&A.includes("daemon"))&&I.plugin.installedRemovable!==!1?(R(),d(_(F),{key:3,variant:"text",disabled:Z.value||I.disabled||_(b)||M.value,onClick:T[3]||(T[3]=a=>z(!0))},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES")),1)]),_:1},8,["disabled"])):X("",!0)]),O(_(C_),{modelValue:B.value,"onUpdate:modelValue":T[7]||(T[7]=a=>B.value=a),"max-width":"420"},{default:o(()=>[O(_(D_),{title:_(E)("TXT_CODE_PLUGIN_MARKET_UNINSTALL")},{default:o(()=>[O(_(I_),null,{default:o(()=>{var a;return[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL",{name:((a=i.value)==null?void 0:a.displayName)??""}))+" ",1),O(_(G_),{modelValue:g.value,"onUpdate:modelValue":T[4]||(T[4]=v=>g.value=v),label:_(E)("TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG"),"hide-details":""},null,8,["modelValue","label"]),t("p",sT,n(_(E)("TXT_CODE_PLUGIN_MARKET_KEEP_DATA")),1)]}),_:1}),O(_(t_),null,{default:o(()=>[O(_(R_)),O(_(F),{variant:"text",onClick:T[5]||(T[5]=a=>i.value=null)},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_CANCEL")),1)]),_:1}),O(_(F),{color:"error",onClick:T[6]||(T[6]=a=>a_())},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_UNINSTALL")),1)]),_:1})]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]),O(_(C_),{modelValue:c.value,"onUpdate:modelValue":T[10]||(T[10]=a=>c.value=a),"max-width":"480"},{default:o(()=>[O(_(D_),{title:_(E)("TXT_CODE_PLUGIN_MARKET_SELECT_NODES")},{default:o(()=>[O(_(I_),null,{default:o(()=>[t("div",CT,n(w.value==="install"?_(E)("TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL"):_(E)("TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL")),1),(R(!0),K(j,null,e_(y.value,a=>(R(),d(_(G_),{key:a.daemonId,modelValue:Y.value,"onUpdate:modelValue":T[8]||(T[8]=v=>Y.value=v),value:a.daemonId,label:f(a),density:"compact","hide-details":""},null,8,["modelValue","value","label"]))),128))]),_:1}),O(_(t_),null,{default:o(()=>[O(_(R_)),O(_(F),{variant:"text",onClick:T[9]||(T[9]=a=>u.value=null)},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_CANCEL")),1)]),_:1}),O(_(F),{color:"primary",disabled:x.value&&!Y.value.length,onClick:q},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_CONFIRM")),1)]),_:1},8,["disabled"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])])],64)}}});function oT(I){const s=(I==null?void 0:I.includes("panel"))??!1,D=(I==null?void 0:I.includes("daemon"))??!1;if(s&&D)return"TXT_CODE_PLUGIN_MARKET_SIDE_BOTH";if(s)return"TXT_CODE_PLUGIN_MARKET_SIDE_PANEL";if(D)return"TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON"}const r_=T_({__name:"PluginMarketSideBadge",props:{sides:{}},setup(I){const s=I,D=h(()=>{const l=oT(s.sides);return l?E(l):void 0});return(l,e)=>D.value?(R(),d(_(P_),{key:0,size:"small",variant:"tonal",color:"primary"},{default:o(()=>[$(n(D.value),1)]),_:1})):X("",!0)}}),aT={class:"text-body-2 text-medium-emphasis mb-4"},UT={key:2,class:"mb-4"},MT={class:"text-caption text-medium-emphasis my-3"},GT={key:7,class:"text-caption text-medium-emphasis mb-4"},i_=T_({__name:"PluginMarketInstall",props:{plugin:{},version:{},installOnly:{type:Boolean},disabled:{type:Boolean},embedded:{type:Boolean}},emits:["installed","busy"],setup(I,{emit:s}){const D=I,l=s,e=r(!1),L=r(!1),C=r(!1),M=r(""),U=r(),i=r([]),g=r(!1),B=r(""),y=r("panel");let Y=0,x=0;const w=h(()=>i.value.find(T=>T.pluginId===D.plugin.id)),u=h(()=>{var T,N,A;return{...D.plugin,...U.value,installedVersion:g.value?(T=w.value)==null?void 0:T.version:D.plugin.installedVersion,installedState:g.value?(N=w.value)==null?void 0:N.state:D.plugin.installedState,installedRemovable:g.value?(A=w.value)==null?void 0:A.removable:D.plugin.installedRemovable}}),c=h(()=>W.value.find(T=>T.plugin.id===D.plugin.id)),f=h(()=>c.value?c.value.kind==="uninstall"?"TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE":u.value.installedVersion?"TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE":"TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL":u.value.installedVersion?"TXT_CODE_PLUGIN_MARKET_MODIFY":"TXT_CODE_PLUGIN_MARKET_ADD"),G=h(()=>{var T;return((T=U.value)==null?void 0:T.versions)??(D.version?[D.version]:[])}),k=h(()=>G.value.find(T=>T.version===B.value)),S=h(()=>{const T=G.value.map(A=>({title:A.version+(A.version===u.value.installedVersion?` (${E("TXT_CODE_PLUGIN_MARKET_CURRENT")})`:""),value:A.version})),N=u.value.installedVersion;return N&&!T.some(A=>A.value===N)&&T.unshift({title:`${N} (${E("TXT_CODE_PLUGIN_MARKET_CURRENT")})`,value:N}),T}),p=h(()=>{const T=w.value;return T?[...T.panelVersion||!T.daemonIds.length?[{title:E("TXT_CODE_PLUGIN_MARKET_SIDE_PANEL"),value:"panel"}]:[],...T.daemonIds.map(N=>({title:`${E("TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON")} · ${N}`,value:N}))]:[]}),q=h(()=>{var A,a;const T=(A=u.value.installedVersion)==null?void 0:A.split(/[.+-]/),N=(a=k.value)==null?void 0:a.version.split(/[.+-]/);return T&&N&&(T[0]!==N[0]||T[0]==="0"&&T[1]!==N[1])}),z=h(()=>{const T=k.value;return T?[...Object.entries(T.dependencies??{}).map(([N,A])=>({name:N,range:A,kind:"npm"})),...Object.entries(T.peerDependencies??{}).map(([N,A])=>{var a,v;return{name:N,range:A,kind:(v=(a=T.peerDependenciesMeta)==null?void 0:a[N])!=null&&v.optional?E("TXT_CODE_PLUGIN_MARKET_OPTIONAL"):"peer"}}),...Object.entries(T.engines??{}).map(([N,A])=>({name:N,range:A,kind:E("TXT_CODE_PLUGIN_MARKET_RUNTIME")})),...Object.entries(T.compatibility??{}).flatMap(([N,A])=>A?[{name:`${N} API`,range:String(A.api),kind:E("TXT_CODE_PLUGIN_MARKET_HOST_CURRENT",{version:1})},...A.sdk===void 0?[]:[{name:`${N} SDK`,range:String(A.sdk),kind:E("TXT_CODE_PLUGIN_MARKET_HOST_CURRENT",{version:1})}]]:[]),...(T.frontendDependencies??[]).map(N=>({name:N,range:"—",kind:i.value.some(A=>A.pluginId===N&&A.panelVersion&&A.state==="active")?E("TXT_CODE_PLUGIN_MARKET_INSTALLED"):E("TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY")}))]:[]});async function m(){var A;const T=++x,N=await k_().execute();T!==x||!e.value||(i.value=N.value??[],g.value=!0,p.value.some(a=>a.value===y.value)||(y.value=((A=p.value[0])==null?void 0:A.value)??"panel"))}function a_(T){var N,A,a;return/^(panel|daemon) (API|SDK)$/.test(T)?"1":((A=(N=U.value)==null?void 0:N.dependencyVersions)==null?void 0:A[T])||((a=i.value.find(v=>v.pluginId===T))==null?void 0:a.panelVersion)||"—"}async function s_(){var a,v,V,Q;if(D.disabled||b.value)return;e.value=!0,L.value=!0,M.value="",g.value=!1,i.value=[],U.value=void 0,B.value=((a=c.value)==null?void 0:a.version)||(D.installOnly?(v=D.version)==null?void 0:v.version:D.plugin.installedVersion)||((V=D.version)==null?void 0:V.version)||((Q=D.plugin.latestVersion)==null?void 0:Q.version)||"";const T=++Y,N=await Promise.allSettled([h_().execute({params:{pluginId:D.plugin.id}}),m()]);if(T!==Y||!e.value)return;const A=N[0];A.status==="fulfilled"&&A.value.value?(U.value=A.value.value,B.value||(B.value=U.value.selectedVersion.version)):M.value=A.status==="rejected"?J(A.reason):E("TXT_CODE_PLUGIN_MARKET_NOT_FOUND"),N[1].status==="rejected"&&(M.value||(M.value=J(N[1].reason))),L.value=!1}function Z(T,N){g.value=!1,U.value&&(U.value.installedVersion=N),l("installed",T,N),e.value=!1}function P(){var a,v;const T=(a=L_.get("vue"))==null?void 0:a.router;if(!T)return;const N=y.value!=="panel",A={scope:N?"node":"panel",plugin:D.plugin.id,...N?{daemonId:y.value}:{}};if(D.embedded&&((v=L_.get("desktop"))!=null&&v.open({id:`plugin-config-${D.plugin.id}-${y.value}`,view:"plugin-config",props:{scope:A.scope,daemonId:N?y.value:void 0,pluginId:D.plugin.id}}))){e.value=!1;return}e.value=!1,T.push({path:"/plugins/config",query:A})}return __(e,T=>{T||(Y++,x++,g.value=!1)}),__(()=>D.plugin.installedVersion,()=>{e.value||(g.value=!1)}),__(o_,T=>{e.value&&(T==null?void 0:T.pluginId)===D.plugin.id&&m().catch(N=>M.value=J(N))}),K_(()=>{Y++,x++}),(T,N)=>(R(),K(j,null,[O(_(F),{color:c.value?c.value.kind==="uninstall"?"error":"warning":u.value.installedVersion?"success":"primary","prepend-icon":u.value.installedVersion?"mdi-pencil-outline":"mdi-plus",disabled:I.disabled||_(b),onClick:d_(s_,["stop","prevent"]),onKeydown:N[0]||(N[0]=d_(()=>{},["stop"]))},{default:o(()=>[$(n(_(E)(f.value)),1)]),_:1},8,["color","prepend-icon","disabled"]),O(_(C_),{modelValue:e.value,"onUpdate:modelValue":N[8]||(N[8]=A=>e.value=A),"max-width":"780",persistent:C.value||_(b),scrollable:""},{default:o(()=>[O(_(D_),{title:_(E)("TXT_CODE_PLUGIN_MARKET_MANAGE",{name:u.value.displayName})},{default:o(()=>[L.value?(R(),d(_(X_),{key:0,indeterminate:""})):X("",!0),O(_(I_),null,{default:o(()=>{var A,a,v;return[t("div",aT,n(u.value.name),1),M.value?(R(),d(_(N_),{key:0,type:"error",variant:"tonal",text:M.value,class:"mb-4"},null,8,["text"])):X("",!0),u.value.installedVersion&&u.value.installedRemovable===!1?(R(),d(_(N_),{key:1,type:"info",variant:"tonal",text:_(E)("TXT_CODE_PLUGIN_MARKET_PROTECTED"),class:"mb-4"},null,8,["text"])):X("",!0),u.value.installedVersion?(R(),K("div",UT,n(_(E)("TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION",{version:u.value.installedVersion})),1)):X("",!0),O(_(u_),{modelValue:B.value,"onUpdate:modelValue":N[1]||(N[1]=V=>B.value=V),items:S.value,label:_(E)("TXT_CODE_PLUGIN_MARKET_TARGET_VERSION"),disabled:L.value||C.value||_(b),"hide-details":"",class:"mb-4"},null,8,["modelValue","items","label","disabled"]),O(r_,{sides:((A=k.value)==null?void 0:A.sides)??u.value.sides},null,8,["sides"]),(a=k.value)!=null&&a.deprecated?(R(),d(_(N_),{key:3,type:"warning",variant:"tonal",text:_(E)("TXT_CODE_PLUGIN_MARKET_DEPRECATED",{reason:k.value.deprecated}),class:"my-4"},null,8,["text"])):X("",!0),q.value?(R(),d(_(N_),{key:4,type:"warning",variant:"tonal",text:_(E)("TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING"),class:"my-4"},null,8,["text"])):X("",!0),z.value.length?(R(),d(_(p_),{key:5,density:"compact",class:"my-4"},{default:o(()=>[t("thead",null,[t("tr",null,[t("th",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_DEPENDENCY")),1),t("th",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_VERSION_RANGE")),1),t("th",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT")),1),t("th",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE")),1)])]),t("tbody",null,[(R(!0),K(j,null,e_(z.value,(V,Q)=>(R(),K("tr",{key:Q},[t("td",null,n(V.name),1),t("td",null,n(V.range),1),t("td",null,n(a_(V.name)),1),t("td",null,n(V.kind),1)]))),128))])]),_:1})):X("",!0),t("p",MT,n(_(E)("TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES")),1),p.value.length>1?(R(),d(_(u_),{key:6,modelValue:y.value,"onUpdate:modelValue":N[2]||(N[2]=V=>y.value=V),items:p.value,label:_(E)("TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET"),disabled:C.value,"hide-details":"",class:"mb-4"},null,8,["modelValue","items","label","disabled"])):X("",!0),(v=w.value)!=null&&v.daemonIds.length?(R(),K("div",GT,[(R(!0),K(j,null,e_(w.value.daemonIds,V=>{var Q;return R(),K("div",{key:V},n(V)+" · "+n(((Q=w.value.daemonVersions)==null?void 0:Q[V])??w.value.version),1)}),128))])):X("",!0),O(_(G_),{modelValue:_(n_),"onUpdate:modelValue":N[3]||(N[3]=V=>j_(n_)?n_.value=V:null),disabled:C.value||_(b),label:_(E)("TXT_CODE_PLUGIN_MARKET_BULK_MODE"),hint:_(E)("TXT_CODE_PLUGIN_MARKET_BULK_HINT"),"persistent-hint":""},null,8,["modelValue","disabled","label","hint"])]}),_:1}),O(_(t_),{class:"flex-wrap ga-2"},{default:o(()=>[O(_(F),{variant:"text",disabled:C.value||_(b),onClick:N[4]||(N[4]=A=>e.value=!1)},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_CANCEL")),1)]),_:1},8,["disabled"]),c.value?(R(),d(_(F),{key:0,variant:"text",disabled:C.value||_(b),onClick:N[5]||(N[5]=A=>_(H_)(u.value.id))},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_DISCARD")),1)]),_:1},8,["disabled"])):X("",!0),O(_(R_)),p.value.length?(R(),d(_(F),{key:1,color:"primary",variant:"text",disabled:C.value||_(b),onClick:P},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_CONFIGURE")),1)]),_:1},8,["disabled"])):X("",!0),O(PT,{plugin:u.value,version:k.value,disabled:I.disabled||L.value||_(b),"allow-version-change":"",onInstalled:Z,onStaged:N[6]||(N[6]=A=>e.value=!1),onBusy:N[7]||(N[7]=A=>{C.value=A,l("busy",A)})},null,8,["plugin","version","disabled"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue","persistent"])],64))}}),lT={key:0},iT={key:0,class:"text-caption text-warning"},Y_=T_({__name:"PluginMarketChanges",setup(I){const s=r(!1);async function D(){const l=await RT();for(const e of l)e.error?H.error(J(e.error)):e.failedNodes.length&&H.error(E("TXT_CODE_PLUGIN_MARKET_NODE_FAILED",{nodes:e.failedNodes.join(", ")})),e.restartRequired&&H.warning(E("TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED"));l.length&&!W.value.length&&(s.value=!1,H.success(E("TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED")))}return(l,e)=>(R(),K(j,null,[O(_(F),{variant:"tonal",color:"primary",disabled:!_(W).length||!!_(O_),loading:_(b),onClick:e[0]||(e[0]=L=>s.value=!0)},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES")),1),_(W).length?(R(),K("span",lT," ("+n(_(W).length)+")",1)):X("",!0)]),_:1},8,["disabled","loading"]),O(_(C_),{modelValue:s.value,"onUpdate:modelValue":e[3]||(e[3]=L=>s.value=L),"max-width":"760",persistent:_(b)},{default:o(()=>[O(_(D_),{title:_(E)("TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES")},{default:o(()=>[O(_(I_),null,{default:o(()=>[O(_(p_),null,{default:o(()=>[t("thead",null,[t("tr",null,[t("th",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_PLUGIN_ID")),1),t("th",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION")),1),t("th",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_TARGET_VERSION")),1),t("th",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_SELECT_NODES")),1),e[4]||(e[4]=t("th",null,null,-1))])]),t("tbody",null,[(R(!0),K(j,null,e_(_(W),L=>(R(),K("tr",{key:L.plugin.id},[t("td",null,n(L.plugin.displayName),1),t("td",null,n(L.plugin.installedVersion||_(E)("TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED")),1),t("td",null,[$(n(L.kind==="uninstall"?_(E)("TXT_CODE_PLUGIN_MARKET_UNINSTALL"):L.version)+" ",1),L.removeConfig?(R(),K("div",iT,n(_(E)("TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG")),1)):X("",!0)]),t("td",null,n(L.daemonIds.join(", ")||"—"),1),t("td",null,[O(_(F),{variant:"text",size:"small",disabled:_(b),onClick:C=>_(H_)(L.plugin.id)},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_DISCARD")),1)]),_:1},8,["disabled","onClick"])])]))),128))])]),_:1})]),_:1}),O(_(t_),null,{default:o(()=>[O(_(F),{variant:"text",disabled:_(b),onClick:e[1]||(e[1]=L=>{W.value=[],s.value=!1})},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_DISCARD_ALL")),1)]),_:1},8,["disabled"]),O(_(R_)),O(_(F),{disabled:_(b),onClick:e[2]||(e[2]=L=>s.value=!1)},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_CANCEL")),1)]),_:1},8,["disabled"]),O(_(F),{color:"primary",disabled:!_(W).length||!!_(O_),loading:_(b),onClick:D},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_CONFIRM")),1)]),_:1},8,["disabled","loading"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue","persistent"])],64))}}),KT={class:"plugin-detail-header"},XT={class:"plugin-detail-heading"},cT={class:"plugin-detail-heading-text"},rT={class:"plugin-detail-title"},dT={class:"plugin-detail-summary"},uT={class:"plugin-detail-meta"},ST={class:"plugin-detail-author"},$T={key:0,class:"plugin-detail-category"},mT={class:"plugin-detail-action"},pT={class:"plugin-detail-tabs"},vT={class:"plugin-detail-body"},gT={class:"plugin-detail-content"},fT=["innerHTML"],VT={key:1,class:"plugin-detail-empty"},bT={key:1,class:"plugin-detail-versions"},hT={class:"plugin-detail-version-text"},kT={class:"plugin-detail-version-name"},FT={class:"plugin-detail-version-meta"},BT={class:"plugin-detail-update-head"},yT={class:"plugin-detail-update-version"},HT={class:"plugin-detail-update-date"},YT=["innerHTML"],wT={key:1,class:"plugin-detail-empty"},WT={class:"plugin-detail-sidebar"},xT={key:0,class:"plugin-detail-sidebar-section"},zT={class:"plugin-detail-sidebar-title"},qT={class:"plugin-detail-tag"},jT={class:"plugin-detail-sidebar-section"},ZT={class:"plugin-detail-sidebar-title"},QT={class:"plugin-detail-info"},JT={class:"plugin-detail-info-row"},_E={class:"plugin-detail-info-row"},TE={key:0,class:"plugin-detail-info-row"},EE={key:1,class:"plugin-detail-info-row"},eE=T_({__name:"PluginMarketDetail",props:{pluginId:{},embedded:{type:Boolean}},emits:["back","installed"],setup(I,{emit:s}){const D=I,l=s,e=r(),L=r(!1),C=r(!1),M=r(""),U=r("readme");let i=0,g=0;const{icons:B,load:y}=y_(),Y=h(()=>e.value?B.value[e.value.id]:void 0),x=h(()=>{var S,p;return S_(((S=e.value)==null?void 0:S.readme)||((p=e.value)==null?void 0:p.description)||"")}),w=h(()=>{var S;return(((S=e.value)==null?void 0:S.versions)??[]).map(p=>({version:p,html:S_(p.changelog||"")}))});function u(S){return new Date(S).toLocaleString(x_().replace("_","-"))}function c(S){return S<1024?`${S} B`:S<1024*1024?`${(S/1024).toFixed(1)} KB`:`${(S/1024/1024).toFixed(1)} MB`}async function f(){var p,q;if(C.value&&((p=e.value)==null?void 0:p.id)===D.pluginId)return;const S=++i;L.value=!0,M.value="",((q=e.value)==null?void 0:q.id)!==D.pluginId&&(e.value=void 0),g=0,C.value=!1;try{const{execute:z}=h_(),m=await z({params:{pluginId:D.pluginId}});if(S!==i)return;if(!m.value)throw new Error(E("TXT_CODE_PLUGIN_MARKET_NOT_FOUND"));e.value=m.value,y(m.value.id,m.value.hasIcon,m.value.selectedVersion.version)}catch(z){S===i&&(M.value=J(z))}finally{S===i&&(L.value=!1)}}function G(S){g=Math.max(0,g+(S?1:-1)),C.value=g>0}function k(S,p){var q;((q=e.value)==null?void 0:q.id)===S&&(e.value.installedVersion=p),l("installed",S,p)}return __(o_,S=>{S&&k(S.pluginId,S.version)}),__(()=>D.pluginId,f,{immediate:!0}),__(()=>D.pluginId,()=>{U.value="readme"}),K_(()=>i++),(S,p)=>(R(),K("main",{class:V_(["plugin-detail",{"plugin-detail--embedded":I.embedded}])},[O(_(f_),{fluid:"",class:"plugin-detail-container"},{default:o(()=>{var q,z;return[O(b_,{title:_(E)("TXT_CODE_PLUGIN_MARKET_DETAIL"),icon:"mdi-puzzle-outline"},{actions:o(()=>[O(Y_),O(_(F),{variant:"text","prepend-icon":"mdi-arrow-left",disabled:C.value,onClick:p[0]||(p[0]=m=>l("back"))},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_BACK")),1)]),_:1},8,["disabled"]),O(_(F),{variant:"text",loading:L.value,disabled:C.value,onClick:f},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_REFRESH")),1)]),_:1},8,["loading","disabled"])]),_:1},8,["title"]),L.value?(R(),d(_(X_),{key:0,indeterminate:"",class:"mb-4"})):X("",!0),M.value?(R(),d(_(N_),{key:1,type:"error",text:M.value,class:"mb-4"},null,8,["text"])):X("",!0),e.value?(R(),K(j,{key:2},[t("header",KT,[t("div",XT,[O(_(v_),{class:"plugin-detail-icon",size:"64",rounded:"12px",color:"surface",variant:"flat"},{default:o(()=>[e.value.hasIcon&&Y.value?(R(),d(_(g_),{key:0,src:Y.value,alt:"",cover:"",transition:"fade-transition",class:"plugin-detail-icon-image",onError:p[1]||(p[1]=m=>delete _(B)[e.value.id])},null,8,["src"])):e.value.hasIcon?X("",!0):(R(),d(_(A_),{key:1,icon:"mdi-puzzle-outline",size:"34"}))]),_:1}),t("div",cT,[t("h1",rT,n(e.value.displayName),1),t("p",dT,n(e.value.summary||_(E)("TXT_CODE_PLUGIN_MARKET_NO_SUMMARY")),1),t("div",uT,[t("span",ST,[O(_(A_),{icon:"mdi-account-circle-outline",size:"16"}),$(" "+n(_(E)("TXT_CODE_PLUGIN_MARKET_BY",{name:((q=e.value.author)==null?void 0:q.displayName)??""})),1)]),e.value.category?(R(),K("span",$T,n(e.value.category),1)):X("",!0),O(r_,{sides:e.value.selectedVersion.sides??e.value.sides},null,8,["sides"]),e.value.installedVersion?(R(),d(_(P_),{key:1,size:"small",color:"success",variant:"tonal"},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION",{version:e.value.installedVersion})),1)]),_:1})):X("",!0)])])]),t("div",mT,[(R(),d(i_,{key:e.value.id,plugin:e.value,embedded:I.embedded,version:e.value.latestVersion||e.value.selectedVersion,disabled:C.value||L.value,onInstalled:k,onBusy:G},null,8,["plugin","embedded","version","disabled"]))])]),t("div",pT,[O(_(Z_),{modelValue:U.value,"onUpdate:modelValue":p[2]||(p[2]=m=>U.value=m),color:"primary",disabled:C.value},{default:o(()=>[O(_(U_),{value:"readme"},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_README")),1)]),_:1}),O(_(U_),{value:"versions"},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_VERSIONS")),1)]),_:1}),O(_(U_),{value:"updates"},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_UPDATES")),1)]),_:1})]),_:1},8,["modelValue","disabled"])]),t("div",vT,[t("section",gT,[U.value==="readme"?(R(),K(j,{key:0},[e.value.readme||e.value.description?(R(),K("div",{key:0,class:"global-markdown-html plugin-detail-markdown",innerHTML:x.value},null,8,fT)):(R(),K("p",VT,n(_(E)("TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION")),1))],64)):U.value==="versions"?(R(),K("ul",bT,[(R(!0),K(j,null,e_(e.value.versions,m=>(R(),K("li",{key:m.version,class:"plugin-detail-version"},[t("div",hT,[t("span",kT,n(_(E)("TXT_CODE_PLUGIN_MARKET_VERSION",{version:m.version})),1),t("span",FT,n(_(E)("TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT",{date:u(m.submittedAt)}))+" · "+n(_(E)("TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE",{size:c(m.sizeBytes),count:m.fileCount})),1)]),e.value.installedVersion?X("",!0):(R(),d(i_,{key:0,plugin:e.value,embedded:I.embedded,version:m,disabled:C.value||L.value,"install-only":"",onInstalled:k,onBusy:G},null,8,["plugin","embedded","version","disabled"]))]))),128))])):(R(!0),K(j,{key:2},e_(w.value,m=>(R(),K("article",{key:m.version.version,class:"plugin-detail-update"},[t("h2",BT,[t("span",yT,n(_(E)("TXT_CODE_PLUGIN_MARKET_VERSION",{version:m.version.version})),1),t("span",HT,n(u(m.version.submittedAt)),1)]),m.html?(R(),K("div",{key:0,class:"global-markdown-html plugin-detail-markdown",innerHTML:m.html},null,8,YT)):(R(),K("p",wT,n(_(E)("TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG")),1))]))),128))]),t("aside",WT,[e.value.category?(R(),K("section",xT,[t("h2",zT,n(_(E)("TXT_CODE_PLUGIN_MARKET_TAGS")),1),t("span",qT,n(e.value.category),1)])):X("",!0),t("section",jT,[t("h2",ZT,n(_(E)("TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO")),1),t("dl",QT,[t("div",JT,[t("dt",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_PLUGIN_ID")),1),t("dd",null,n(e.value.name),1)]),t("div",_E,[t("dt",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_VENDOR")),1),t("dd",null,n(((z=e.value.author)==null?void 0:z.displayName)??""),1)]),e.value.latestVersion?(R(),K("div",TE,[t("dt",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_LATEST")),1),t("dd",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_VERSION",{version:e.value.latestVersion.version})),1)])):X("",!0),e.value.installedVersion?(R(),K("div",EE,[t("dt",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_INSTALLED")),1),t("dd",null,n(_(E)("TXT_CODE_PLUGIN_MARKET_VERSION",{version:e.value.installedVersion})),1)])):X("",!0)])])])])],64)):X("",!0)]}),_:1})],2))}});const w_=c_(eE,[["__scopeId","data-v-bb0914ed"]]),NE={key:1,class:"plugin-market-empty",role:"status"},AE={class:"plugin-market-empty-title"},nE={class:"plugin-market-card-head"},DE={class:"plugin-market-card-heading"},IE={class:"text-h6"},tE={class:"text-caption text-medium-emphasis"},RE={key:0},LE={class:"plugin-market-card-summary text-body-2 mt-2"},OE={key:3,class:"plugin-market-empty plugin-market-empty--filtered",role:"status"},sE={class:"plugin-market-empty-title"},CE=T_({__name:"PluginMarketList",props:{embedded:{type:Boolean}},emits:["select"],setup(I,{expose:s,emit:D}){const l=I,e=D,L=r(!1),C=r(!1),M=r([]),U=r(""),{icons:i,load:g}=y_();let B=0;const y=h(()=>{const c=(U.value??"").trim().toLowerCase();return c?M.value.filter(f=>[f.displayName,f.name,f.summary].some(G=>String(G??"").toLowerCase().includes(c))):M.value});__(y,c=>{var f;for(const G of c)g(G.id,G.hasIcon,(f=G.latestVersion)==null?void 0:f.version)},{immediate:!0});async function Y(){const c=++B;L.value=!0;try{const{execute:f}=nT(),G=await f();c===B&&(M.value=G.value??[],C.value=!1)}catch(f){c===B&&(C.value=!0,H.error(J(f)))}finally{c===B&&(L.value=!1)}}function x(c){l.embedded&&e("select",c.id)}function w(c,f){c.target===c.currentTarget&&(!l.embedded||!["Enter"," "].includes(c.key)||(c.preventDefault(),x(f)))}function u(c,f){const G=M.value.find(k=>k.id===c);G&&(G.installedVersion=f)}return s({updateInstalled:u}),__(o_,c=>{c&&u(c.pluginId,c.version)}),Q_(Y),K_(()=>B++),(c,f)=>(R(),K("main",{class:V_(["plugin-market",{"plugin-market--embedded":I.embedded}])},[O(_(f_),{fluid:"",class:"plugin-market-container"},{default:o(()=>[O(b_,{title:_(E)("TXT_CODE_PLUGIN_MARKET"),icon:"mdi-puzzle-outline"},{search:o(()=>[O(_(J_),{modelValue:U.value,"onUpdate:modelValue":f[0]||(f[0]=G=>U.value=G),label:_(E)("TXT_CODE_PLUGIN_MARKET_SEARCH"),"prepend-inner-icon":"mdi-magnify","hide-details":"",clearable:"",density:"comfortable",variant:"solo-filled"},null,8,["modelValue","label"])]),actions:o(()=>[O(Y_),O(_(F),{variant:"text",loading:L.value,onClick:Y},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_REFRESH")),1)]),_:1},8,["loading"])]),_:1},8,["title"]),L.value&&!M.value.length?(R(),d(_(X_),{key:0,indeterminate:"",class:"mb-4"})):X("",!0),!L.value&&!M.value.length?(R(),K("div",NE,[O(_(A_),{icon:C.value?"mdi-lan-disconnect":"mdi-puzzle-outline",size:"48",class:"plugin-market-empty-icon"},null,8,["icon"]),t("div",AE,n(C.value?_(E)("TXT_CODE_PLUGIN_MARKET_UNREACHABLE"):_(E)("TXT_CODE_PLUGIN_MARKET_EMPTY")),1)])):y.value.length?(R(),d(_(TT),{key:2,class:"plugin-market-grid"},{default:o(()=>[(R(!0),K(j,null,e_(y.value,G=>(R(),d(_(_T),{key:G.id,cols:"12",md:"6",lg:"4"},{default:o(()=>[O(_(D_),{class:"plugin-market-card h-100",elevation:"0",to:I.embedded?void 0:`/market/plugins/${encodeURIComponent(G.id)}`,role:I.embedded?"button":void 0,tabindex:I.embedded?0:void 0,link:"",onClick:k=>x(G),onKeydown:k=>w(k,G)},{default:o(()=>[O(_(I_),{class:"plugin-market-card-content"},{default:o(()=>{var k;return[t("div",nE,[O(_(v_),{class:"plugin-market-icon",size:"52",rounded:"12px",color:"surface",variant:"flat"},{default:o(()=>[G.hasIcon&&_(i)[G.id]?(R(),d(_(g_),{key:0,src:_(i)[G.id],alt:"",cover:"",transition:"fade-transition",class:"plugin-market-icon-image",onError:S=>delete _(i)[G.id]},null,8,["src","onError"])):G.hasIcon?X("",!0):(R(),d(_(A_),{key:1,icon:"mdi-puzzle-outline",size:"28"}))]),_:2},1024),t("div",DE,[t("div",IE,n(G.displayName),1),t("div",tE,[$(n(((k=G.author)==null?void 0:k.displayName)??"")+" ",1),G.category?(R(),K("span",RE,"· "+n(G.category),1)):X("",!0)])])]),t("div",LE,n(G.summary||_(E)("TXT_CODE_PLUGIN_MARKET_NO_SUMMARY")),1)]}),_:2},1024),O(_(t_),{class:"plugin-market-card-actions"},{default:o(()=>[G.latestVersion?(R(),d(_(P_),{key:0,size:"small",variant:"tonal"},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_VERSION",{version:G.latestVersion.version})),1)]),_:2},1024)):X("",!0),O(r_,{sides:G.sides},null,8,["sides"]),G.installedVersion?(R(),d(_(P_),{key:1,size:"small",color:"success",variant:"tonal"},{default:o(()=>[$(n(_(E)("TXT_CODE_PLUGIN_MARKET_INSTALLED")),1)]),_:1})):X("",!0),O(_(R_)),O(i_,{plugin:G,version:G.latestVersion,embedded:I.embedded,onInstalled:u},null,8,["plugin","version","embedded"])]),_:2},1024)]),_:2},1032,["to","role","tabindex","onClick","onKeydown"])]),_:2},1024))),128))]),_:1})):L.value?X("",!0):(R(),K("div",OE,[O(_(A_),{icon:"mdi-magnify",size:"42",class:"plugin-market-empty-icon"}),t("div",sE,n(_(E)("TXT_CODE_NO_DATA")),1)]))]),_:1})],2))}});const W_=c_(CE,[["__scopeId","data-v-a5e49fbf"]]),PE={class:"desktop-plugin-market"},oE=T_({__name:"DesktopPluginMarket",setup(I){const s=r(),D=r("");function l(C){D.value=C}function e(){D.value=""}function L(C,M){var U;(U=s.value)==null||U.updateInstalled(C,M)}return(C,M)=>(R(),K("div",PE,[ET(O(W_,{ref_key:"pluginList",ref:s,embedded:"",onSelect:l},null,512),[[eT,!D.value]]),D.value?(R(),d(w_,{key:0,"plugin-id":D.value,embedded:"",onBack:e,onInstalled:L},null,8,["plugin-id"])):X("",!0)]))}});const aE=c_(oE,[["__scopeId","data-v-3ed0f56c"]]),UE=T_({__name:"PluginMarket",setup(I){return(s,D)=>(R(),d(W_))}}),ME=T_({__name:"PluginMarketDetail",setup(I){const s=NT(),D=AT(),l=h(()=>String(s.params.pluginId??""));return(e,L)=>(R(),d(w_,{"plugin-id":l.value,onBack:L[0]||(L[0]=C=>_(D).push("/market/plugins"))},null,8,["plugin-id"]))}}),GE="Plugin-Markt",lE="Markt-Adresse",iE="Adresse der Plugin-Markt-Website, von dort kommt die Plugin-Liste",KE="Ungültige Marktadresse: eine http(s)-Adresse ohne Query, Fragment oder Zugangsdaten",XE="Die heruntergeladenen Dateien stimmen nicht mit dem Paket im Markt überein",cE="Das Paket enthält einen ungültigen Dateipfad",rE="von {name}",dE="Abbrechen",uE="Bestätigen",SE="Nodes auswählen",$E="Die Daemon-Hälfte auf diesen Nodes installieren",mE="Die Daemon-Hälfte von diesen Nodes entfernen",pE="offline",vE="Diese Nodes konnten nicht aktualisiert werden: {nodes}",gE="„{name}“ wirklich entfernen?",fE="Das Installationsverzeichnis wird bereits von einem anderen Plugin verwendet",VE="Der Markt enthält noch keine Plugins",bE="Das Paket enthält keine installierbaren Dateien",hE="Installieren",kE="Installiert",FE="Keine Kurzbeschreibung",BE="Aktualisieren",yE="Starten Sie das Panel und die betroffenen Knoten neu, damit die Plugin-Änderungen wirksam werden.",HE="Plugins suchen",YE="Deinstallieren",wE="Deinstalliert",WE="Dieses Plugin ist weiterhin auf anderen Knoten installiert.",xE="Der Markt ist nicht erreichbar; bitte die Markt-Adresse prüfen",zE="v{version}",qE="Plugin-Details",jE="Zurück zum Plugin-Markt",ZE="Keine ausführliche Beschreibung verfügbar",QE="Installiert: v{version}",JE="Veröffentlicht: {date}",_e="Größe: {size} · {count} Dateien",Te="Keine Versionshinweise verfügbar",Ee="Das Plugin oder die Version wurde nicht gefunden, noch nicht freigegeben oder aus dem Markt entfernt",ee="Readme",Ne="Versionen",Ae="Tags",ne="Weitere Informationen",De="Plugin-ID",Ie="Anbieter",te="Neueste",Re="Panel-Plugin",Le="Daemon-Plugin",Oe="Panel- und Daemon-Plugin",se="Änderungen",Ce="Dieses Plugin benötigt eine andere Host-API oder Browser-SDK-Version. Aktualisieren Sie zuerst ElementsPanel.",Pe="Bitte wählen Sie vor der Installation einen Knoten aus!",oe="This plugin is bundled with the panel and cannot be uninstalled here.",ae="npm install failed. Check the network, registry and package name, then retry.",Ue="Hinzufügen",Me="Ändern",Ge="Plugin verwalten: {name}",le="Zielversion",ie="aktuell",Ke="Aktuelle Version",Xe="Nicht installiert",ce="Abhängigkeit",re="Benötigte Version",de="Art der Abhängigkeit",ue="Optionaler Peer",Se="Laufzeit",$e="Aktueller Host: {version}",me="Plugin installieren und aktivieren",pe="npm verwaltet die Paketabhängigkeiten der gewählten Version. Frontend-Plugins müssen zusätzlich installiert und in der Plugin-Konfiguration aktiviert werden.",ve="Konfigurieren",ge="Konfigurationsziel",fe="Diese Version ist veraltet: {reason}",Ve="Ein Wechsel der Hauptversion kann inkompatible Einstellungen oder Verhalten verursachen.",be="Stapelverarbeitung",he="Installationen, Updates und Entfernungen vormerken und mit „Änderungen anwenden“ ausführen.",ke="Änderungen anwenden",Fe="Installation vorgemerkt",Be="Update vorgemerkt",ye="Entfernung vorgemerkt",He="Änderung verwerfen",Ye="Alle Änderungen verwerfen",we="Änderungen angewendet",We="Benutzerkonfiguration dieses Plugins ebenfalls zurücksetzen",xe="Die Konfiguration bleibt standardmäßig erhalten. Nur Benutzerüberschreibungen auf Panel/Knoten werden gelöscht, keine vom Plugin gespeicherten Daten.",ze="Auf Knoten bereitstellen",qe="Reparieren",je="Version auf diesem Panel",Ze="Dieses Plugin wird vom Host verwaltet. Version und Installation können hier nicht geändert werden.",Qe={TXT_CODE_PLUGIN_MARKET:GE,TXT_CODE_PLUGIN_MARKET_ADDR:lE,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:iE,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:KE,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:XE,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:cE,TXT_CODE_PLUGIN_MARKET_BY:rE,TXT_CODE_PLUGIN_MARKET_CANCEL:dE,TXT_CODE_PLUGIN_MARKET_CONFIRM:uE,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:SE,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:$E,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:mE,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:pE,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:vE,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:gE,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:fE,TXT_CODE_PLUGIN_MARKET_EMPTY:VE,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:bE,TXT_CODE_PLUGIN_MARKET_INSTALL:hE,TXT_CODE_PLUGIN_MARKET_INSTALLED:kE,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:FE,TXT_CODE_PLUGIN_MARKET_REFRESH:BE,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:yE,TXT_CODE_PLUGIN_MARKET_SEARCH:HE,TXT_CODE_PLUGIN_MARKET_UNINSTALL:YE,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:wE,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:WE,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:xE,TXT_CODE_PLUGIN_MARKET_VERSION:zE,TXT_CODE_PLUGIN_MARKET_DETAIL:qE,TXT_CODE_PLUGIN_MARKET_BACK:jE,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:ZE,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:QE,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:JE,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:_e,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:Te,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:Ee,TXT_CODE_PLUGIN_MARKET_README:ee,TXT_CODE_PLUGIN_MARKET_VERSIONS:Ne,TXT_CODE_PLUGIN_MARKET_TAGS:Ae,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:ne,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:De,TXT_CODE_PLUGIN_MARKET_VENDOR:Ie,TXT_CODE_PLUGIN_MARKET_LATEST:te,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:Re,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:Le,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:Oe,TXT_CODE_PLUGIN_MARKET_UPDATES:se,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:Ce,TXT_CODE_2de92a5d:Pe,TXT_CODE_PLUGIN_MARKET_BUNDLED:oe,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:ae,TXT_CODE_PLUGIN_MARKET_ADD:Ue,TXT_CODE_PLUGIN_MARKET_MODIFY:Me,TXT_CODE_PLUGIN_MARKET_MANAGE:Ge,TXT_CODE_PLUGIN_MARKET_TARGET_VERSION:le,TXT_CODE_PLUGIN_MARKET_CURRENT:ie,TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION:Ke,TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED:Xe,TXT_CODE_PLUGIN_MARKET_DEPENDENCY:ce,TXT_CODE_PLUGIN_MARKET_VERSION_RANGE:re,TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE:de,TXT_CODE_PLUGIN_MARKET_OPTIONAL:ue,TXT_CODE_PLUGIN_MARKET_RUNTIME:Se,TXT_CODE_PLUGIN_MARKET_HOST_CURRENT:$e,TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY:me,TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES:pe,TXT_CODE_PLUGIN_MARKET_CONFIGURE:ve,TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET:ge,TXT_CODE_PLUGIN_MARKET_DEPRECATED:fe,TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING:Ve,TXT_CODE_PLUGIN_MARKET_BULK_MODE:be,TXT_CODE_PLUGIN_MARKET_BULK_HINT:he,TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES:ke,TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL:Fe,TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE:Be,TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE:ye,TXT_CODE_PLUGIN_MARKET_DISCARD:He,TXT_CODE_PLUGIN_MARKET_DISCARD_ALL:Ye,TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED:we,TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG:We,TXT_CODE_PLUGIN_MARKET_KEEP_DATA:xe,TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES:ze,TXT_CODE_PLUGIN_MARKET_REPAIR:qe,TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT:je,TXT_CODE_PLUGIN_MARKET_PROTECTED:Ze},Je="Plugin market",_N="Market address",TN="Address of the plugin market website, where the plugin list comes from",EN="Invalid market address: use an http(s) address with no query, fragment or credentials",eN="The downloaded files do not match the package published on the market",NN="The package contains an illegal file path",AN="by {name}",nN="Cancel",DN="Confirm",IN="Select nodes",tN="Install the daemon half on these nodes",RN="Remove the daemon half from these nodes",LN="offline",ON="These nodes could not be updated: {nodes}",sN='Remove "{name}"?',CN="That install directory is already used by another plugin",PN="The market has no plugins yet",oN="The package contains no installable files",aN="Install",UN="Installed",MN="No summary",GN="Refresh",lN="Restart the panel and the affected nodes for the plugin changes to take effect.",iN="Search plugins",KN="Uninstall",XN="Uninstalled",cN="This plugin is still installed on other nodes.",rN="The market could not be reached; check the market address",dN="v{version}",uN="Plugin details",SN="Back to plugin market",$N="No detailed description available",mN="Installed v{version}",pN="Published: {date}",vN="Size: {size} · {count} files",gN="No release notes available",fN="The plugin or version was not found, has not been approved, or has been delisted",VN="Readme",bN="Versions",hN="Tags",kN="Additional info",FN="Plugin ID",BN="Vendor",yN="Latest",HN="Panel plugin",YN="Daemon plugin",wN="Panel + daemon plugin",WN="Updates",xN="This plugin requires a different host API or browser SDK version. Update ElementsPanel before installing.",zN="Please select a node before installing!",qN="This plugin is bundled with the panel and cannot be uninstalled here.",jN="npm install failed. Check the network, registry and package name, then retry.",ZN="Add",QN="Modify",JN="Manage plugin: {name}",_A="Target version",TA="current",EA="Current version",eA="Not installed",NA="Dependency",AA="Required version",nA="Dependency type",DA="Optional peer",IA="Runtime",tA="Current host: {version}",RA="Install and enable this plugin",LA="npm manages package dependencies for the selected version. Frontend plugin dependencies must also be installed and enabled in plugin configuration.",OA="Configure",sA="Configuration target",CA="This version is deprecated: {reason}",PA="Changing major versions may introduce incompatible configuration or behavior.",oA="Bulk operation mode",aA="Stage installs, updates and removals, then choose Apply changes to execute them.",UA="Apply changes",MA="Waiting to install",GA="Waiting to update",lA="Waiting to remove",iA="Discard this change",KA="Discard all changes",XA="Changes applied",cA="Also clear user overrides for this plugin",rA="Configuration is kept by default. Clearing only affects panel/node configuration overrides, not data saved by the plugin itself.",dA="Deploy to nodes",uA="Repair",SA="Version on this panel",$A="This plugin is managed by the host. Its version cannot be changed or uninstalled in the market.",mA={TXT_CODE_PLUGIN_MARKET:Je,TXT_CODE_PLUGIN_MARKET_ADDR:_N,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:TN,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:EN,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:eN,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:NN,TXT_CODE_PLUGIN_MARKET_BY:AN,TXT_CODE_PLUGIN_MARKET_CANCEL:nN,TXT_CODE_PLUGIN_MARKET_CONFIRM:DN,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:IN,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:tN,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:RN,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:LN,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:ON,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:sN,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:CN,TXT_CODE_PLUGIN_MARKET_EMPTY:PN,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:oN,TXT_CODE_PLUGIN_MARKET_INSTALL:aN,TXT_CODE_PLUGIN_MARKET_INSTALLED:UN,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:MN,TXT_CODE_PLUGIN_MARKET_REFRESH:GN,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:lN,TXT_CODE_PLUGIN_MARKET_SEARCH:iN,TXT_CODE_PLUGIN_MARKET_UNINSTALL:KN,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:XN,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:cN,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:rN,TXT_CODE_PLUGIN_MARKET_VERSION:dN,TXT_CODE_PLUGIN_MARKET_DETAIL:uN,TXT_CODE_PLUGIN_MARKET_BACK:SN,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:$N,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:mN,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:pN,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:vN,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:gN,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:fN,TXT_CODE_PLUGIN_MARKET_README:VN,TXT_CODE_PLUGIN_MARKET_VERSIONS:bN,TXT_CODE_PLUGIN_MARKET_TAGS:hN,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:kN,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:FN,TXT_CODE_PLUGIN_MARKET_VENDOR:BN,TXT_CODE_PLUGIN_MARKET_LATEST:yN,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:HN,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:YN,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:wN,TXT_CODE_PLUGIN_MARKET_UPDATES:WN,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:xN,TXT_CODE_2de92a5d:zN,TXT_CODE_PLUGIN_MARKET_BUNDLED:qN,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:jN,TXT_CODE_PLUGIN_MARKET_ADD:ZN,TXT_CODE_PLUGIN_MARKET_MODIFY:QN,TXT_CODE_PLUGIN_MARKET_MANAGE:JN,TXT_CODE_PLUGIN_MARKET_TARGET_VERSION:_A,TXT_CODE_PLUGIN_MARKET_CURRENT:TA,TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION:EA,TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED:eA,TXT_CODE_PLUGIN_MARKET_DEPENDENCY:NA,TXT_CODE_PLUGIN_MARKET_VERSION_RANGE:AA,TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE:nA,TXT_CODE_PLUGIN_MARKET_OPTIONAL:DA,TXT_CODE_PLUGIN_MARKET_RUNTIME:IA,TXT_CODE_PLUGIN_MARKET_HOST_CURRENT:tA,TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY:RA,TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES:LA,TXT_CODE_PLUGIN_MARKET_CONFIGURE:OA,TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET:sA,TXT_CODE_PLUGIN_MARKET_DEPRECATED:CA,TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING:PA,TXT_CODE_PLUGIN_MARKET_BULK_MODE:oA,TXT_CODE_PLUGIN_MARKET_BULK_HINT:aA,TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES:UA,TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL:MA,TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE:GA,TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE:lA,TXT_CODE_PLUGIN_MARKET_DISCARD:iA,TXT_CODE_PLUGIN_MARKET_DISCARD_ALL:KA,TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED:XA,TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG:cA,TXT_CODE_PLUGIN_MARKET_KEEP_DATA:rA,TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES:dA,TXT_CODE_PLUGIN_MARKET_REPAIR:uA,TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT:SA,TXT_CODE_PLUGIN_MARKET_PROTECTED:$A},pA="Mercado de plugins",vA="Dirección del mercado",gA="Dirección del sitio del mercado de plugins, de ahí viene la lista",fA="Dirección de mercado no válida: usa una dirección http(s) sin consulta, fragmento ni credenciales",VA="Los archivos descargados no coinciden con el paquete publicado en el mercado",bA="El paquete contiene una ruta de archivo no válida",hA="por {name}",kA="Cancelar",FA="Confirmar",BA="Seleccionar nodos",yA="Instalar la mitad del daemon en estos nodos",HA="Eliminar la mitad del daemon de estos nodos",YA="desconectado",wA="No se pudieron actualizar estos nodos: {nodes}",WA="¿Quitar «{name}»?",xA="Ese directorio ya lo usa otro plugin",zA="El mercado aún no tiene plugins",qA="El paquete no contiene archivos instalables",jA="Instalar",ZA="Instalado",QA="Sin resumen",JA="Actualizar",_n="Reinicie el panel y los nodos afectados para que los cambios del plugin surtan efecto.",Tn="Buscar plugins",En="Desinstalar",en="Desinstalado",Nn="Este plugin sigue instalado en otros nodos.",An="No se pudo conectar con el mercado; revisa la dirección",nn="v{version}",Dn="Detalles del complemento",In="Volver al mercado de complementos",tn="No hay una descripción detallada",Rn="Instalada v{version}",Ln="Publicado: {date}",On="Tamaño: {size} · {count} archivos",sn="No hay notas de la versión",Cn="El complemento o la versión no existe, no se ha aprobado o se ha retirado del mercado",Pn="Readme",on="Versiones",an="Etiquetas",Un="Información adicional",Mn="ID del complemento",Gn="Proveedor",ln="Más reciente",Kn="Complemento de panel",Xn="Complemento de daemon",cn="Complemento de panel y daemon",rn="Novedades",dn="Este complemento requiere otra versión de la API del servidor o del SDK del navegador. Actualiza ElementsPanel primero.",un="¡Seleccione un nodo antes de instalar!",Sn="This plugin is bundled with the panel and cannot be uninstalled here.",$n="npm install failed. Check the network, registry and package name, then retry.",mn="Añadir",pn="Modificar",vn="Gestionar complemento: {name}",gn="Versión de destino",fn="actual",Vn="Versión actual",bn="Sin instalar",hn="Dependencia",kn="Versión requerida",Fn="Tipo de dependencia",Bn="Peer opcional",yn="Entorno",Hn="Servidor actual: {version}",Yn="Instalar y activar este complemento",wn="npm gestiona las dependencias de la versión seleccionada. Los complementos del frontend también deben instalarse y activarse en la configuración.",Wn="Configurar",xn="Destino de configuración",zn="Esta versión está obsoleta: {reason}",qn="Cambiar de versión principal puede causar incompatibilidades en la configuración o el comportamiento.",jn="Operaciones por lotes",Zn="Preparar instalaciones, actualizaciones y eliminaciones y ejecutarlas con Aplicar cambios.",Qn="Aplicar cambios",Jn="Instalación pendiente",_D="Actualización pendiente",TD="Eliminación pendiente",ED="Descartar este cambio",eD="Descartar todos los cambios",ND="Cambios aplicados",AD="Borrar también los ajustes del usuario de este complemento",nD="La configuración se conserva por defecto. Solo se borran ajustes del panel/nodo, no los datos guardados por el propio complemento.",DD="Desplegar en nodos",ID="Reparar",tD="Versión en este panel",RD="El servidor gestiona este complemento. No se puede cambiar su versión ni desinstalarlo desde el mercado.",LD={TXT_CODE_PLUGIN_MARKET:pA,TXT_CODE_PLUGIN_MARKET_ADDR:vA,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:gA,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:fA,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:VA,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:bA,TXT_CODE_PLUGIN_MARKET_BY:hA,TXT_CODE_PLUGIN_MARKET_CANCEL:kA,TXT_CODE_PLUGIN_MARKET_CONFIRM:FA,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:BA,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:yA,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:HA,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:YA,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:wA,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:WA,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:xA,TXT_CODE_PLUGIN_MARKET_EMPTY:zA,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:qA,TXT_CODE_PLUGIN_MARKET_INSTALL:jA,TXT_CODE_PLUGIN_MARKET_INSTALLED:ZA,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:QA,TXT_CODE_PLUGIN_MARKET_REFRESH:JA,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:_n,TXT_CODE_PLUGIN_MARKET_SEARCH:Tn,TXT_CODE_PLUGIN_MARKET_UNINSTALL:En,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:en,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:Nn,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:An,TXT_CODE_PLUGIN_MARKET_VERSION:nn,TXT_CODE_PLUGIN_MARKET_DETAIL:Dn,TXT_CODE_PLUGIN_MARKET_BACK:In,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:tn,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:Rn,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:Ln,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:On,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:sn,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:Cn,TXT_CODE_PLUGIN_MARKET_README:Pn,TXT_CODE_PLUGIN_MARKET_VERSIONS:on,TXT_CODE_PLUGIN_MARKET_TAGS:an,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:Un,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:Mn,TXT_CODE_PLUGIN_MARKET_VENDOR:Gn,TXT_CODE_PLUGIN_MARKET_LATEST:ln,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:Kn,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:Xn,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:cn,TXT_CODE_PLUGIN_MARKET_UPDATES:rn,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:dn,TXT_CODE_2de92a5d:un,TXT_CODE_PLUGIN_MARKET_BUNDLED:Sn,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:$n,TXT_CODE_PLUGIN_MARKET_ADD:mn,TXT_CODE_PLUGIN_MARKET_MODIFY:pn,TXT_CODE_PLUGIN_MARKET_MANAGE:vn,TXT_CODE_PLUGIN_MARKET_TARGET_VERSION:gn,TXT_CODE_PLUGIN_MARKET_CURRENT:fn,TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION:Vn,TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED:bn,TXT_CODE_PLUGIN_MARKET_DEPENDENCY:hn,TXT_CODE_PLUGIN_MARKET_VERSION_RANGE:kn,TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE:Fn,TXT_CODE_PLUGIN_MARKET_OPTIONAL:Bn,TXT_CODE_PLUGIN_MARKET_RUNTIME:yn,TXT_CODE_PLUGIN_MARKET_HOST_CURRENT:Hn,TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY:Yn,TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES:wn,TXT_CODE_PLUGIN_MARKET_CONFIGURE:Wn,TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET:xn,TXT_CODE_PLUGIN_MARKET_DEPRECATED:zn,TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING:qn,TXT_CODE_PLUGIN_MARKET_BULK_MODE:jn,TXT_CODE_PLUGIN_MARKET_BULK_HINT:Zn,TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES:Qn,TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL:Jn,TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE:_D,TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE:TD,TXT_CODE_PLUGIN_MARKET_DISCARD:ED,TXT_CODE_PLUGIN_MARKET_DISCARD_ALL:eD,TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED:ND,TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG:AD,TXT_CODE_PLUGIN_MARKET_KEEP_DATA:nD,TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES:DD,TXT_CODE_PLUGIN_MARKET_REPAIR:ID,TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT:tD,TXT_CODE_PLUGIN_MARKET_PROTECTED:RD},OD="Marché de plugins",sD="Adresse du marché",CD="Adresse du site du marché de plugins, d'où vient la liste",PD="Adresse de marché invalide : utilisez une adresse http(s) sans requête, fragment ni identifiants",oD="Les fichiers téléchargés ne correspondent pas au paquet publié sur le marché",aD="Le paquet contient un chemin de fichier invalide",UD="par {name}",MD="Annuler",GD="Confirmer",lD="Choisir les nœuds",iD="Installer la moitié démon sur ces nœuds",KD="Supprimer la moitié démon de ces nœuds",XD="hors ligne",cD="Ces nœuds n'ont pas pu être mis à jour : {nodes}",rD="Retirer « {name} » ?",dD="Ce répertoire est déjà utilisé par un autre plugin",uD="Le marché ne contient pas encore de plugin",SD="Le paquet ne contient aucun fichier installable",$D="Installer",mD="Installé",pD="Aucun résumé",vD="Actualiser",gD="Redémarrez le panneau et les nœuds concernés pour appliquer les modifications du plugin.",fD="Rechercher des plugins",VD="Désinstaller",bD="Désinstallé",hD="Ce plugin est toujours installé sur d’autres nœuds.",kD="Le marché est inaccessible ; vérifiez l'adresse",FD="v{version}",BD="Détails du plugin",yD="Retour au marché des plugins",HD="Aucune description détaillée disponible",YD="Version installée v{version}",wD="Publication : {date}",WD="Taille : {size} · {count} fichiers",xD="Aucune note de version disponible",zD="Le plugin ou la version est introuvable, en attente de validation ou retiré du marché",qD="Readme",jD="Versions",ZD="Étiquettes",QD="Informations complémentaires",JD="ID de l'extension",_I="Fournisseur",TI="Dernière",EI="Extension de panel",eI="Extension de daemon",NI="Extension panel et daemon",AI="Nouveautés",nI="Ce plugin nécessite une autre version de l’API hôte ou du SDK navigateur. Mettez d’abord ElementsPanel à jour.",DI="Veuillez sélectionner un nœud avant l'installation!",II="This plugin is bundled with the panel and cannot be uninstalled here.",tI="npm install failed. Check the network, registry and package name, then retry.",RI="Ajouter",LI="Modifier",OI="Gérer le plugin : {name}",sI="Version cible",CI="actuelle",PI="Version actuelle",oI="Non installé",aI="Dépendance",UI="Version requise",MI="Type de dépendance",GI="Pair facultatif",lI="Environnement",iI="Hôte actuel : {version}",KI="Installer et activer ce plugin",XI="npm gère les dépendances de la version choisie. Les plugins du frontend doivent aussi être installés et activés dans la configuration.",cI="Configurer",rI="Cible de configuration",dI="Cette version est obsolète : {reason}",uI="Changer de version majeure peut rendre la configuration ou le comportement incompatibles.",SI="Opérations par lot",$I="Préparer les installations, mises à jour et suppressions, puis choisir Appliquer les modifications.",mI="Appliquer les modifications",pI="Installation en attente",vI="Mise à jour en attente",gI="Suppression en attente",fI="Abandonner cette modification",VI="Abandonner toutes les modifications",bI="Modifications appliquées",hI="Effacer aussi la configuration utilisateur de ce plugin",kI="La configuration est conservée par défaut. Seules les préférences du panneau/nœud sont effacées, pas les données enregistrées par le plugin.",FI="Déployer sur les nœuds",BI="Réparer",yI="Version sur ce panneau",HI="Ce plugin est géré par l’hôte. Sa version ne peut pas être modifiée ou désinstallée depuis le marché.",YI={TXT_CODE_PLUGIN_MARKET:OD,TXT_CODE_PLUGIN_MARKET_ADDR:sD,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:CD,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:PD,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:oD,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:aD,TXT_CODE_PLUGIN_MARKET_BY:UD,TXT_CODE_PLUGIN_MARKET_CANCEL:MD,TXT_CODE_PLUGIN_MARKET_CONFIRM:GD,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:lD,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:iD,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:KD,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:XD,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:cD,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:rD,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:dD,TXT_CODE_PLUGIN_MARKET_EMPTY:uD,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:SD,TXT_CODE_PLUGIN_MARKET_INSTALL:$D,TXT_CODE_PLUGIN_MARKET_INSTALLED:mD,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:pD,TXT_CODE_PLUGIN_MARKET_REFRESH:vD,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:gD,TXT_CODE_PLUGIN_MARKET_SEARCH:fD,TXT_CODE_PLUGIN_MARKET_UNINSTALL:VD,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:bD,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:hD,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:kD,TXT_CODE_PLUGIN_MARKET_VERSION:FD,TXT_CODE_PLUGIN_MARKET_DETAIL:BD,TXT_CODE_PLUGIN_MARKET_BACK:yD,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:HD,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:YD,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:wD,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:WD,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:xD,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:zD,TXT_CODE_PLUGIN_MARKET_README:qD,TXT_CODE_PLUGIN_MARKET_VERSIONS:jD,TXT_CODE_PLUGIN_MARKET_TAGS:ZD,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:QD,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:JD,TXT_CODE_PLUGIN_MARKET_VENDOR:_I,TXT_CODE_PLUGIN_MARKET_LATEST:TI,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:EI,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:eI,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:NI,TXT_CODE_PLUGIN_MARKET_UPDATES:AI,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:nI,TXT_CODE_2de92a5d:DI,TXT_CODE_PLUGIN_MARKET_BUNDLED:II,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:tI,TXT_CODE_PLUGIN_MARKET_ADD:RI,TXT_CODE_PLUGIN_MARKET_MODIFY:LI,TXT_CODE_PLUGIN_MARKET_MANAGE:OI,TXT_CODE_PLUGIN_MARKET_TARGET_VERSION:sI,TXT_CODE_PLUGIN_MARKET_CURRENT:CI,TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION:PI,TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED:oI,TXT_CODE_PLUGIN_MARKET_DEPENDENCY:aI,TXT_CODE_PLUGIN_MARKET_VERSION_RANGE:UI,TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE:MI,TXT_CODE_PLUGIN_MARKET_OPTIONAL:GI,TXT_CODE_PLUGIN_MARKET_RUNTIME:lI,TXT_CODE_PLUGIN_MARKET_HOST_CURRENT:iI,TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY:KI,TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES:XI,TXT_CODE_PLUGIN_MARKET_CONFIGURE:cI,TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET:rI,TXT_CODE_PLUGIN_MARKET_DEPRECATED:dI,TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING:uI,TXT_CODE_PLUGIN_MARKET_BULK_MODE:SI,TXT_CODE_PLUGIN_MARKET_BULK_HINT:$I,TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES:mI,TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL:pI,TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE:vI,TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE:gI,TXT_CODE_PLUGIN_MARKET_DISCARD:fI,TXT_CODE_PLUGIN_MARKET_DISCARD_ALL:VI,TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED:bI,TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG:hI,TXT_CODE_PLUGIN_MARKET_KEEP_DATA:kI,TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES:FI,TXT_CODE_PLUGIN_MARKET_REPAIR:BI,TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT:yI,TXT_CODE_PLUGIN_MARKET_PROTECTED:HI},wI="プラグインマーケット",WI="マーケットのアドレス",xI="プラグイン一覧の取得元となるマーケットサイトのアドレス",zI="マーケットアドレスが不正です。クエリ・フラグメント・認証情報を含まない http(s) のアドレスを入力してください",qI="ダウンロードしたファイルがマーケットで公開されているパッケージと一致しません",jI="パッケージに不正なファイルパスが含まれています",ZI="作者: {name}",QI="キャンセル",JI="確定",_t="ノードを選択",Tt="次のノードにデーモン側をインストールします",Et="次のノードからデーモン側を削除します",et="オフライン",Nt="次のノードを更新できませんでした:{nodes}",At="「{name}」を削除しますか?",nt="そのインストール先ディレクトリは別のプラグインが使用しています",Dt="マーケットにはまだプラグインがありません",It="パッケージにインストールできるファイルがありません",tt="インストール",Rt="インストール済み",Lt="概要なし",Ot="更新",st="プラグインの変更を反映するには、パネルと対象ノードを再起動してください。",Ct="プラグインを検索",Pt="アンインストール",ot="アンインストール済み",at="このプラグインは他のノードにまだインストールされています。",Ut="マーケットに接続できません。アドレスを確認してください",Mt="v{version}",Gt="プラグインの詳細",lt="プラグインマーケットに戻る",it="詳細な説明はありません",Kt="インストール済み v{version}",Xt="公開日時:{date}",ct="サイズ:{size} · {count} ファイル",rt="更新内容はありません",dt="プラグインまたはバージョンが存在しないか、未承認または公開停止されています",ut="Readme",St="バージョン",$t="タグ",mt="追加情報",pt="プラグイン ID",vt="開発元",gt="最新",ft="Panel プラグイン",Vt="Daemon プラグイン",bt="Panel・Daemon 両対応プラグイン",ht="更新履歴",kt="このプラグインには別のホスト API またはブラウザー SDK が必要です。先に ElementsPanel を更新してください。",Ft="インストールする前にノードを選択してください!",Bt="This plugin is bundled with the panel and cannot be uninstalled here.",yt="npm install failed. Check the network, registry and package name, then retry.",Ht="追加",Yt="変更",wt="プラグイン管理:{name}",Wt="対象バージョン",xt="現在",zt="現在のバージョン",qt="未インストール",jt="依存関係",Zt="必要なバージョン",Qt="依存関係の種類",Jt="任意の peer 依存",_R="実行環境",TR="現在のホスト:{version}",ER="このプラグインのインストールと有効化が必要",eR="パッケージの依存関係は選択したバージョンに従って npm が処理します。フロントエンドの依存プラグインは設定画面でインストールして有効にしてください。",NR="設定",AR="設定対象",nR="このバージョンは非推奨です:{reason}",DR="メジャーバージョンの変更により、設定や動作に互換性の問題が生じる場合があります。",IR="一括操作モード",tR="インストール・更新・削除を保留し、「変更を適用」で実行します。",RR="変更を適用",LR="インストール待ち",OR="更新待ち",sR="削除待ち",CR="この変更を破棄",PR="すべての変更を破棄",oR="変更を適用しました",aR="このプラグインのユーザー設定も消去する",UR="設定は既定で保持されます。消去するのはパネル・ノードの設定上書きのみで、プラグイン独自のデータは削除しません。",MR="ノードに配布",GR="修復",lR="このパネルのバージョン",iR="このプラグインはホストが管理しているため、マーケットではバージョン変更や削除はできません。",KR={TXT_CODE_PLUGIN_MARKET:wI,TXT_CODE_PLUGIN_MARKET_ADDR:WI,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:xI,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:zI,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:qI,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:jI,TXT_CODE_PLUGIN_MARKET_BY:ZI,TXT_CODE_PLUGIN_MARKET_CANCEL:QI,TXT_CODE_PLUGIN_MARKET_CONFIRM:JI,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:_t,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:Tt,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:Et,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:et,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:Nt,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:At,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:nt,TXT_CODE_PLUGIN_MARKET_EMPTY:Dt,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:It,TXT_CODE_PLUGIN_MARKET_INSTALL:tt,TXT_CODE_PLUGIN_MARKET_INSTALLED:Rt,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:Lt,TXT_CODE_PLUGIN_MARKET_REFRESH:Ot,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:st,TXT_CODE_PLUGIN_MARKET_SEARCH:Ct,TXT_CODE_PLUGIN_MARKET_UNINSTALL:Pt,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:ot,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:at,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:Ut,TXT_CODE_PLUGIN_MARKET_VERSION:Mt,TXT_CODE_PLUGIN_MARKET_DETAIL:Gt,TXT_CODE_PLUGIN_MARKET_BACK:lt,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:it,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:Kt,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:Xt,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:ct,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:rt,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:dt,TXT_CODE_PLUGIN_MARKET_README:ut,TXT_CODE_PLUGIN_MARKET_VERSIONS:St,TXT_CODE_PLUGIN_MARKET_TAGS:$t,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:mt,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:pt,TXT_CODE_PLUGIN_MARKET_VENDOR:vt,TXT_CODE_PLUGIN_MARKET_LATEST:gt,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:ft,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:Vt,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:bt,TXT_CODE_PLUGIN_MARKET_UPDATES:ht,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:kt,TXT_CODE_2de92a5d:Ft,TXT_CODE_PLUGIN_MARKET_BUNDLED:Bt,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:yt,TXT_CODE_PLUGIN_MARKET_ADD:Ht,TXT_CODE_PLUGIN_MARKET_MODIFY:Yt,TXT_CODE_PLUGIN_MARKET_MANAGE:wt,TXT_CODE_PLUGIN_MARKET_TARGET_VERSION:Wt,TXT_CODE_PLUGIN_MARKET_CURRENT:xt,TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION:zt,TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED:qt,TXT_CODE_PLUGIN_MARKET_DEPENDENCY:jt,TXT_CODE_PLUGIN_MARKET_VERSION_RANGE:Zt,TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE:Qt,TXT_CODE_PLUGIN_MARKET_OPTIONAL:Jt,TXT_CODE_PLUGIN_MARKET_RUNTIME:_R,TXT_CODE_PLUGIN_MARKET_HOST_CURRENT:TR,TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY:ER,TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES:eR,TXT_CODE_PLUGIN_MARKET_CONFIGURE:NR,TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET:AR,TXT_CODE_PLUGIN_MARKET_DEPRECATED:nR,TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING:DR,TXT_CODE_PLUGIN_MARKET_BULK_MODE:IR,TXT_CODE_PLUGIN_MARKET_BULK_HINT:tR,TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES:RR,TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL:LR,TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE:OR,TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE:sR,TXT_CODE_PLUGIN_MARKET_DISCARD:CR,TXT_CODE_PLUGIN_MARKET_DISCARD_ALL:PR,TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED:oR,TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG:aR,TXT_CODE_PLUGIN_MARKET_KEEP_DATA:UR,TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES:MR,TXT_CODE_PLUGIN_MARKET_REPAIR:GR,TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT:lR,TXT_CODE_PLUGIN_MARKET_PROTECTED:iR},XR="플러그인 마켓",cR="마켓 주소",rR="플러그인 목록을 가져오는 마켓 사이트 주소",dR="마켓 주소가 올바르지 않습니다. 쿼리, 프래그먼트, 자격 증명이 없는 http(s) 주소를 입력하세요",uR="다운로드한 파일이 마켓에 게시된 패키지와 일치하지 않습니다",SR="패키지에 잘못된 파일 경로가 있습니다",$R="제작자: {name}",mR="취소",pR="확인",vR="노드 선택",gR="다음 노드에 데몬 부분을 설치합니다",fR="다음 노드에서 데몬 부분을 제거합니다",VR="오프라인",bR="다음 노드를 갱신하지 못했습니다: {nodes}",hR='"{name}"을(를) 제거할까요?',kR="해당 설치 디렉터리는 다른 플러그인이 사용 중입니다",FR="마켓에 아직 플러그인이 없습니다",BR="패키지에 설치할 파일이 없습니다",yR="설치",HR="설치됨",YR="요약 없음",wR="새로 고침",WR="플러그인 변경 사항을 적용하려면 패널과 해당 노드를 다시 시작하세요.",xR="플러그인 검색",zR="제거",qR="제거됨",jR="이 플러그인은 다른 노드에 아직 설치되어 있습니다.",ZR="마켓에 연결할 수 없습니다. 주소를 확인하세요",QR="v{version}",JR="플러그인 상세 정보",_L="플러그인 마켓으로 돌아가기",TL="상세 설명이 없습니다",EL="설치됨 v{version}",eL="게시일: {date}",NL="크기: {size} · 파일 {count}개",AL="업데이트 내역이 없습니다",nL="플러그인 또는 버전이 없거나, 승인되지 않았거나, 마켓에서 내려갔습니다",DL="Readme",IL="버전",tL="태그",RL="추가 정보",LL="플러그인 ID",OL="제작자",sL="최신",CL="Panel 플러그인",PL="Daemon 플러그인",oL="Panel + Daemon 플러그인",aL="업데이트",UL="이 플러그인에는 다른 호스트 API 또는 브라우저 SDK 버전이 필요합니다. 먼저 ElementsPanel을 업데이트하세요.",ML="설치하기 전에 노드를 선택하십시오!",GL="This plugin is bundled with the panel and cannot be uninstalled here.",lL="npm install failed. Check the network, registry and package name, then retry.",iL="추가",KL="수정",XL="플러그인 관리: {name}",cL="대상 버전",rL="현재",dL="현재 버전",uL="설치되지 않음",SL="의존성",$L="필요한 버전",mL="의존성 유형",pL="선택적 peer",vL="실행 환경",gL="현재 호스트: {version}",fL="이 플러그인을 설치하고 활성화하세요",VL="npm이 선택한 버전의 패키지 의존성을 처리합니다. 프런트엔드 플러그인 의존성은 플러그인 설정에서 설치하고 활성화해야 합니다.",bL="설정",hL="설정 대상",kL="이 버전은 지원 중단되었습니다: {reason}",FL="주 버전을 변경하면 설정이나 동작이 호환되지 않을 수 있습니다.",BL="일괄 작업 모드",yL="설치, 업데이트, 제거를 보류한 뒤 변경 사항 적용으로 실행합니다.",HL="변경 사항 적용",YL="설치 대기",wL="업데이트 대기",WL="제거 대기",xL="이 변경 취소",zL="모든 변경 취소",qL="변경 사항이 적용됨",jL="이 플러그인의 사용자 설정도 지우기",ZL="기본적으로 설정을 유지합니다. 패널/노드의 사용자 설정만 지우며 플러그인이 저장한 데이터는 삭제하지 않습니다.",QL="노드에 배포",JL="복구",_O="이 패널의 버전",TO="이 플러그인은 호스트가 관리하므로 마켓에서 버전을 변경하거나 제거할 수 없습니다.",EO={TXT_CODE_PLUGIN_MARKET:XR,TXT_CODE_PLUGIN_MARKET_ADDR:cR,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:rR,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:dR,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:uR,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:SR,TXT_CODE_PLUGIN_MARKET_BY:$R,TXT_CODE_PLUGIN_MARKET_CANCEL:mR,TXT_CODE_PLUGIN_MARKET_CONFIRM:pR,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:vR,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:gR,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:fR,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:VR,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:bR,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:hR,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:kR,TXT_CODE_PLUGIN_MARKET_EMPTY:FR,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:BR,TXT_CODE_PLUGIN_MARKET_INSTALL:yR,TXT_CODE_PLUGIN_MARKET_INSTALLED:HR,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:YR,TXT_CODE_PLUGIN_MARKET_REFRESH:wR,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:WR,TXT_CODE_PLUGIN_MARKET_SEARCH:xR,TXT_CODE_PLUGIN_MARKET_UNINSTALL:zR,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:qR,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:jR,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:ZR,TXT_CODE_PLUGIN_MARKET_VERSION:QR,TXT_CODE_PLUGIN_MARKET_DETAIL:JR,TXT_CODE_PLUGIN_MARKET_BACK:_L,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:TL,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:EL,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:eL,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:NL,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:AL,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:nL,TXT_CODE_PLUGIN_MARKET_README:DL,TXT_CODE_PLUGIN_MARKET_VERSIONS:IL,TXT_CODE_PLUGIN_MARKET_TAGS:tL,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:RL,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:LL,TXT_CODE_PLUGIN_MARKET_VENDOR:OL,TXT_CODE_PLUGIN_MARKET_LATEST:sL,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:CL,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:PL,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:oL,TXT_CODE_PLUGIN_MARKET_UPDATES:aL,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:UL,TXT_CODE_2de92a5d:ML,TXT_CODE_PLUGIN_MARKET_BUNDLED:GL,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:lL,TXT_CODE_PLUGIN_MARKET_ADD:iL,TXT_CODE_PLUGIN_MARKET_MODIFY:KL,TXT_CODE_PLUGIN_MARKET_MANAGE:XL,TXT_CODE_PLUGIN_MARKET_TARGET_VERSION:cL,TXT_CODE_PLUGIN_MARKET_CURRENT:rL,TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION:dL,TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED:uL,TXT_CODE_PLUGIN_MARKET_DEPENDENCY:SL,TXT_CODE_PLUGIN_MARKET_VERSION_RANGE:$L,TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE:mL,TXT_CODE_PLUGIN_MARKET_OPTIONAL:pL,TXT_CODE_PLUGIN_MARKET_RUNTIME:vL,TXT_CODE_PLUGIN_MARKET_HOST_CURRENT:gL,TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY:fL,TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES:VL,TXT_CODE_PLUGIN_MARKET_CONFIGURE:bL,TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET:hL,TXT_CODE_PLUGIN_MARKET_DEPRECATED:kL,TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING:FL,TXT_CODE_PLUGIN_MARKET_BULK_MODE:BL,TXT_CODE_PLUGIN_MARKET_BULK_HINT:yL,TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES:HL,TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL:YL,TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE:wL,TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE:WL,TXT_CODE_PLUGIN_MARKET_DISCARD:xL,TXT_CODE_PLUGIN_MARKET_DISCARD_ALL:zL,TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED:qL,TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG:jL,TXT_CODE_PLUGIN_MARKET_KEEP_DATA:ZL,TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES:QL,TXT_CODE_PLUGIN_MARKET_REPAIR:JL,TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT:_O,TXT_CODE_PLUGIN_MARKET_PROTECTED:TO},eO="Mercado de plugins",NO="Endereço do mercado",AO="Endereço do site do mercado, de onde vem a lista de plugins",nO="Endereço do mercado inválido: use um endereço http(s) sem query, fragmento ou credenciais",DO="Os arquivos baixados não correspondem ao pacote publicado no mercado",IO="O pacote contém um caminho de arquivo inválido",tO="por {name}",RO="Cancelar",LO="Confirmar",OO="Selecionar nós",sO="Instalar a metade do daemon nestes nós",CO="Remover a metade do daemon destes nós",PO="offline",oO="Não foi possível atualizar estes nós: {nodes}",aO='Remover "{name}"?',UO="Esse diretório já é usado por outro plugin",MO="O mercado ainda não tem plugins",GO="O pacote não contém arquivos instaláveis",lO="Instalar",iO="Instalado",KO="Sem resumo",XO="Atualizar",cO="Reinicie o painel e os nós afetados para que as alterações do plugin tenham efeito.",rO="Buscar plugins",dO="Desinstalar",uO="Desinstalado",SO="Este plugin ainda está instalado em outros nós.",$O="Não foi possível conectar ao mercado; verifique o endereço",mO="v{version}",pO="Detalhes do plugin",vO="Voltar ao mercado de plugins",gO="Nenhuma descrição detalhada disponível",fO="Instalada v{version}",VO="Publicado em: {date}",bO="Tamanho: {size} · {count} arquivos",hO="Nenhuma nota da versão disponível",kO="O plugin ou a versão não foi encontrado, não foi aprovado ou foi retirado do mercado",FO="Readme",BO="Versões",yO="Tags",HO="Informações adicionais",YO="ID do plugin",wO="Fornecedor",WO="Mais recente",xO="Plugin de painel",zO="Plugin de daemon",qO="Plugin de painel e daemon",jO="Novidades",ZO="Este plugin requer outra versão da API do host ou do SDK do navegador. Atualize o ElementsPanel primeiro.",QO="Selecione um nó antes de instalar!",JO="This plugin is bundled with the panel and cannot be uninstalled here.",_s="npm install failed. Check the network, registry and package name, then retry.",Ts="Adicionar",Es="Modificar",es="Gerenciar plugin: {name}",Ns="Versão de destino",As="atual",ns="Versão atual",Ds="Não instalado",Is="Dependência",ts="Versão necessária",Rs="Tipo de dependência",Ls="Peer opcional",Os="Ambiente",ss="Host atual: {version}",Cs="Instale e ative este plugin",Ps="O npm gerencia as dependências da versão selecionada. Plugins do frontend também precisam ser instalados e ativados na configuração.",os="Configurar",as="Destino da configuração",Us="Esta versão foi descontinuada: {reason}",Ms="Alterar a versão principal pode causar incompatibilidades de configuração ou comportamento.",Gs="Operações em lote",ls="Prepare instalações, atualizações e remoções e execute com Aplicar alterações.",is="Aplicar alterações",Ks="Instalação pendente",Xs="Atualização pendente",cs="Remoção pendente",rs="Descartar esta alteração",ds="Descartar todas as alterações",us="Alterações aplicadas",Ss="Limpar também a configuração do usuário deste plugin",$s="A configuração é mantida por padrão. Apenas os ajustes do painel/nó são limpos, não os dados salvos pelo próprio plugin.",ms="Implantar nos nós",ps="Reparar",vs="Versão neste painel",gs="Este plugin é gerenciado pelo host. Sua versão não pode ser alterada nem desinstalada pelo mercado.",fs={TXT_CODE_PLUGIN_MARKET:eO,TXT_CODE_PLUGIN_MARKET_ADDR:NO,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:AO,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:nO,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:DO,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:IO,TXT_CODE_PLUGIN_MARKET_BY:tO,TXT_CODE_PLUGIN_MARKET_CANCEL:RO,TXT_CODE_PLUGIN_MARKET_CONFIRM:LO,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:OO,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:sO,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:CO,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:PO,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:oO,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:aO,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:UO,TXT_CODE_PLUGIN_MARKET_EMPTY:MO,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:GO,TXT_CODE_PLUGIN_MARKET_INSTALL:lO,TXT_CODE_PLUGIN_MARKET_INSTALLED:iO,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:KO,TXT_CODE_PLUGIN_MARKET_REFRESH:XO,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:cO,TXT_CODE_PLUGIN_MARKET_SEARCH:rO,TXT_CODE_PLUGIN_MARKET_UNINSTALL:dO,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:uO,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:SO,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:$O,TXT_CODE_PLUGIN_MARKET_VERSION:mO,TXT_CODE_PLUGIN_MARKET_DETAIL:pO,TXT_CODE_PLUGIN_MARKET_BACK:vO,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:gO,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:fO,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:VO,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:bO,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:hO,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:kO,TXT_CODE_PLUGIN_MARKET_README:FO,TXT_CODE_PLUGIN_MARKET_VERSIONS:BO,TXT_CODE_PLUGIN_MARKET_TAGS:yO,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:HO,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:YO,TXT_CODE_PLUGIN_MARKET_VENDOR:wO,TXT_CODE_PLUGIN_MARKET_LATEST:WO,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:xO,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:zO,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:qO,TXT_CODE_PLUGIN_MARKET_UPDATES:jO,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:ZO,TXT_CODE_2de92a5d:QO,TXT_CODE_PLUGIN_MARKET_BUNDLED:JO,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:_s,TXT_CODE_PLUGIN_MARKET_ADD:Ts,TXT_CODE_PLUGIN_MARKET_MODIFY:Es,TXT_CODE_PLUGIN_MARKET_MANAGE:es,TXT_CODE_PLUGIN_MARKET_TARGET_VERSION:Ns,TXT_CODE_PLUGIN_MARKET_CURRENT:As,TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION:ns,TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED:Ds,TXT_CODE_PLUGIN_MARKET_DEPENDENCY:Is,TXT_CODE_PLUGIN_MARKET_VERSION_RANGE:ts,TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE:Rs,TXT_CODE_PLUGIN_MARKET_OPTIONAL:Ls,TXT_CODE_PLUGIN_MARKET_RUNTIME:Os,TXT_CODE_PLUGIN_MARKET_HOST_CURRENT:ss,TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY:Cs,TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES:Ps,TXT_CODE_PLUGIN_MARKET_CONFIGURE:os,TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET:as,TXT_CODE_PLUGIN_MARKET_DEPRECATED:Us,TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING:Ms,TXT_CODE_PLUGIN_MARKET_BULK_MODE:Gs,TXT_CODE_PLUGIN_MARKET_BULK_HINT:ls,TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES:is,TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL:Ks,TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE:Xs,TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE:cs,TXT_CODE_PLUGIN_MARKET_DISCARD:rs,TXT_CODE_PLUGIN_MARKET_DISCARD_ALL:ds,TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED:us,TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG:Ss,TXT_CODE_PLUGIN_MARKET_KEEP_DATA:$s,TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES:ms,TXT_CODE_PLUGIN_MARKET_REPAIR:ps,TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT:vs,TXT_CODE_PLUGIN_MARKET_PROTECTED:gs},Vs="Маркет плагинов",bs="Адрес маркета",hs="Адрес сайта маркета плагинов, откуда берётся список",ks="Некорректный адрес маркета: укажите http(s)-адрес без query, фрагмента и учётных данных",Fs="Загруженные файлы не совпадают с пакетом, опубликованным в маркете",Bs="Пакет содержит недопустимый путь",ys="автор: {name}",Hs="Отмена",Ys="Подтвердить",ws="Выберите узлы",Ws="Установить часть демона на эти узлы",xs="Удалить часть демона с этих узлов",zs="не в сети",qs="Не удалось обновить эти узлы: {nodes}",js="Удалить «{name}»?",Zs="Этот каталог уже занят другим плагином",Qs="В маркете пока нет плагинов",Js="В пакете нет файлов для установки",_C="Установить",TC="Установлено",EC="Без описания",eC="Обновить",NC="Перезапустите панель и затронутые узлы, чтобы изменения плагина вступили в силу.",AC="Поиск плагинов",nC="Удалить",DC="Удалено",IC="Этот плагин по-прежнему установлен на других узлах.",tC="Не удалось подключиться к маркету, проверьте адрес",RC="v{version}",LC="Сведения о плагине",OC="Назад в магазин плагинов",sC="Подробное описание отсутствует",CC="Установлена v{version}",PC="Опубликовано: {date}",oC="Размер: {size} · Файлов: {count}",aC="Список изменений отсутствует",UC="Плагин или версия не найдены, ещё не одобрены или сняты с публикации",MC="Readme",GC="Версии",lC="Теги",iC="Дополнительная информация",KC="ID плагина",XC="Издатель",cC="Последняя",rC="Плагин панели",dC="Плагин демона",uC="Плагин панели и демона",SC="Обновления",$C="Плагину нужна другая версия API хоста или SDK браузера. Сначала обновите ElementsPanel.",mC="Пожалуйста, выберите узел перед установкой!",pC="This plugin is bundled with the panel and cannot be uninstalled here.",vC="npm install failed. Check the network, registry and package name, then retry.",gC="Добавить",fC="Изменить",VC="Управление плагином: {name}",bC="Целевая версия",hC="текущая",kC="Текущая версия",FC="Не установлен",BC="Зависимость",yC="Требуемая версия",HC="Тип зависимости",YC="Необязательный peer",wC="Среда выполнения",WC="Текущий хост: {version}",xC="Установите и включите этот плагин",zC="npm управляет зависимостями выбранной версии. Плагины интерфейса также нужно установить и включить в настройках.",qC="Настроить",jC="Объект настройки",ZC="Эта версия устарела: {reason}",QC="Смена основной версии может вызвать несовместимость настроек или поведения.",JC="Пакетные операции",_P="Подготовьте установку, обновление и удаление, затем нажмите «Применить изменения».",TP="Применить изменения",EP="Ожидает установки",eP="Ожидает обновления",NP="Ожидает удаления",AP="Отменить это изменение",nP="Отменить все изменения",DP="Изменения применены",IP="Также очистить пользовательские настройки плагина",tP="По умолчанию настройки сохраняются. Удаляются только переопределения панели/узла, а не данные самого плагина.",RP="Развернуть на узлах",LP="Восстановить",OP="Версия на этой панели",sP="Этот плагин управляется хостом. Нельзя изменить его версию или удалить через рынок.",CP={TXT_CODE_PLUGIN_MARKET:Vs,TXT_CODE_PLUGIN_MARKET_ADDR:bs,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:hs,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:ks,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:Fs,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:Bs,TXT_CODE_PLUGIN_MARKET_BY:ys,TXT_CODE_PLUGIN_MARKET_CANCEL:Hs,TXT_CODE_PLUGIN_MARKET_CONFIRM:Ys,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:ws,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:Ws,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:xs,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:zs,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:qs,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:js,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:Zs,TXT_CODE_PLUGIN_MARKET_EMPTY:Qs,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:Js,TXT_CODE_PLUGIN_MARKET_INSTALL:_C,TXT_CODE_PLUGIN_MARKET_INSTALLED:TC,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:EC,TXT_CODE_PLUGIN_MARKET_REFRESH:eC,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:NC,TXT_CODE_PLUGIN_MARKET_SEARCH:AC,TXT_CODE_PLUGIN_MARKET_UNINSTALL:nC,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:DC,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:IC,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:tC,TXT_CODE_PLUGIN_MARKET_VERSION:RC,TXT_CODE_PLUGIN_MARKET_DETAIL:LC,TXT_CODE_PLUGIN_MARKET_BACK:OC,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:sC,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:CC,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:PC,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:oC,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:aC,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:UC,TXT_CODE_PLUGIN_MARKET_README:MC,TXT_CODE_PLUGIN_MARKET_VERSIONS:GC,TXT_CODE_PLUGIN_MARKET_TAGS:lC,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:iC,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:KC,TXT_CODE_PLUGIN_MARKET_VENDOR:XC,TXT_CODE_PLUGIN_MARKET_LATEST:cC,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:rC,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:dC,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:uC,TXT_CODE_PLUGIN_MARKET_UPDATES:SC,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:$C,TXT_CODE_2de92a5d:mC,TXT_CODE_PLUGIN_MARKET_BUNDLED:pC,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:vC,TXT_CODE_PLUGIN_MARKET_ADD:gC,TXT_CODE_PLUGIN_MARKET_MODIFY:fC,TXT_CODE_PLUGIN_MARKET_MANAGE:VC,TXT_CODE_PLUGIN_MARKET_TARGET_VERSION:bC,TXT_CODE_PLUGIN_MARKET_CURRENT:hC,TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION:kC,TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED:FC,TXT_CODE_PLUGIN_MARKET_DEPENDENCY:BC,TXT_CODE_PLUGIN_MARKET_VERSION_RANGE:yC,TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE:HC,TXT_CODE_PLUGIN_MARKET_OPTIONAL:YC,TXT_CODE_PLUGIN_MARKET_RUNTIME:wC,TXT_CODE_PLUGIN_MARKET_HOST_CURRENT:WC,TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY:xC,TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES:zC,TXT_CODE_PLUGIN_MARKET_CONFIGURE:qC,TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET:jC,TXT_CODE_PLUGIN_MARKET_DEPRECATED:ZC,TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING:QC,TXT_CODE_PLUGIN_MARKET_BULK_MODE:JC,TXT_CODE_PLUGIN_MARKET_BULK_HINT:_P,TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES:TP,TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL:EP,TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE:eP,TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE:NP,TXT_CODE_PLUGIN_MARKET_DISCARD:AP,TXT_CODE_PLUGIN_MARKET_DISCARD_ALL:nP,TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED:DP,TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG:IP,TXT_CODE_PLUGIN_MARKET_KEEP_DATA:tP,TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES:RP,TXT_CODE_PLUGIN_MARKET_REPAIR:LP,TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT:OP,TXT_CODE_PLUGIN_MARKET_PROTECTED:sP},PP="ตลาดปลั๊กอิน",oP="ที่อยู่ตลาด",aP="ที่อยู่ของเว็บตลาดปลั๊กอิน ซึ่งเป็นแหล่งที่มาของรายการปลั๊กอิน",UP="ที่อยู่ตลาดไม่ถูกต้อง: ใช้ที่อยู่ http(s) ที่ไม่มี query, fragment หรือข้อมูลรับรอง",MP="ไฟล์ที่ดาวน์โหลดไม่ตรงกับแพ็กเกจที่เผยแพร่ในตลาด",GP="แพ็กเกจมีเส้นทางไฟล์ที่ไม่ถูกต้อง",lP="โดย {name}",iP="ยกเลิก",KP="ยืนยัน",XP="เลือกโหนด",cP="ติดตั้งส่วนของดีมอนบนโหนดเหล่านี้",rP="ลบส่วนของดีมอนออกจากโหนดเหล่านี้",dP="ออฟไลน์",uP="ไม่สามารถอัปเดตโหนดเหล่านี้ได้: {nodes}",SP='ต้องการถอนการติดตั้ง "{name}" หรือไม่?',$P="โฟลเดอร์ติดตั้งนี้ถูกใช้โดยปลั๊กอินอื่นแล้ว",mP="ยังไม่มีปลั๊กอินในตลาด",pP="แพ็กเกจไม่มีไฟล์ที่ติดตั้งได้",vP="ติดตั้ง",gP="ติดตั้งแล้ว",fP="ไม่มีสรุป",VP="รีเฟรช",bP="รีสตาร์ทแผงควบคุมและโหนดที่เกี่ยวข้องเพื่อให้การเปลี่ยนแปลงปลั๊กอินมีผล",hP="ค้นหาปลั๊กอิน",kP="ถอนการติดตั้ง",FP="ถอนการติดตั้งแล้ว",BP="ปลั๊กอินนี้ยังคงติดตั้งอยู่บนโหนดอื่น",yP="ไม่สามารถเชื่อมต่อตลาดได้ กรุณาตรวจสอบที่อยู่ตลาด",HP="v{version}",YP="รายละเอียดปลั๊กอิน",wP="กลับไปยังตลาดปลั๊กอิน",WP="ยังไม่มีคำอธิบายโดยละเอียด",xP="ติดตั้งแล้ว v{version}",zP="เผยแพร่เมื่อ: {date}",qP="ขนาด: {size} · {count} ไฟล์",jP="ยังไม่มีบันทึกการเปลี่ยนแปลง",ZP="ไม่พบปลั๊กอินหรือเวอร์ชัน ยังไม่ได้รับอนุมัติ หรือถูกนำออกจากตลาด",QP="Readme",JP="เวอร์ชัน",_o="แท็ก",To="ข้อมูลเพิ่มเติม",Eo="ID ปลั๊กอิน",eo="ผู้พัฒนา",No="ล่าสุด",Ao="ปลั๊กอิน Panel",no="ปลั๊กอิน Daemon",Do="ปลั๊กอิน Panel และ Daemon",Io="อัปเดต",to="ปลั๊กอินนี้ต้องใช้ API โฮสต์หรือ SDK เบราว์เซอร์เวอร์ชันอื่น โปรดอัปเดต ElementsPanel ก่อน",Ro="โปรดเลือกโหนดก่อนติดตั้ง!",Lo="This plugin is bundled with the panel and cannot be uninstalled here.",Oo="npm install failed. Check the network, registry and package name, then retry.",so="เพิ่ม",Co="แก้ไข",Po="จัดการปลั๊กอิน: {name}",oo="เวอร์ชันเป้าหมาย",ao="ปัจจุบัน",Uo="เวอร์ชันปัจจุบัน",Mo="ยังไม่ได้ติดตั้ง",Go="การพึ่งพา",lo="เวอร์ชันที่ต้องการ",io="ประเภทการพึ่งพา",Ko="Peer ที่ไม่บังคับ",Xo="สภาพแวดล้อม",co="โฮสต์ปัจจุบัน: {version}",ro="ติดตั้งและเปิดใช้งานปลั๊กอินนี้",uo="npm จัดการแพ็กเกจที่พึ่งพาตามเวอร์ชันที่เลือก ส่วนปลั๊กอินส่วนหน้าต้องติดตั้งและเปิดใช้งานในการตั้งค่า",So="ตั้งค่า",$o="เป้าหมายการตั้งค่า",mo="เวอร์ชันนี้เลิกใช้แล้ว: {reason}",po="การเปลี่ยนเวอร์ชันหลักอาจทำให้การตั้งค่าหรือการทำงานไม่เข้ากัน",vo="โหมดดำเนินการเป็นชุด",go="พักการติดตั้ง อัปเดต และลบไว้ก่อน แล้วเลือกใช้การเปลี่ยนแปลงเพื่อดำเนินการ",fo="ใช้การเปลี่ยนแปลง",Vo="รอติดตั้ง",bo="รออัปเดต",ho="รอลบ",ko="ยกเลิกการเปลี่ยนแปลงนี้",Fo="ยกเลิกการเปลี่ยนแปลงทั้งหมด",Bo="ใช้การเปลี่ยนแปลงแล้ว",yo="ล้างการตั้งค่าผู้ใช้ของปลั๊กอินนี้ด้วย",Ho="เก็บการตั้งค่าไว้โดยค่าเริ่มต้น ล้างเฉพาะค่าที่ผู้ใช้กำหนดในแผงควบคุม/โหนด โดยไม่ลบข้อมูลที่ปลั๊กอินบันทึกเอง",Yo="ติดตั้งบนโหนด",wo="ซ่อมแซม",Wo="เวอร์ชันบนแผงควบคุมนี้",xo="โฮสต์เป็นผู้จัดการปลั๊กอินนี้ จึงไม่สามารถเปลี่ยนเวอร์ชันหรือถอนการติดตั้งผ่านตลาดได้",zo={TXT_CODE_PLUGIN_MARKET:PP,TXT_CODE_PLUGIN_MARKET_ADDR:oP,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:aP,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:UP,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:MP,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:GP,TXT_CODE_PLUGIN_MARKET_BY:lP,TXT_CODE_PLUGIN_MARKET_CANCEL:iP,TXT_CODE_PLUGIN_MARKET_CONFIRM:KP,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:XP,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:cP,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:rP,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:dP,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:uP,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:SP,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:$P,TXT_CODE_PLUGIN_MARKET_EMPTY:mP,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:pP,TXT_CODE_PLUGIN_MARKET_INSTALL:vP,TXT_CODE_PLUGIN_MARKET_INSTALLED:gP,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:fP,TXT_CODE_PLUGIN_MARKET_REFRESH:VP,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:bP,TXT_CODE_PLUGIN_MARKET_SEARCH:hP,TXT_CODE_PLUGIN_MARKET_UNINSTALL:kP,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:FP,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:BP,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:yP,TXT_CODE_PLUGIN_MARKET_VERSION:HP,TXT_CODE_PLUGIN_MARKET_DETAIL:YP,TXT_CODE_PLUGIN_MARKET_BACK:wP,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:WP,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:xP,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:zP,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:qP,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:jP,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:ZP,TXT_CODE_PLUGIN_MARKET_README:QP,TXT_CODE_PLUGIN_MARKET_VERSIONS:JP,TXT_CODE_PLUGIN_MARKET_TAGS:_o,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:To,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:Eo,TXT_CODE_PLUGIN_MARKET_VENDOR:eo,TXT_CODE_PLUGIN_MARKET_LATEST:No,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:Ao,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:no,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:Do,TXT_CODE_PLUGIN_MARKET_UPDATES:Io,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:to,TXT_CODE_2de92a5d:Ro,TXT_CODE_PLUGIN_MARKET_BUNDLED:Lo,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:Oo,TXT_CODE_PLUGIN_MARKET_ADD:so,TXT_CODE_PLUGIN_MARKET_MODIFY:Co,TXT_CODE_PLUGIN_MARKET_MANAGE:Po,TXT_CODE_PLUGIN_MARKET_TARGET_VERSION:oo,TXT_CODE_PLUGIN_MARKET_CURRENT:ao,TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION:Uo,TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED:Mo,TXT_CODE_PLUGIN_MARKET_DEPENDENCY:Go,TXT_CODE_PLUGIN_MARKET_VERSION_RANGE:lo,TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE:io,TXT_CODE_PLUGIN_MARKET_OPTIONAL:Ko,TXT_CODE_PLUGIN_MARKET_RUNTIME:Xo,TXT_CODE_PLUGIN_MARKET_HOST_CURRENT:co,TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY:ro,TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES:uo,TXT_CODE_PLUGIN_MARKET_CONFIGURE:So,TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET:$o,TXT_CODE_PLUGIN_MARKET_DEPRECATED:mo,TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING:po,TXT_CODE_PLUGIN_MARKET_BULK_MODE:vo,TXT_CODE_PLUGIN_MARKET_BULK_HINT:go,TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES:fo,TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL:Vo,TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE:bo,TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE:ho,TXT_CODE_PLUGIN_MARKET_DISCARD:ko,TXT_CODE_PLUGIN_MARKET_DISCARD_ALL:Fo,TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED:Bo,TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG:yo,TXT_CODE_PLUGIN_MARKET_KEEP_DATA:Ho,TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES:Yo,TXT_CODE_PLUGIN_MARKET_REPAIR:wo,TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT:Wo,TXT_CODE_PLUGIN_MARKET_PROTECTED:xo},qo="Eklenti marketi",jo="Market adresi",Zo="Eklenti listesinin geldiği market sitesinin adresi",Qo="Geçersiz market adresi: sorgu, parça veya kimlik bilgisi içermeyen bir http(s) adresi girin",Jo="İndirilen dosyalar markette yayımlanan paketle eşleşmiyor",_a="Paket geçersiz bir dosya yolu içeriyor",Ta="{name} tarafından",Ea="İptal",ea="Onayla",Na="Düğüm seçin",Aa="Daemon kısmını bu düğümlere kur",na="Daemon kısmını bu düğümlerden kaldır",Da="çevrimdışı",Ia="Bu düğümler güncellenemedi: {nodes}",ta='"{name}" kaldırılsın mı?',Ra="Bu kurulum dizini başka bir eklenti tarafından kullanılıyor",La="Marketta henüz eklenti yok",Oa="Pakette kurulabilir dosya yok",sa="Kur",Ca="Kurulu",Pa="Özet yok",oa="Yenile",aa="Eklenti değişikliklerinin etkili olması için paneli ve etkilenen düğümleri yeniden başlatın.",Ua="Eklenti ara",Ma="Kaldır",Ga="Kaldırıldı",la="Bu eklenti diğer düğümlerde hâlâ yüklü.",ia="Markete bağlanılamadı; market adresini kontrol edin",Ka="v{version}",Xa="Eklenti ayrıntıları",ca="Eklenti mağazasına dön",ra="Ayrıntılı açıklama yok",da="Kurulu v{version}",ua="Yayımlanma: {date}",Sa="Boyut: {size} · {count} dosya",$a="Sürüm notları yok",ma="Eklenti veya sürüm bulunamadı, henüz onaylanmadı veya mağazadan kaldırıldı",pa="Readme",va="Sürümler",ga="Etiketler",fa="Ek bilgiler",Va="Eklenti Kimliği",ba="Sağlayıcı",ha="En son",ka="Panel eklentisi",Fa="Daemon eklentisi",Ba="Panel ve daemon eklentisi",ya="Güncellemeler",Ha="Bu eklenti farklı bir ana bilgisayar API veya tarayıcı SDK sürümü gerektiriyor. Önce ElementsPanel’i güncelleyin.",Ya="Lütfen yüklemeden önce bir düğüm seçin!",wa="This plugin is bundled with the panel and cannot be uninstalled here.",Wa="npm install failed. Check the network, registry and package name, then retry.",xa="Ekle",za="Değiştir",qa="Eklentiyi yönet: {name}",ja="Hedef sürüm",Za="geçerli",Qa="Geçerli sürüm",Ja="Yüklü değil",_U="Bağımlılık",TU="Gerekli sürüm",EU="Bağımlılık türü",eU="İsteğe bağlı peer",NU="Çalışma ortamı",AU="Geçerli sunucu: {version}",nU="Bu eklentiyi yükleyin ve etkinleştirin",DU="npm, seçilen sürümün paket bağımlılıklarını yönetir. Ön yüz eklentileri ayrıca eklenti ayarlarından yüklenip etkinleştirilmelidir.",IU="Yapılandır",tU="Yapılandırma hedefi",RU="Bu sürüm kullanımdan kaldırıldı: {reason}",LU="Ana sürüm değişikliği, ayar veya davranış uyumsuzluklarına yol açabilir.",OU="Toplu işlem modu",sU="Yükleme, güncelleme ve kaldırma işlemlerini hazırlayın, ardından Değişiklikleri uygula seçeneğini kullanın.",CU="Değişiklikleri uygula",PU="Yükleme bekliyor",oU="Güncelleme bekliyor",aU="Kaldırma bekliyor",UU="Bu değişikliği iptal et",MU="Tüm değişiklikleri iptal et",GU="Değişiklikler uygulandı",lU="Bu eklentinin kullanıcı ayarlarını da temizle",iU="Ayarlar varsayılan olarak korunur. Yalnızca panel/düğümdeki kullanıcı ayarları temizlenir, eklentinin kaydettiği veriler silinmez.",KU="Düğümlere dağıt",XU="Onar",cU="Bu paneldeki sürüm",rU="Bu eklenti sunucu tarafından yönetilir. Marketten sürümü değiştirilemez veya kaldırılamaz.",dU={TXT_CODE_PLUGIN_MARKET:qo,TXT_CODE_PLUGIN_MARKET_ADDR:jo,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:Zo,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:Qo,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:Jo,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:_a,TXT_CODE_PLUGIN_MARKET_BY:Ta,TXT_CODE_PLUGIN_MARKET_CANCEL:Ea,TXT_CODE_PLUGIN_MARKET_CONFIRM:ea,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:Na,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:Aa,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:na,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:Da,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:Ia,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:ta,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:Ra,TXT_CODE_PLUGIN_MARKET_EMPTY:La,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:Oa,TXT_CODE_PLUGIN_MARKET_INSTALL:sa,TXT_CODE_PLUGIN_MARKET_INSTALLED:Ca,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:Pa,TXT_CODE_PLUGIN_MARKET_REFRESH:oa,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:aa,TXT_CODE_PLUGIN_MARKET_SEARCH:Ua,TXT_CODE_PLUGIN_MARKET_UNINSTALL:Ma,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:Ga,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:la,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:ia,TXT_CODE_PLUGIN_MARKET_VERSION:Ka,TXT_CODE_PLUGIN_MARKET_DETAIL:Xa,TXT_CODE_PLUGIN_MARKET_BACK:ca,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:ra,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:da,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:ua,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:Sa,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:$a,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:ma,TXT_CODE_PLUGIN_MARKET_README:pa,TXT_CODE_PLUGIN_MARKET_VERSIONS:va,TXT_CODE_PLUGIN_MARKET_TAGS:ga,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:fa,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:Va,TXT_CODE_PLUGIN_MARKET_VENDOR:ba,TXT_CODE_PLUGIN_MARKET_LATEST:ha,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:ka,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:Fa,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:Ba,TXT_CODE_PLUGIN_MARKET_UPDATES:ya,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:Ha,TXT_CODE_2de92a5d:Ya,TXT_CODE_PLUGIN_MARKET_BUNDLED:wa,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:Wa,TXT_CODE_PLUGIN_MARKET_ADD:xa,TXT_CODE_PLUGIN_MARKET_MODIFY:za,TXT_CODE_PLUGIN_MARKET_MANAGE:qa,TXT_CODE_PLUGIN_MARKET_TARGET_VERSION:ja,TXT_CODE_PLUGIN_MARKET_CURRENT:Za,TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION:Qa,TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED:Ja,TXT_CODE_PLUGIN_MARKET_DEPENDENCY:_U,TXT_CODE_PLUGIN_MARKET_VERSION_RANGE:TU,TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE:EU,TXT_CODE_PLUGIN_MARKET_OPTIONAL:eU,TXT_CODE_PLUGIN_MARKET_RUNTIME:NU,TXT_CODE_PLUGIN_MARKET_HOST_CURRENT:AU,TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY:nU,TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES:DU,TXT_CODE_PLUGIN_MARKET_CONFIGURE:IU,TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET:tU,TXT_CODE_PLUGIN_MARKET_DEPRECATED:RU,TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING:LU,TXT_CODE_PLUGIN_MARKET_BULK_MODE:OU,TXT_CODE_PLUGIN_MARKET_BULK_HINT:sU,TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES:CU,TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL:PU,TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE:oU,TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE:aU,TXT_CODE_PLUGIN_MARKET_DISCARD:UU,TXT_CODE_PLUGIN_MARKET_DISCARD_ALL:MU,TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED:GU,TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG:lU,TXT_CODE_PLUGIN_MARKET_KEEP_DATA:iU,TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES:KU,TXT_CODE_PLUGIN_MARKET_REPAIR:XU,TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT:cU,TXT_CODE_PLUGIN_MARKET_PROTECTED:rU},uU="插件市场",SU="插件市场地址",$U="插件市场网站的地址,插件列表从这里获取",mU="插件市场地址无效:请填写不带查询参数、片段或账号密码的 http(s) 地址",pU="下载的文件与插件市场公布的不一致,请重试",vU="插件包包含非法的文件路径",gU="作者:{name}",fU="取消",VU="确定",bU="选择节点",hU="为以下节点安装守护端插件",kU="从以下节点移除守护端插件",FU="离线",BU="以下节点未能完成操作:{nodes}",yU="确定要卸载「{name}」吗?",HU="安装目录已被其他插件占用",YU="插件市场里还没有插件",wU="插件包里没有可安装的文件",WU="安装",xU="已安装",zU="暂无简介",qU="刷新",jU="请重启面板和受影响的节点,使插件变更生效。",ZU="搜索插件",QU="卸载",JU="已卸载",_M="此插件仍安装在其他节点上。",TM="无法连接插件市场,请检查插件市场地址",EM="v{version}",eM="插件详情",NM="返回插件市场",AM="暂无详细说明",nM="已安装 v{version}",DM="发布时间:{date}",IM="大小:{size} · {count} 个文件",tM="暂无更新说明",RM="插件或版本不存在、尚未通过审核或已下架",LM="自述",OM="版本",sM="标签",CM="更多信息",PM="插件 ID",oM="开发者",aM="最新",UM="Panel插件",MM="Daemon插件",GM="双端插件",lM="更新",iM="此插件需要其他版本的宿主 API 或浏览器 SDK,请先更新 ElementsPanel。",KM="请选择一个节点再安装!",XM="该插件是面板内置依赖,不能在此卸载",cM="npm 安装失败,请检查网络、registry 或包名后重试",rM="添加",dM="修改",uM="管理插件:{name}",SM="目标版本",$M="当前",mM="当前版本",pM="未安装",vM="依赖名称",gM="版本要求",fM="依赖类型",VM="可选依赖",bM="运行环境",hM="当前宿主:{version}",kM="需要安装并启用",FM="软件包依赖由 npm 按所选版本处理;前端插件依赖需要在插件配置中安装并启用。",BM="配置",yM="配置目标",HM="此版本已废弃:{reason}",YM="正在跨主版本切换,可能存在不兼容的配置或行为。",wM="批量操作模式",WM="安装、更新和卸载先暂存,点击“应用更改”后执行。",xM="应用更改",zM="等待安装",qM="等待更新",jM="等待移除",ZM="撤销此操作",QM="丢弃全部更改",JM="更改已应用",_G="同时清除用户覆盖的插件配置",TG="默认保留配置。清除仅影响面板/节点中的用户配置覆盖,不删除插件自行保存的数据。",EG="部署到节点",eG="修复",NG="面板上的版本",AG="此插件由当前宿主管理,无法在市场内更换版本或卸载。",nG={TXT_CODE_PLUGIN_MARKET:uU,TXT_CODE_PLUGIN_MARKET_ADDR:SU,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:$U,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:mU,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:pU,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:vU,TXT_CODE_PLUGIN_MARKET_BY:gU,TXT_CODE_PLUGIN_MARKET_CANCEL:fU,TXT_CODE_PLUGIN_MARKET_CONFIRM:VU,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:bU,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:hU,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:kU,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:FU,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:BU,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:yU,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:HU,TXT_CODE_PLUGIN_MARKET_EMPTY:YU,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:wU,TXT_CODE_PLUGIN_MARKET_INSTALL:WU,TXT_CODE_PLUGIN_MARKET_INSTALLED:xU,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:zU,TXT_CODE_PLUGIN_MARKET_REFRESH:qU,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:jU,TXT_CODE_PLUGIN_MARKET_SEARCH:ZU,TXT_CODE_PLUGIN_MARKET_UNINSTALL:QU,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:JU,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:_M,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:TM,TXT_CODE_PLUGIN_MARKET_VERSION:EM,TXT_CODE_PLUGIN_MARKET_DETAIL:eM,TXT_CODE_PLUGIN_MARKET_BACK:NM,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:AM,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:nM,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:DM,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:IM,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:tM,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:RM,TXT_CODE_PLUGIN_MARKET_README:LM,TXT_CODE_PLUGIN_MARKET_VERSIONS:OM,TXT_CODE_PLUGIN_MARKET_TAGS:sM,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:CM,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:PM,TXT_CODE_PLUGIN_MARKET_VENDOR:oM,TXT_CODE_PLUGIN_MARKET_LATEST:aM,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:UM,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:MM,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:GM,TXT_CODE_PLUGIN_MARKET_UPDATES:lM,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:iM,TXT_CODE_2de92a5d:KM,TXT_CODE_PLUGIN_MARKET_BUNDLED:XM,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:cM,TXT_CODE_PLUGIN_MARKET_ADD:rM,TXT_CODE_PLUGIN_MARKET_MODIFY:dM,TXT_CODE_PLUGIN_MARKET_MANAGE:uM,TXT_CODE_PLUGIN_MARKET_TARGET_VERSION:SM,TXT_CODE_PLUGIN_MARKET_CURRENT:$M,TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION:mM,TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED:pM,TXT_CODE_PLUGIN_MARKET_DEPENDENCY:vM,TXT_CODE_PLUGIN_MARKET_VERSION_RANGE:gM,TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE:fM,TXT_CODE_PLUGIN_MARKET_OPTIONAL:VM,TXT_CODE_PLUGIN_MARKET_RUNTIME:bM,TXT_CODE_PLUGIN_MARKET_HOST_CURRENT:hM,TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY:kM,TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES:FM,TXT_CODE_PLUGIN_MARKET_CONFIGURE:BM,TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET:yM,TXT_CODE_PLUGIN_MARKET_DEPRECATED:HM,TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING:YM,TXT_CODE_PLUGIN_MARKET_BULK_MODE:wM,TXT_CODE_PLUGIN_MARKET_BULK_HINT:WM,TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES:xM,TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL:zM,TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE:qM,TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE:jM,TXT_CODE_PLUGIN_MARKET_DISCARD:ZM,TXT_CODE_PLUGIN_MARKET_DISCARD_ALL:QM,TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED:JM,TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG:_G,TXT_CODE_PLUGIN_MARKET_KEEP_DATA:TG,TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES:EG,TXT_CODE_PLUGIN_MARKET_REPAIR:eG,TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT:NG,TXT_CODE_PLUGIN_MARKET_PROTECTED:AG},DG="插件市場",IG="插件市場位址",tG="插件市場網站的位址,插件清單從這裡取得",RG="插件市場位址無效:請填寫不帶查詢參數、片段或帳號密碼的 http(s) 位址",LG="下載的檔案與插件市場公佈的不一致,請重試",OG="插件包包含非法的檔案路徑",sG="作者:{name}",CG="取消",PG="確定",oG="選擇節點",aG="為以下節點安裝守護端插件",UG="從以下節點移除守護端插件",MG="離線",GG="以下節點未能完成操作:{nodes}",lG="確定要卸載「{name}」嗎?",iG="安裝目錄已被其他插件佔用",KG="插件市場裡還沒有插件",XG="插件包裡沒有可安裝的檔案",cG="安裝",rG="已安裝",dG="暫無簡介",uG="重新整理",SG="請重新啟動面板和受影響的節點,使外掛變更生效。",$G="搜尋插件",mG="卸載",pG="已卸載",vG="此插件仍安裝在其他節點上。",gG="無法連接插件市場,請檢查插件市場位址",fG="v{version}",VG="外掛程式詳情",bG="返回外掛程式市場",hG="暫無詳細說明",kG="已安裝 v{version}",FG="發佈時間:{date}",BG="大小:{size} · {count} 個檔案",yG="暫無更新說明",HG="外掛程式或版本不存在、尚未通過審核或已下架",YG="自述",wG="版本",WG="標籤",xG="更多資訊",zG="外掛 ID",qG="開發者",jG="最新",ZG="Panel外掛",QG="Daemon外掛",JG="雙端外掛",_l="更新",Tl="此外掛需要其他版本的宿主 API 或瀏覽器 SDK,請先更新 ElementsPanel。",El="安裝前請選擇一個節點!",el="該插件是面板內建依賴,不能在此解除安裝",Nl="npm 安裝失敗,請檢查網路、registry 或套件名稱後重試",Al="新增",nl="修改",Dl="管理外掛:{name}",Il="目標版本",tl="目前",Rl="目前版本",Ll="未安裝",Ol="相依套件",sl="版本要求",Cl="相依類型",Pl="選用相依",ol="執行環境",al="目前宿主:{version}",Ul="需要安裝並啟用",Ml="套件相依由 npm 依所選版本處理;前端外掛相依需要在外掛設定中安裝並啟用。",Gl="設定",ll="設定目標",il="此版本已棄用:{reason}",Kl="正在跨主要版本切換,設定或行為可能不相容。",Xl="批次操作模式",cl="安裝、更新及移除會先暫存,按「套用變更」後執行。",rl="套用變更",dl="等待安裝",ul="等待更新",Sl="等待移除",$l="撤銷此操作",ml="捨棄所有變更",pl="已套用變更",vl="同時清除使用者覆寫的外掛設定",gl="預設保留設定。清除僅影響面板/節點中的使用者設定覆寫,不刪除外掛自行儲存的資料。",fl="部署至節點",Vl="修復",bl="面板上的版本",hl="此外掛由目前宿主管理,無法在市場內更換版本或移除。",kl={TXT_CODE_PLUGIN_MARKET:DG,TXT_CODE_PLUGIN_MARKET_ADDR:IG,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:tG,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:RG,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:LG,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:OG,TXT_CODE_PLUGIN_MARKET_BY:sG,TXT_CODE_PLUGIN_MARKET_CANCEL:CG,TXT_CODE_PLUGIN_MARKET_CONFIRM:PG,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:oG,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:aG,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:UG,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:MG,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:GG,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:lG,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:iG,TXT_CODE_PLUGIN_MARKET_EMPTY:KG,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:XG,TXT_CODE_PLUGIN_MARKET_INSTALL:cG,TXT_CODE_PLUGIN_MARKET_INSTALLED:rG,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:dG,TXT_CODE_PLUGIN_MARKET_REFRESH:uG,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:SG,TXT_CODE_PLUGIN_MARKET_SEARCH:$G,TXT_CODE_PLUGIN_MARKET_UNINSTALL:mG,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:pG,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:vG,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:gG,TXT_CODE_PLUGIN_MARKET_VERSION:fG,TXT_CODE_PLUGIN_MARKET_DETAIL:VG,TXT_CODE_PLUGIN_MARKET_BACK:bG,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:hG,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:kG,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:FG,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:BG,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:yG,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:HG,TXT_CODE_PLUGIN_MARKET_README:YG,TXT_CODE_PLUGIN_MARKET_VERSIONS:wG,TXT_CODE_PLUGIN_MARKET_TAGS:WG,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:xG,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:zG,TXT_CODE_PLUGIN_MARKET_VENDOR:qG,TXT_CODE_PLUGIN_MARKET_LATEST:jG,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:ZG,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:QG,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:JG,TXT_CODE_PLUGIN_MARKET_UPDATES:_l,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:Tl,TXT_CODE_2de92a5d:El,TXT_CODE_PLUGIN_MARKET_BUNDLED:el,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:Nl,TXT_CODE_PLUGIN_MARKET_ADD:Al,TXT_CODE_PLUGIN_MARKET_MODIFY:nl,TXT_CODE_PLUGIN_MARKET_MANAGE:Dl,TXT_CODE_PLUGIN_MARKET_TARGET_VERSION:Il,TXT_CODE_PLUGIN_MARKET_CURRENT:tl,TXT_CODE_PLUGIN_MARKET_CURRENT_VERSION:Rl,TXT_CODE_PLUGIN_MARKET_NOT_INSTALLED:Ll,TXT_CODE_PLUGIN_MARKET_DEPENDENCY:Ol,TXT_CODE_PLUGIN_MARKET_VERSION_RANGE:sl,TXT_CODE_PLUGIN_MARKET_DEPENDENCY_TYPE:Cl,TXT_CODE_PLUGIN_MARKET_OPTIONAL:Pl,TXT_CODE_PLUGIN_MARKET_RUNTIME:ol,TXT_CODE_PLUGIN_MARKET_HOST_CURRENT:al,TXT_CODE_PLUGIN_MARKET_FRONTEND_DEPENDENCY:Ul,TXT_CODE_PLUGIN_MARKET_NPM_DEPENDENCIES:Ml,TXT_CODE_PLUGIN_MARKET_CONFIGURE:Gl,TXT_CODE_PLUGIN_MARKET_CONFIG_TARGET:ll,TXT_CODE_PLUGIN_MARKET_DEPRECATED:il,TXT_CODE_PLUGIN_MARKET_MAJOR_WARNING:Kl,TXT_CODE_PLUGIN_MARKET_BULK_MODE:Xl,TXT_CODE_PLUGIN_MARKET_BULK_HINT:cl,TXT_CODE_PLUGIN_MARKET_APPLY_CHANGES:rl,TXT_CODE_PLUGIN_MARKET_WAIT_INSTALL:dl,TXT_CODE_PLUGIN_MARKET_WAIT_UPDATE:ul,TXT_CODE_PLUGIN_MARKET_WAIT_REMOVE:Sl,TXT_CODE_PLUGIN_MARKET_DISCARD:$l,TXT_CODE_PLUGIN_MARKET_DISCARD_ALL:ml,TXT_CODE_PLUGIN_MARKET_CHANGES_APPLIED:pl,TXT_CODE_PLUGIN_MARKET_REMOVE_CONFIG:vl,TXT_CODE_PLUGIN_MARKET_KEEP_DATA:gl,TXT_CODE_PLUGIN_MARKET_DEPLOY_NODES:fl,TXT_CODE_PLUGIN_MARKET_REPAIR:Vl,TXT_CODE_PLUGIN_MARKET_PANEL_CURRENT:bl,TXT_CODE_PLUGIN_MARKET_PROTECTED:hl},Fl={de_de:Qe,en_us:mA,es_es:LD,fr_fr:YI,ja_jp:KR,ko_kr:EO,pt_br:fs,ru_ru:CP,th_th:zo,tr_tr:dU,zh_cn:nG,zh_tw:kl},M_=10,Jl=["console","i18n","routes","desktop"];function _i(I){I.i18n.define(Fl),I.routes.add({path:"/market/plugins",name:E("TXT_CODE_PLUGIN_MARKET"),component:UE,meta:{mainMenu:!0,permission:M_,icon:"mdi-puzzle-outline"}}),I.routes.add({path:"/market/plugins/:pluginId",name:E("TXT_CODE_PLUGIN_MARKET_DETAIL"),component:ME,meta:{mainMenu:!1,permission:M_,breadcrumbs:[{name:E("TXT_CODE_PLUGIN_MARKET"),path:"/market/plugins",mainMenu:!0,permission:M_}]}}),I.desktop.app({id:"plugin-market",label:()=>E("TXT_CODE_PLUGIN_MARKET"),icon:"mdi-puzzle-outline",color:"#5c6bc0",route:"/market/plugins",component:aE,condition:()=>z_().isAdmin.value,initialWidth:1100,initialHeight:720})}export{_i as apply,Jl as inject};
|
package/panel/plugin.json
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"id": "market",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "Provides the ElementsPanel plugin market: browsing, installation, updates and removal.",
|
|
5
|
-
"priority": 175,
|
|
6
|
-
"frontendInject": [
|
|
7
|
-
"console",
|
|
8
|
-
"i18n"
|
|
9
|
-
],
|
|
10
2
|
"backend": "backend/index.cjs",
|
|
11
|
-
"frontend": "frontend/panel-plugin-market-
|
|
12
|
-
"styles": [
|
|
13
|
-
"frontend/assets/style-0-_panel-plugin-build-entry_market-3c9e2953.css"
|
|
14
|
-
]
|
|
3
|
+
"frontend": "frontend/panel-plugin-market-179fa00d.js"
|
|
15
4
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.plugin-detail[data-v-06626bcd]{width:100%;min-width:0;overflow-wrap:anywhere}.plugin-detail[data-v-06626bcd] .page-toolbar{margin-bottom:56px}.plugin-detail-container[data-v-06626bcd]{max-width:var(--app-max-width);margin:0 auto;padding:20px 24px 32px}.plugin-detail-header[data-v-06626bcd]{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:24px}.plugin-detail-heading[data-v-06626bcd]{display:flex;gap:20px;flex:1 1 420px;min-width:0}.plugin-detail-icon[data-v-06626bcd]{flex:0 0 auto;overflow:hidden}.plugin-detail-icon-image[data-v-06626bcd]{width:100%;height:100%}.plugin-detail-heading-text[data-v-06626bcd]{min-width:0}.plugin-detail-title[data-v-06626bcd]{margin:0 0 8px;font-size:28px;font-weight:700;line-height:1.25}.plugin-detail-summary[data-v-06626bcd]{margin:0 0 12px;font-size:15px;line-height:1.6;color:rgba(var(--v-theme-on-surface),.7)}.plugin-detail-meta[data-v-06626bcd]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px;color:rgba(var(--v-theme-on-surface),.6)}.plugin-detail-author[data-v-06626bcd]{display:inline-flex;align-items:center;gap:4px}.plugin-detail-category[data-v-06626bcd]{padding:2px 8px;border-radius:4px;background:rgba(var(--v-theme-on-surface),.06)}.plugin-detail-action[data-v-06626bcd]{flex:0 1 320px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;text-align:right}.plugin-detail-tabs[data-v-06626bcd]{margin-bottom:24px}.plugin-detail-body[data-v-06626bcd]{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:start}.plugin-detail-content[data-v-06626bcd],.plugin-detail-sidebar[data-v-06626bcd]{min-width:0}.plugin-detail-sidebar-section+.plugin-detail-sidebar-section[data-v-06626bcd]{margin-top:28px}.plugin-detail-sidebar-title[data-v-06626bcd]{margin:0 0 12px;font-size:15px;font-weight:700;color:rgb(var(--v-theme-on-surface))}.plugin-detail-tag[data-v-06626bcd]{display:inline-block;padding:4px 10px;border-radius:6px;font-size:13px;background:rgba(var(--v-theme-on-surface),.06)}.plugin-detail-info[data-v-06626bcd]{margin:0}.plugin-detail-info-row[data-v-06626bcd]{display:flex;gap:12px;margin-bottom:8px;font-size:13px}.plugin-detail-info-row dt[data-v-06626bcd]{flex:0 0 84px;color:rgba(var(--v-theme-on-surface),.6)}.plugin-detail-info-row dd[data-v-06626bcd]{margin:0;min-width:0;overflow-wrap:anywhere}.plugin-detail-versions[data-v-06626bcd]{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.plugin-detail-version[data-v-06626bcd]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-radius:8px}.plugin-detail-version[data-v-06626bcd]:hover{background:rgba(var(--v-theme-on-surface),.05)}.plugin-detail-version-text[data-v-06626bcd]{display:flex;flex-direction:column;gap:6px;min-width:0}.plugin-detail-version-name[data-v-06626bcd]{font-size:15px;font-weight:600;color:rgb(var(--v-theme-on-surface))}.plugin-detail-version-meta[data-v-06626bcd]{font-size:12px;color:rgba(var(--v-theme-on-surface),.6)}.plugin-detail-update+.plugin-detail-update[data-v-06626bcd]{margin-top:28px;padding-top:28px;border-top:1px solid rgba(var(--v-theme-on-surface),.12)}.plugin-detail-update-head[data-v-06626bcd]{display:flex;align-items:baseline;gap:12px;margin:0 0 12px}.plugin-detail-update-version[data-v-06626bcd]{font-size:15px;font-weight:700;color:rgb(var(--v-theme-on-surface))}.plugin-detail-update-date[data-v-06626bcd]{font-size:12px;color:rgba(var(--v-theme-on-surface),.6)}.plugin-detail-empty[data-v-06626bcd]{margin:0;color:rgba(var(--v-theme-on-surface),.6)}.plugin-detail-markdown[data-v-06626bcd]{overflow-x:auto}.plugin-detail-markdown[data-v-06626bcd] img{max-width:100%;height:auto}.plugin-detail-markdown[data-v-06626bcd] pre{overflow-x:auto}@media (max-width: 992px){.plugin-detail:not(.plugin-detail--embedded) .plugin-detail-container[data-v-06626bcd]{padding:16px 12px 28px}.plugin-detail:not(.plugin-detail--embedded) .plugin-detail-body[data-v-06626bcd]{grid-template-columns:minmax(0,1fr);gap:28px}.plugin-detail:not(.plugin-detail--embedded) .plugin-detail-title[data-v-06626bcd]{font-size:22px}.plugin-detail:not(.plugin-detail--embedded) .plugin-detail-action[data-v-06626bcd]{align-items:flex-start;text-align:left}}.plugin-detail--embedded[data-v-06626bcd]{height:100%;min-height:0;overflow-y:auto;container-type:inline-size}.plugin-detail--embedded .plugin-detail-container[data-v-06626bcd]{max-width:none;padding:20px}.plugin-detail--embedded[data-v-06626bcd] .page-toolbar{margin-bottom:24px}.plugin-detail--embedded[data-v-06626bcd] .page-toolbar-title{flex:1 1 180px;font-size:18px}.plugin-detail--embedded[data-v-06626bcd] .page-toolbar-actions{flex:1 1 260px;justify-content:flex-end}@container (max-width: 820px){.plugin-detail--embedded .plugin-detail-body[data-v-06626bcd]{grid-template-columns:minmax(0,1fr);gap:28px}.plugin-detail--embedded .plugin-detail-title[data-v-06626bcd]{font-size:22px}.plugin-detail--embedded .plugin-detail-action[data-v-06626bcd]{align-items:flex-start;text-align:left}}.plugin-market[data-v-7b47151a]{width:100%;min-height:100%;min-width:0;box-sizing:border-box;overflow-x:hidden}.plugin-market-container[data-v-7b47151a]{width:100%;min-width:0;max-width:var(--app-max-width);margin:0 auto;box-sizing:border-box;padding:20px 24px 32px}.plugin-market-card[data-v-7b47151a]{display:flex;flex-direction:column;padding:12px 8px}.plugin-market-card-content[data-v-7b47151a]{flex:1 0 auto}.plugin-market-card-head[data-v-7b47151a]{display:flex;align-items:center;gap:12px;margin-bottom:12px}.plugin-market-card-heading[data-v-7b47151a]{min-width:0;overflow-wrap:anywhere}.plugin-market-icon[data-v-7b47151a]{flex-shrink:0;overflow:hidden}.plugin-market-icon-image[data-v-7b47151a]{width:100%;height:100%}.plugin-market-card-summary[data-v-7b47151a]{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.5;text-overflow:ellipsis}.plugin-market-card-actions[data-v-7b47151a]{align-items:center;padding-top:8px}.plugin-market-empty[data-v-7b47151a]{min-height:38vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:48px 24px;text-align:center;color:var(--color-gray-7)}.plugin-market-empty-icon[data-v-7b47151a]{margin-bottom:8px;color:var(--color-gray-6)}.plugin-market-empty-title[data-v-7b47151a]{color:var(--color-gray-8);font-size:1rem;font-weight:600}.plugin-market-empty--filtered[data-v-7b47151a]{min-height:28vh}@media (max-width: 992px){.plugin-market-container[data-v-7b47151a]{padding:16px 12px 28px}}.plugin-market--embedded[data-v-7b47151a]{height:100%;min-height:0;overflow-y:auto}.plugin-market--embedded .plugin-market-container[data-v-7b47151a]{max-width:none;padding:20px}.plugin-market--embedded .plugin-market-grid[data-v-7b47151a]{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:20px}.plugin-market--embedded[data-v-7b47151a] .page-toolbar{margin-bottom:24px;gap:12px}.plugin-market--embedded[data-v-7b47151a] .page-toolbar-title{flex:1 1 200px;font-size:18px}.plugin-market--embedded[data-v-7b47151a] .page-toolbar-search{flex:1 1 240px}.plugin-market--embedded[data-v-7b47151a] .page-toolbar-actions{flex:0 0 auto;justify-content:flex-end}.desktop-plugin-market[data-v-53e84b0f]{width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;color:var(--desktop-window-text)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as E,g as u_}from"../../../assets/i18n-fe0f1ee7.js";import{u as S_}from"../../../assets/useAppStateStore-a644582a.js";import{bu as R_,bz as m,a1 as Z,b5 as J,aE as n,Q as c,O as r,bJ as _,gY as C_,P as d,R as L,ba as C,_ as $,bP as N,gC as V,$ as P,gz as n_,gA as A_,gB as D_,gL as L_,gD as s_,F as x,aK as __,gZ as $_,N as k,gW as T_,au as a_,gS as P_,h4 as U_,h5 as M_,gE as j,h6 as m_,h7 as e_,h3 as l_,bM as i_,ay as p_,gK as v_,gF as g_,gG as h_,bc as f_,s as B_,c9 as k_,ca as b_}from"../../../assets/vue-2433bd89.js";import{P as G_}from"../../../assets/PageToolbar-5ca1a069.js";import{m as O_}from"../../../assets/safe-87846d89.js";import{u as w,m as g,g as Q}from"../../../assets/useDefineApi-ead2616e.js";import{_ as I_}from"../../../assets/_plugin-vue_export-helper-c27b6911.js";import"../../../assets/context-b16af9cc.js";import"../../../assets/_elements-sdk_cordis-e3bebc89.js";import"../../../assets/_elements-sdk_cosmokit-e4842f5c.js";import"../../../assets/htmlparser2-bcb8f9db.js";import"../../../assets/lodash-001e4f93.js";const F_=w({url:"/api/market/plugin/list",method:"GET"}),V_=w({url:"/api/market/plugin/icon",method:"GET"}),y_=w({url:"/api/market/plugin/detail",method:"GET"}),H_=w({url:"/api/market/plugin/installed",method:"GET"}),Y_=w({url:"/api/market/plugin/nodes",method:"GET"}),w_=w({url:"/api/market/plugin/package",method:"GET"}),z_=w({url:"/api/market/plugin/install",method:"POST"}),x_=w({url:"/api/market/plugin/uninstall",method:"DELETE"});function K_(){const O=m(Object.create(null)),G=new Map;let t=!1;async function M(A,D){var o;try{const{execute:s}=V_(),U=await s({params:{pluginId:A,version:D.version},signal:D.controller.signal});if(t||D.controller.signal.aborted||G.get(A)!==D)return;const v=(o=U.value)==null?void 0:o.dataUrl;typeof v=="string"&&v&&(D.dataUrl=v,O.value[A]=v)}catch{}}function T(A,D,o){if(t)return Promise.resolve();const s=G.get(A);if(D&&s&&s.version===o){if(s.dataUrl)return Promise.resolve();if(s.pending)return s.pending}if(s==null||s.controller.abort(),G.delete(A),delete O.value[A],!D)return Promise.resolve();const U={version:o,controller:new AbortController};return G.set(A,U),U.pending=M(A,U).finally(()=>{U.pending=void 0}),U.pending}return R_(()=>{t=!0,G.forEach(A=>A.controller.abort()),G.clear(),O.value=Object.create(null)}),{icons:O,load:T}}function Z_(O,G){const t=A=>{var o;const D=/^v?(\d+(?:\.\d+){0,2})(?:-([\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*))?(?:\+[\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*)?$/.exec(A.trim());return D&&{core:D[1].split("."),pre:(o=D[2])==null?void 0:o.split(".")}},M=t(O),T=t(G);if(!M||!T)return!1;for(let A=0;A<3;A++){const D=BigInt(M.core[A]||"0"),o=BigInt(T.core[A]||"0");if(D!==o)return D>o}if(!M.pre||!T.pre)return!M.pre&&!!T.pre;for(let A=0;A<Math.max(M.pre.length,T.pre.length);A++){const D=M.pre[A],o=T.pre[A];if(D===void 0||o===void 0)return o===void 0;if(D===o)continue;const s=/^\d+$/.test(D),U=/^\d+$/.test(o);if(s&&U){if(BigInt(D)!==BigInt(o))return BigInt(D)>BigInt(o)}else return s!==U?!s:D>o}return!1}const q_={class:"d-flex flex-wrap ga-2"},Q_={class:"mb-2"},o_=Z({__name:"PluginMarketInstall",props:{plugin:{},version:{},installOnly:{type:Boolean},disabled:{type:Boolean}},emits:["installed","busy"],setup(O,{emit:G}){const t=O,M=G,T=m(""),A=k(()=>!!(t.version&&!t.plugin.installedVersion)),D=k(()=>!!(!t.installOnly&&t.version&&t.plugin.installedVersion&&Z_(t.version.version,t.plugin.installedVersion))),o=k(()=>{var e;return Object.values(((e=t.version)==null?void 0:e.compatibility)||{}).some(I=>I&&(I.api!==1||I.sdk!==void 0&&I.sdk!==1))});let s=!1;const U=m(null),v=k({get:()=>U.value!==null,set:e=>{e||(U.value=null)}}),h=m([]),b=m([]),y=m(!1),Y=m("install"),f=m(null),z=k({get:()=>f.value!==null,set:e=>{e||(f.value=null)}});function u(e){const I=e.port?`${e.ip}:${e.port}`:e.ip,R=e.available?"":` · ${E("TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE")}`;return`${e.remarks||e.ip}(${I})${R}`}function X(e){return e.map(I=>{const R=h.value.find(i=>i.daemonId===I);return R?R.remarks||R.ip:I})}async function a(){const{execute:e}=Y_();return(await e()).value??[]}async function B(e){var i,p;const{execute:I}=w_();return((p=(await I({params:{pluginId:e.id,version:(i=e.latestVersion)==null?void 0:i.version}})).value)==null?void 0:p.sides)??[]}function l(e,I,R,i){h.value=R,b.value=R.map(p=>p.daemonId),Y.value=I,y.value=i,f.value=e}function S(){const e=f.value;if(!e||s||T.value)return;const I=[...b.value];y.value&&!I.length||(T.value=e.id,f.value=null,Y.value==="install"?H(e,I):t_(e,I))}async function F(){if(s||t.disabled||o.value||q.value||!t.version||!A.value&&!D.value)return;const e={...t.plugin,latestVersion:t.version};T.value=e.id;try{const I=await B(e);if(s)return;const R=I.includes("daemon")&&!I.includes("panel"),i=I.includes("daemon")?await a():[];if(s)return;if(i.length)return l(e,"install",i,R);if(R)return g.error(E("TXT_CODE_2de92a5d"));await H(e,[])}catch(I){s||g.error(Q(I))}finally{T.value=""}}async function H(e,I){var R;T.value=e.id;try{const{execute:i}=z_(),p=await i({data:{pluginId:e.id,name:e.name,version:(R=e.latestVersion)==null?void 0:R.version,daemonIds:I}});if(s)return;if(!p.value)throw new Error(E("TXT_CODE_PLUGIN_MARKET_UNREACHABLE"));M("installed",e.id,p.value.installedVersion);const W=p.value.failedNodes;W.length?g.error(E("TXT_CODE_PLUGIN_MARKET_NODE_FAILED",{nodes:X(W).join("、")})):g.success(E("TXT_CODE_PLUGIN_MARKET_INSTALLED")),p.value.restartRequired&&g.warning(E("TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED"))}catch(i){s||g.error(Q(i))}finally{T.value=""}}async function K(e=U.value){var I;if(!(!e||s||T.value||f.value||t.disabled&&!U.value)){T.value=e.id,U.value=null;try{const{execute:R}=H_(),i=(I=(await R()).value)==null?void 0:I.find(p=>p.pluginId===e.id);if(s)return;if(i!=null&&i.daemonIds.length){const p=await a();if(s)return;const W=i.daemonIds.map(E_=>p.find(d_=>d_.daemonId===E_)??{daemonId:E_,remarks:"",ip:E_,port:0,available:!1});return l(e,"uninstall",W,!i.sides.includes("panel"))}await t_(e,[])}catch(R){s||g.error(Q(R))}finally{T.value=""}}}async function t_(e,I){T.value=e.id;try{const{execute:R}=x_(),i=await R({params:{pluginId:e.id,daemonIds:I.join(",")}});if(s)return;if(!i.value)throw new Error(E("TXT_CODE_PLUGIN_MARKET_UNREACHABLE"));M("installed",e.id,i.value.installedVersion);const p=i.value.failedNodes;p.length?g.error(E("TXT_CODE_PLUGIN_MARKET_NODE_FAILED",{nodes:X(p).join("、")})):i.value.removed?g.success(E("TXT_CODE_PLUGIN_MARKET_UNINSTALLED")):g.warning(E("TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING")),i.value.restartRequired&&g.warning(E("TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED"))}catch(R){s||g.error(Q(R))}finally{T.value=""}}const q=k(()=>!!(T.value||f.value||U.value));return J(q,e=>M("busy",e),{flush:"sync"}),R_(()=>{s=!0,q.value&&M("busy",!1)}),(e,I)=>(n(),c(x,null,[o.value?(n(),r(_(C_),{key:0,type:"warning",variant:"tonal",text:_(E)("TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE")},null,8,["text"])):d("",!0),L("div",null,[L("div",q_,[A.value?(n(),r(_(V),{key:0,color:"primary","prepend-icon":"mdi-download",loading:!!T.value,disabled:q.value||O.disabled||o.value,onClick:F},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_INSTALL")),1)]),_:1},8,["loading","disabled"])):d("",!0),O.plugin.installedVersion&&!O.installOnly&&O.plugin.installedRemovable!==!1?(n(),r(_(V),{key:1,color:"error",variant:"text",disabled:q.value||O.disabled,onClick:I[0]||(I[0]=R=>U.value={...O.plugin})},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_UNINSTALL")),1)]),_:1},8,["disabled"])):d("",!0),D.value?(n(),r(_(V),{key:2,color:"primary","prepend-icon":"mdi-update",loading:!!T.value,disabled:q.value||O.disabled||o.value,onClick:F},{default:C(()=>[$(N(_(E)("TXT_CODE_40ca4f2")),1)]),_:1},8,["loading","disabled"])):d("",!0)]),P(_(s_),{modelValue:v.value,"onUpdate:modelValue":I[3]||(I[3]=R=>v.value=R),"max-width":"420"},{default:C(()=>[P(_(n_),{title:_(E)("TXT_CODE_PLUGIN_MARKET_UNINSTALL")},{default:C(()=>[P(_(A_),null,{default:C(()=>{var R;return[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL",{name:((R=U.value)==null?void 0:R.displayName)??""})),1)]}),_:1}),P(_(D_),null,{default:C(()=>[P(_(L_)),P(_(V),{variant:"text",onClick:I[1]||(I[1]=R=>U.value=null)},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_CANCEL")),1)]),_:1}),P(_(V),{color:"error",onClick:I[2]||(I[2]=R=>K())},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_UNINSTALL")),1)]),_:1})]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]),P(_(s_),{modelValue:z.value,"onUpdate:modelValue":I[6]||(I[6]=R=>z.value=R),"max-width":"480"},{default:C(()=>[P(_(n_),{title:_(E)("TXT_CODE_PLUGIN_MARKET_SELECT_NODES")},{default:C(()=>[P(_(A_),null,{default:C(()=>[L("div",Q_,N(Y.value==="install"?_(E)("TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL"):_(E)("TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL")),1),(n(!0),c(x,null,__(h.value,R=>(n(),r(_($_),{key:R.daemonId,modelValue:b.value,"onUpdate:modelValue":I[4]||(I[4]=i=>b.value=i),value:R.daemonId,label:u(R),density:"compact","hide-details":""},null,8,["modelValue","value","label"]))),128))]),_:1}),P(_(D_),null,{default:C(()=>[P(_(L_)),P(_(V),{variant:"text",onClick:I[5]||(I[5]=R=>f.value=null)},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_CANCEL")),1)]),_:1}),P(_(V),{color:"primary",disabled:y.value&&!b.value.length,onClick:S},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_CONFIRM")),1)]),_:1},8,["disabled"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])])],64))}});function j_(O){const G=(O==null?void 0:O.includes("panel"))??!1,t=(O==null?void 0:O.includes("daemon"))??!1;if(G&&t)return"TXT_CODE_PLUGIN_MARKET_SIDE_BOTH";if(G)return"TXT_CODE_PLUGIN_MARKET_SIDE_PANEL";if(t)return"TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON"}const c_=Z({__name:"PluginMarketSideBadge",props:{sides:{}},setup(O){const G=O,t=k(()=>{const M=j_(G.sides);return M?E(M):void 0});return(M,T)=>t.value?(n(),r(_(T_),{key:0,size:"small",variant:"tonal",color:"primary"},{default:C(()=>[$(N(t.value),1)]),_:1})):d("",!0)}}),W_={class:"plugin-detail-header"},J_={class:"plugin-detail-heading"},_T={class:"plugin-detail-heading-text"},TT={class:"plugin-detail-title"},ET={class:"plugin-detail-summary"},eT={class:"plugin-detail-meta"},NT={class:"plugin-detail-author"},nT={key:0,class:"plugin-detail-category"},AT={class:"plugin-detail-action"},DT={class:"plugin-detail-tabs"},IT={class:"plugin-detail-body"},tT={class:"plugin-detail-content"},LT=["innerHTML"],sT={key:1,class:"plugin-detail-empty"},OT={key:1,class:"plugin-detail-versions"},oT={class:"plugin-detail-version-text"},RT={class:"plugin-detail-version-name"},CT={class:"plugin-detail-version-meta"},aT={class:"plugin-detail-update-head"},PT={class:"plugin-detail-update-version"},UT={class:"plugin-detail-update-date"},MT=["innerHTML"],lT={key:1,class:"plugin-detail-empty"},iT={class:"plugin-detail-sidebar"},GT={key:0,class:"plugin-detail-sidebar-section"},KT={class:"plugin-detail-sidebar-title"},cT={class:"plugin-detail-tag"},XT={class:"plugin-detail-sidebar-section"},rT={class:"plugin-detail-sidebar-title"},dT={class:"plugin-detail-info"},uT={class:"plugin-detail-info-row"},ST={class:"plugin-detail-info-row"},$T={key:0,class:"plugin-detail-info-row"},mT={key:1,class:"plugin-detail-info-row"},pT=Z({__name:"PluginMarketDetail",props:{pluginId:{},embedded:{type:Boolean}},emits:["back","installed"],setup(O,{emit:G}){const t=O,M=G,T=m(),A=m(!1),D=m(!1),o=m(""),s=m("readme");let U=0,v=0;const{icons:h,load:b}=K_(),y=k(()=>T.value?h.value[T.value.id]:void 0),Y=k(()=>{var l,S;return O_(((l=T.value)==null?void 0:l.readme)||((S=T.value)==null?void 0:S.description)||"")}),f=k(()=>{var l;return(((l=T.value)==null?void 0:l.versions)??[]).map(S=>({version:S,html:O_(S.changelog||"")}))});function z(l){return new Date(l).toLocaleString(u_().replace("_","-"))}function u(l){return l<1024?`${l} B`:l<1024*1024?`${(l/1024).toFixed(1)} KB`:`${(l/1024/1024).toFixed(1)} MB`}async function X(){var S,F;if(D.value&&((S=T.value)==null?void 0:S.id)===t.pluginId)return;const l=++U;A.value=!0,o.value="",((F=T.value)==null?void 0:F.id)!==t.pluginId&&(T.value=void 0),v=0,D.value=!1;try{const{execute:H}=y_(),K=await H({params:{pluginId:t.pluginId}});if(l!==U)return;if(!K.value)throw new Error(E("TXT_CODE_PLUGIN_MARKET_NOT_FOUND"));T.value=K.value,b(K.value.id,K.value.hasIcon,K.value.selectedVersion.version)}catch(H){l===U&&(o.value=Q(H))}finally{l===U&&(A.value=!1)}}function a(l){v=Math.max(0,v+(l?1:-1)),D.value=v>0}function B(l,S){var F;((F=T.value)==null?void 0:F.id)===l&&(T.value.installedVersion=S),M("installed",l,S)}return J(()=>t.pluginId,X,{immediate:!0}),J(()=>t.pluginId,()=>{s.value="readme"}),a_(()=>U++),(l,S)=>(n(),c("main",{class:i_(["plugin-detail",{"plugin-detail--embedded":O.embedded}])},[P(_(l_),{fluid:"",class:"plugin-detail-container"},{default:C(()=>{var F,H;return[P(G_,{title:_(E)("TXT_CODE_PLUGIN_MARKET_DETAIL"),icon:"mdi-puzzle-outline"},{actions:C(()=>[P(_(V),{variant:"text","prepend-icon":"mdi-arrow-left",disabled:D.value,onClick:S[0]||(S[0]=K=>M("back"))},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_BACK")),1)]),_:1},8,["disabled"]),P(_(V),{variant:"text",loading:A.value,disabled:D.value,onClick:X},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_REFRESH")),1)]),_:1},8,["loading","disabled"])]),_:1},8,["title"]),A.value?(n(),r(_(P_),{key:0,indeterminate:"",class:"mb-4"})):d("",!0),o.value?(n(),r(_(C_),{key:1,type:"error",text:o.value,class:"mb-4"},null,8,["text"])):d("",!0),T.value?(n(),c(x,{key:2},[L("header",W_,[L("div",J_,[P(_(U_),{class:"plugin-detail-icon",size:"64",rounded:"12px",color:"surface",variant:"flat"},{default:C(()=>[T.value.hasIcon&&y.value?(n(),r(_(M_),{key:0,src:y.value,alt:"",cover:"",transition:"fade-transition",class:"plugin-detail-icon-image",onError:S[1]||(S[1]=K=>delete _(h)[T.value.id])},null,8,["src"])):T.value.hasIcon?d("",!0):(n(),r(_(j),{key:1,icon:"mdi-puzzle-outline",size:"34"}))]),_:1}),L("div",_T,[L("h1",TT,N(T.value.displayName),1),L("p",ET,N(T.value.summary||_(E)("TXT_CODE_PLUGIN_MARKET_NO_SUMMARY")),1),L("div",eT,[L("span",NT,[P(_(j),{icon:"mdi-account-circle-outline",size:"16"}),$(" "+N(_(E)("TXT_CODE_PLUGIN_MARKET_BY",{name:((F=T.value.author)==null?void 0:F.displayName)??""})),1)]),T.value.category?(n(),c("span",nT,N(T.value.category),1)):d("",!0),P(c_,{sides:T.value.selectedVersion.sides??T.value.sides},null,8,["sides"]),T.value.installedVersion?(n(),r(_(T_),{key:1,size:"small",color:"success",variant:"tonal"},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION",{version:T.value.installedVersion})),1)]),_:1})):d("",!0)])])]),L("div",AT,[(n(),r(o_,{key:T.value.id,plugin:T.value,version:T.value.latestVersion||T.value.selectedVersion,disabled:D.value||A.value,onInstalled:B,onBusy:a},null,8,["plugin","version","disabled"]))])]),L("div",DT,[P(_(m_),{modelValue:s.value,"onUpdate:modelValue":S[2]||(S[2]=K=>s.value=K),color:"primary",disabled:D.value},{default:C(()=>[P(_(e_),{value:"readme"},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_README")),1)]),_:1}),P(_(e_),{value:"versions"},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_VERSIONS")),1)]),_:1}),P(_(e_),{value:"updates"},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_UPDATES")),1)]),_:1})]),_:1},8,["modelValue","disabled"])]),L("div",IT,[L("section",tT,[s.value==="readme"?(n(),c(x,{key:0},[T.value.readme||T.value.description?(n(),c("div",{key:0,class:"global-markdown-html plugin-detail-markdown",innerHTML:Y.value},null,8,LT)):(n(),c("p",sT,N(_(E)("TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION")),1))],64)):s.value==="versions"?(n(),c("ul",OT,[(n(!0),c(x,null,__(T.value.versions,K=>(n(),c("li",{key:K.version,class:"plugin-detail-version"},[L("div",oT,[L("span",RT,N(_(E)("TXT_CODE_PLUGIN_MARKET_VERSION",{version:K.version})),1),L("span",CT,N(_(E)("TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT",{date:z(K.submittedAt)}))+" · "+N(_(E)("TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE",{size:u(K.sizeBytes),count:K.fileCount})),1)]),T.value.installedVersion?d("",!0):(n(),r(o_,{key:0,plugin:T.value,version:K,disabled:D.value||A.value,"install-only":"",onInstalled:B,onBusy:a},null,8,["plugin","version","disabled"]))]))),128))])):(n(!0),c(x,{key:2},__(f.value,K=>(n(),c("article",{key:K.version.version,class:"plugin-detail-update"},[L("h2",aT,[L("span",PT,N(_(E)("TXT_CODE_PLUGIN_MARKET_VERSION",{version:K.version.version})),1),L("span",UT,N(z(K.version.submittedAt)),1)]),K.html?(n(),c("div",{key:0,class:"global-markdown-html plugin-detail-markdown",innerHTML:K.html},null,8,MT)):(n(),c("p",lT,N(_(E)("TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG")),1))]))),128))]),L("aside",iT,[T.value.category?(n(),c("section",GT,[L("h2",KT,N(_(E)("TXT_CODE_PLUGIN_MARKET_TAGS")),1),L("span",cT,N(T.value.category),1)])):d("",!0),L("section",XT,[L("h2",rT,N(_(E)("TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO")),1),L("dl",dT,[L("div",uT,[L("dt",null,N(_(E)("TXT_CODE_PLUGIN_MARKET_PLUGIN_ID")),1),L("dd",null,N(T.value.name),1)]),L("div",ST,[L("dt",null,N(_(E)("TXT_CODE_PLUGIN_MARKET_VENDOR")),1),L("dd",null,N(((H=T.value.author)==null?void 0:H.displayName)??""),1)]),T.value.latestVersion?(n(),c("div",$T,[L("dt",null,N(_(E)("TXT_CODE_PLUGIN_MARKET_LATEST")),1),L("dd",null,N(_(E)("TXT_CODE_PLUGIN_MARKET_VERSION",{version:T.value.latestVersion.version})),1)])):d("",!0),T.value.installedVersion?(n(),c("div",mT,[L("dt",null,N(_(E)("TXT_CODE_PLUGIN_MARKET_INSTALLED")),1),L("dd",null,N(_(E)("TXT_CODE_PLUGIN_MARKET_VERSION",{version:T.value.installedVersion})),1)])):d("",!0)])])])])],64)):d("",!0)]}),_:1})],2))}});const X_=I_(pT,[["__scopeId","data-v-06626bcd"]]),vT={key:1,class:"plugin-market-empty",role:"status"},gT={class:"plugin-market-empty-title"},hT={class:"plugin-market-card-head"},fT={class:"plugin-market-card-heading"},BT={class:"text-h6"},kT={class:"text-caption text-medium-emphasis"},bT={key:0},FT={class:"plugin-market-card-summary text-body-2 mt-2"},VT={key:3,class:"plugin-market-empty plugin-market-empty--filtered",role:"status"},yT={class:"plugin-market-empty-title"},HT=Z({__name:"PluginMarketList",props:{embedded:{type:Boolean}},emits:["select"],setup(O,{expose:G,emit:t}){const M=O,T=t,A=m(!1),D=m(!1),o=m([]),s=m(""),{icons:U,load:v}=K_();let h=0;const b=k(()=>{const u=(s.value??"").trim().toLowerCase();return u?o.value.filter(X=>[X.displayName,X.name,X.summary].some(a=>String(a??"").toLowerCase().includes(u))):o.value});J(b,u=>{var X;for(const a of u)v(a.id,a.hasIcon,(X=a.latestVersion)==null?void 0:X.version)},{immediate:!0});async function y(){const u=++h;A.value=!0;try{const{execute:X}=F_(),a=await X();u===h&&(o.value=a.value??[],D.value=!1)}catch(X){u===h&&(D.value=!0,g.error(Q(X)))}finally{u===h&&(A.value=!1)}}function Y(u){M.embedded&&T("select",u.id)}function f(u,X){!M.embedded||!["Enter"," "].includes(u.key)||(u.preventDefault(),Y(X))}function z(u,X){const a=o.value.find(B=>B.id===u);a&&(a.installedVersion=X)}return G({updateInstalled:z}),p_(y),a_(()=>h++),(u,X)=>(n(),c("main",{class:i_(["plugin-market",{"plugin-market--embedded":O.embedded}])},[P(_(l_),{fluid:"",class:"plugin-market-container"},{default:C(()=>[P(G_,{title:_(E)("TXT_CODE_PLUGIN_MARKET"),icon:"mdi-puzzle-outline"},{search:C(()=>[P(_(v_),{modelValue:s.value,"onUpdate:modelValue":X[0]||(X[0]=a=>s.value=a),label:_(E)("TXT_CODE_PLUGIN_MARKET_SEARCH"),"prepend-inner-icon":"mdi-magnify","hide-details":"",clearable:"",density:"comfortable",variant:"solo-filled"},null,8,["modelValue","label"])]),actions:C(()=>[P(_(V),{variant:"text",loading:A.value,onClick:y},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_REFRESH")),1)]),_:1},8,["loading"])]),_:1},8,["title"]),A.value&&!o.value.length?(n(),r(_(P_),{key:0,indeterminate:"",class:"mb-4"})):d("",!0),!A.value&&!o.value.length?(n(),c("div",vT,[P(_(j),{icon:D.value?"mdi-lan-disconnect":"mdi-puzzle-outline",size:"48",class:"plugin-market-empty-icon"},null,8,["icon"]),L("div",gT,N(D.value?_(E)("TXT_CODE_PLUGIN_MARKET_UNREACHABLE"):_(E)("TXT_CODE_PLUGIN_MARKET_EMPTY")),1)])):b.value.length?(n(),r(_(h_),{key:2,class:"plugin-market-grid"},{default:C(()=>[(n(!0),c(x,null,__(b.value,a=>(n(),r(_(g_),{key:a.id,cols:"12",md:"6",lg:"4"},{default:C(()=>[P(_(n_),{class:"plugin-market-card h-100",elevation:"0",to:O.embedded?void 0:`/market/plugins/${encodeURIComponent(a.id)}`,role:O.embedded?"button":void 0,tabindex:O.embedded?0:void 0,link:"",onClick:B=>Y(a),onKeydown:B=>f(B,a)},{default:C(()=>[P(_(A_),{class:"plugin-market-card-content"},{default:C(()=>{var B;return[L("div",hT,[P(_(U_),{class:"plugin-market-icon",size:"52",rounded:"12px",color:"surface",variant:"flat"},{default:C(()=>[a.hasIcon&&_(U)[a.id]?(n(),r(_(M_),{key:0,src:_(U)[a.id],alt:"",cover:"",transition:"fade-transition",class:"plugin-market-icon-image",onError:l=>delete _(U)[a.id]},null,8,["src","onError"])):a.hasIcon?d("",!0):(n(),r(_(j),{key:1,icon:"mdi-puzzle-outline",size:"28"}))]),_:2},1024),L("div",fT,[L("div",BT,N(a.displayName),1),L("div",kT,[$(N(((B=a.author)==null?void 0:B.displayName)??"")+" ",1),a.category?(n(),c("span",bT,"· "+N(a.category),1)):d("",!0)])])]),L("div",FT,N(a.summary||_(E)("TXT_CODE_PLUGIN_MARKET_NO_SUMMARY")),1)]}),_:2},1024),P(_(D_),{class:"plugin-market-card-actions"},{default:C(()=>[a.latestVersion?(n(),r(_(T_),{key:0,size:"small",variant:"tonal"},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_VERSION",{version:a.latestVersion.version})),1)]),_:2},1024)):d("",!0),P(c_,{sides:a.sides},null,8,["sides"]),a.installedVersion?(n(),r(_(T_),{key:1,size:"small",color:"success",variant:"tonal"},{default:C(()=>[$(N(_(E)("TXT_CODE_PLUGIN_MARKET_INSTALLED")),1)]),_:1})):d("",!0)]),_:2},1024)]),_:2},1032,["to","role","tabindex","onClick","onKeydown"])]),_:2},1024))),128))]),_:1})):A.value?d("",!0):(n(),c("div",VT,[P(_(j),{icon:"mdi-magnify",size:"42",class:"plugin-market-empty-icon"}),L("div",yT,N(_(E)("TXT_CODE_NO_DATA")),1)]))]),_:1})],2))}});const r_=I_(HT,[["__scopeId","data-v-7b47151a"]]),YT={class:"desktop-plugin-market"},wT=Z({__name:"DesktopPluginMarket",setup(O){const G=m(),t=m("");function M(D){t.value=D}function T(){t.value=""}function A(D,o){var s;(s=G.value)==null||s.updateInstalled(D,o)}return(D,o)=>(n(),c("div",YT,[f_(P(r_,{ref_key:"pluginList",ref:G,embedded:"",onSelect:M},null,512),[[B_,!t.value]]),t.value?(n(),r(X_,{key:0,"plugin-id":t.value,embedded:"",onBack:T,onInstalled:A},null,8,["plugin-id"])):d("",!0)]))}});const zT=I_(wT,[["__scopeId","data-v-53e84b0f"]]),xT=Z({__name:"PluginMarket",setup(O){return(G,t)=>(n(),r(r_))}}),ZT=Z({__name:"PluginMarketDetail",setup(O){const G=k_(),t=b_(),M=k(()=>String(G.params.pluginId??""));return(T,A)=>(n(),r(X_,{"plugin-id":M.value,onBack:A[0]||(A[0]=D=>_(t).push("/market/plugins"))},null,8,["plugin-id"]))}}),qT="Plugin-Markt",QT="Markt-Adresse",jT="Adresse der Plugin-Markt-Website, von dort kommt die Plugin-Liste",WT="Ungültige Marktadresse: eine http(s)-Adresse ohne Query, Fragment oder Zugangsdaten",JT="Die heruntergeladenen Dateien stimmen nicht mit dem Paket im Markt überein",_E="Das Paket enthält einen ungültigen Dateipfad",TE="von {name}",EE="Abbrechen",eE="Bestätigen",NE="Nodes auswählen",nE="Die Daemon-Hälfte auf diesen Nodes installieren",AE="Die Daemon-Hälfte von diesen Nodes entfernen",DE="offline",IE="Diese Nodes konnten nicht aktualisiert werden: {nodes}",tE="„{name}“ wirklich entfernen?",LE="Das Installationsverzeichnis wird bereits von einem anderen Plugin verwendet",sE="Der Markt enthält noch keine Plugins",OE="Das Paket enthält keine installierbaren Dateien",oE="Installieren",RE="Installiert",CE="Keine Kurzbeschreibung",aE="Aktualisieren",PE="Starten Sie das Panel und die betroffenen Knoten neu, damit die Plugin-Änderungen wirksam werden.",UE="Plugins suchen",ME="Deinstallieren",lE="Deinstalliert",iE="Dieses Plugin ist weiterhin auf anderen Knoten installiert.",GE="Der Markt ist nicht erreichbar; bitte die Markt-Adresse prüfen",KE="v{version}",cE="Plugin-Details",XE="Zurück zum Plugin-Markt",rE="Keine ausführliche Beschreibung verfügbar",dE="Installiert: v{version}",uE="Veröffentlicht: {date}",SE="Größe: {size} · {count} Dateien",$E="Keine Versionshinweise verfügbar",mE="Das Plugin oder die Version wurde nicht gefunden, noch nicht freigegeben oder aus dem Markt entfernt",pE="Readme",vE="Versionen",gE="Tags",hE="Weitere Informationen",fE="Plugin-ID",BE="Anbieter",kE="Neueste",bE="Panel-Plugin",FE="Daemon-Plugin",VE="Panel- und Daemon-Plugin",yE="Änderungen",HE="Dieses Plugin benötigt eine andere Host-API oder Browser-SDK-Version. Aktualisieren Sie zuerst ElementsPanel.",YE="Bitte wählen Sie vor der Installation einen Knoten aus!",wE="This plugin is bundled with the panel and cannot be uninstalled here.",zE="npm install failed. Check the network, registry and package name, then retry.",xE={TXT_CODE_PLUGIN_MARKET:qT,TXT_CODE_PLUGIN_MARKET_ADDR:QT,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:jT,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:WT,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:JT,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:_E,TXT_CODE_PLUGIN_MARKET_BY:TE,TXT_CODE_PLUGIN_MARKET_CANCEL:EE,TXT_CODE_PLUGIN_MARKET_CONFIRM:eE,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:NE,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:nE,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:AE,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:DE,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:IE,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:tE,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:LE,TXT_CODE_PLUGIN_MARKET_EMPTY:sE,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:OE,TXT_CODE_PLUGIN_MARKET_INSTALL:oE,TXT_CODE_PLUGIN_MARKET_INSTALLED:RE,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:CE,TXT_CODE_PLUGIN_MARKET_REFRESH:aE,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:PE,TXT_CODE_PLUGIN_MARKET_SEARCH:UE,TXT_CODE_PLUGIN_MARKET_UNINSTALL:ME,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:lE,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:iE,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:GE,TXT_CODE_PLUGIN_MARKET_VERSION:KE,TXT_CODE_PLUGIN_MARKET_DETAIL:cE,TXT_CODE_PLUGIN_MARKET_BACK:XE,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:rE,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:dE,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:uE,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:SE,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:$E,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:mE,TXT_CODE_PLUGIN_MARKET_README:pE,TXT_CODE_PLUGIN_MARKET_VERSIONS:vE,TXT_CODE_PLUGIN_MARKET_TAGS:gE,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:hE,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:fE,TXT_CODE_PLUGIN_MARKET_VENDOR:BE,TXT_CODE_PLUGIN_MARKET_LATEST:kE,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:bE,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:FE,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:VE,TXT_CODE_PLUGIN_MARKET_UPDATES:yE,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:HE,TXT_CODE_2de92a5d:YE,TXT_CODE_PLUGIN_MARKET_BUNDLED:wE,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:zE},ZE="Plugin market",qE="Market address",QE="Address of the plugin market website, where the plugin list comes from",jE="Invalid market address: use an http(s) address with no query, fragment or credentials",WE="The downloaded files do not match the package published on the market",JE="The package contains an illegal file path",_e="by {name}",Te="Cancel",Ee="Confirm",ee="Select nodes",Ne="Install the daemon half on these nodes",ne="Remove the daemon half from these nodes",Ae="offline",De="These nodes could not be updated: {nodes}",Ie='Remove "{name}"?',te="That install directory is already used by another plugin",Le="The market has no plugins yet",se="The package contains no installable files",Oe="Install",oe="Installed",Re="No summary",Ce="Refresh",ae="Restart the panel and the affected nodes for the plugin changes to take effect.",Pe="Search plugins",Ue="Uninstall",Me="Uninstalled",le="This plugin is still installed on other nodes.",ie="The market could not be reached; check the market address",Ge="v{version}",Ke="Plugin details",ce="Back to plugin market",Xe="No detailed description available",re="Installed v{version}",de="Published: {date}",ue="Size: {size} · {count} files",Se="No release notes available",$e="The plugin or version was not found, has not been approved, or has been delisted",me="Readme",pe="Versions",ve="Tags",ge="Additional info",he="Plugin ID",fe="Vendor",Be="Latest",ke="Panel plugin",be="Daemon plugin",Fe="Panel + daemon plugin",Ve="Updates",ye="This plugin requires a different host API or browser SDK version. Update ElementsPanel before installing.",He="Please select a node before installing!",Ye="This plugin is bundled with the panel and cannot be uninstalled here.",we="npm install failed. Check the network, registry and package name, then retry.",ze={TXT_CODE_PLUGIN_MARKET:ZE,TXT_CODE_PLUGIN_MARKET_ADDR:qE,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:QE,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:jE,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:WE,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:JE,TXT_CODE_PLUGIN_MARKET_BY:_e,TXT_CODE_PLUGIN_MARKET_CANCEL:Te,TXT_CODE_PLUGIN_MARKET_CONFIRM:Ee,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:ee,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:Ne,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:ne,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:Ae,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:De,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:Ie,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:te,TXT_CODE_PLUGIN_MARKET_EMPTY:Le,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:se,TXT_CODE_PLUGIN_MARKET_INSTALL:Oe,TXT_CODE_PLUGIN_MARKET_INSTALLED:oe,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:Re,TXT_CODE_PLUGIN_MARKET_REFRESH:Ce,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:ae,TXT_CODE_PLUGIN_MARKET_SEARCH:Pe,TXT_CODE_PLUGIN_MARKET_UNINSTALL:Ue,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:Me,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:le,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:ie,TXT_CODE_PLUGIN_MARKET_VERSION:Ge,TXT_CODE_PLUGIN_MARKET_DETAIL:Ke,TXT_CODE_PLUGIN_MARKET_BACK:ce,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:Xe,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:re,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:de,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:ue,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:Se,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:$e,TXT_CODE_PLUGIN_MARKET_README:me,TXT_CODE_PLUGIN_MARKET_VERSIONS:pe,TXT_CODE_PLUGIN_MARKET_TAGS:ve,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:ge,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:he,TXT_CODE_PLUGIN_MARKET_VENDOR:fe,TXT_CODE_PLUGIN_MARKET_LATEST:Be,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:ke,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:be,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:Fe,TXT_CODE_PLUGIN_MARKET_UPDATES:Ve,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:ye,TXT_CODE_2de92a5d:He,TXT_CODE_PLUGIN_MARKET_BUNDLED:Ye,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:we},xe="Mercado de plugins",Ze="Dirección del mercado",qe="Dirección del sitio del mercado de plugins, de ahí viene la lista",Qe="Dirección de mercado no válida: usa una dirección http(s) sin consulta, fragmento ni credenciales",je="Los archivos descargados no coinciden con el paquete publicado en el mercado",We="El paquete contiene una ruta de archivo no válida",Je="por {name}",_N="Cancelar",TN="Confirmar",EN="Seleccionar nodos",eN="Instalar la mitad del daemon en estos nodos",NN="Eliminar la mitad del daemon de estos nodos",nN="desconectado",AN="No se pudieron actualizar estos nodos: {nodes}",DN="¿Quitar «{name}»?",IN="Ese directorio ya lo usa otro plugin",tN="El mercado aún no tiene plugins",LN="El paquete no contiene archivos instalables",sN="Instalar",ON="Instalado",oN="Sin resumen",RN="Actualizar",CN="Reinicie el panel y los nodos afectados para que los cambios del plugin surtan efecto.",aN="Buscar plugins",PN="Desinstalar",UN="Desinstalado",MN="Este plugin sigue instalado en otros nodos.",lN="No se pudo conectar con el mercado; revisa la dirección",iN="v{version}",GN="Detalles del complemento",KN="Volver al mercado de complementos",cN="No hay una descripción detallada",XN="Instalada v{version}",rN="Publicado: {date}",dN="Tamaño: {size} · {count} archivos",uN="No hay notas de la versión",SN="El complemento o la versión no existe, no se ha aprobado o se ha retirado del mercado",$N="Readme",mN="Versiones",pN="Etiquetas",vN="Información adicional",gN="ID del complemento",hN="Proveedor",fN="Más reciente",BN="Complemento de panel",kN="Complemento de daemon",bN="Complemento de panel y daemon",FN="Novedades",VN="Este complemento requiere otra versión de la API del servidor o del SDK del navegador. Actualiza ElementsPanel primero.",yN="¡Seleccione un nodo antes de instalar!",HN="This plugin is bundled with the panel and cannot be uninstalled here.",YN="npm install failed. Check the network, registry and package name, then retry.",wN={TXT_CODE_PLUGIN_MARKET:xe,TXT_CODE_PLUGIN_MARKET_ADDR:Ze,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:qe,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:Qe,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:je,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:We,TXT_CODE_PLUGIN_MARKET_BY:Je,TXT_CODE_PLUGIN_MARKET_CANCEL:_N,TXT_CODE_PLUGIN_MARKET_CONFIRM:TN,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:EN,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:eN,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:NN,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:nN,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:AN,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:DN,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:IN,TXT_CODE_PLUGIN_MARKET_EMPTY:tN,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:LN,TXT_CODE_PLUGIN_MARKET_INSTALL:sN,TXT_CODE_PLUGIN_MARKET_INSTALLED:ON,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:oN,TXT_CODE_PLUGIN_MARKET_REFRESH:RN,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:CN,TXT_CODE_PLUGIN_MARKET_SEARCH:aN,TXT_CODE_PLUGIN_MARKET_UNINSTALL:PN,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:UN,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:MN,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:lN,TXT_CODE_PLUGIN_MARKET_VERSION:iN,TXT_CODE_PLUGIN_MARKET_DETAIL:GN,TXT_CODE_PLUGIN_MARKET_BACK:KN,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:cN,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:XN,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:rN,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:dN,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:uN,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:SN,TXT_CODE_PLUGIN_MARKET_README:$N,TXT_CODE_PLUGIN_MARKET_VERSIONS:mN,TXT_CODE_PLUGIN_MARKET_TAGS:pN,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:vN,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:gN,TXT_CODE_PLUGIN_MARKET_VENDOR:hN,TXT_CODE_PLUGIN_MARKET_LATEST:fN,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:BN,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:kN,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:bN,TXT_CODE_PLUGIN_MARKET_UPDATES:FN,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:VN,TXT_CODE_2de92a5d:yN,TXT_CODE_PLUGIN_MARKET_BUNDLED:HN,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:YN},zN="Marché de plugins",xN="Adresse du marché",ZN="Adresse du site du marché de plugins, d'où vient la liste",qN="Adresse de marché invalide : utilisez une adresse http(s) sans requête, fragment ni identifiants",QN="Les fichiers téléchargés ne correspondent pas au paquet publié sur le marché",jN="Le paquet contient un chemin de fichier invalide",WN="par {name}",JN="Annuler",_n="Confirmer",Tn="Choisir les nœuds",En="Installer la moitié démon sur ces nœuds",en="Supprimer la moitié démon de ces nœuds",Nn="hors ligne",nn="Ces nœuds n'ont pas pu être mis à jour : {nodes}",An="Retirer « {name} » ?",Dn="Ce répertoire est déjà utilisé par un autre plugin",In="Le marché ne contient pas encore de plugin",tn="Le paquet ne contient aucun fichier installable",Ln="Installer",sn="Installé",On="Aucun résumé",on="Actualiser",Rn="Redémarrez le panneau et les nœuds concernés pour appliquer les modifications du plugin.",Cn="Rechercher des plugins",an="Désinstaller",Pn="Désinstallé",Un="Ce plugin est toujours installé sur d’autres nœuds.",Mn="Le marché est inaccessible ; vérifiez l'adresse",ln="v{version}",Gn="Détails du plugin",Kn="Retour au marché des plugins",cn="Aucune description détaillée disponible",Xn="Version installée v{version}",rn="Publication : {date}",dn="Taille : {size} · {count} fichiers",un="Aucune note de version disponible",Sn="Le plugin ou la version est introuvable, en attente de validation ou retiré du marché",$n="Readme",mn="Versions",pn="Étiquettes",vn="Informations complémentaires",gn="ID de l'extension",hn="Fournisseur",fn="Dernière",Bn="Extension de panel",kn="Extension de daemon",bn="Extension panel et daemon",Fn="Nouveautés",Vn="Ce plugin nécessite une autre version de l’API hôte ou du SDK navigateur. Mettez d’abord ElementsPanel à jour.",yn="Veuillez sélectionner un nœud avant l'installation!",Hn="This plugin is bundled with the panel and cannot be uninstalled here.",Yn="npm install failed. Check the network, registry and package name, then retry.",wn={TXT_CODE_PLUGIN_MARKET:zN,TXT_CODE_PLUGIN_MARKET_ADDR:xN,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:ZN,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:qN,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:QN,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:jN,TXT_CODE_PLUGIN_MARKET_BY:WN,TXT_CODE_PLUGIN_MARKET_CANCEL:JN,TXT_CODE_PLUGIN_MARKET_CONFIRM:_n,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:Tn,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:En,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:en,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:Nn,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:nn,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:An,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:Dn,TXT_CODE_PLUGIN_MARKET_EMPTY:In,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:tn,TXT_CODE_PLUGIN_MARKET_INSTALL:Ln,TXT_CODE_PLUGIN_MARKET_INSTALLED:sn,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:On,TXT_CODE_PLUGIN_MARKET_REFRESH:on,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:Rn,TXT_CODE_PLUGIN_MARKET_SEARCH:Cn,TXT_CODE_PLUGIN_MARKET_UNINSTALL:an,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:Pn,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:Un,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:Mn,TXT_CODE_PLUGIN_MARKET_VERSION:ln,TXT_CODE_PLUGIN_MARKET_DETAIL:Gn,TXT_CODE_PLUGIN_MARKET_BACK:Kn,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:cn,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:Xn,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:rn,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:dn,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:un,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:Sn,TXT_CODE_PLUGIN_MARKET_README:$n,TXT_CODE_PLUGIN_MARKET_VERSIONS:mn,TXT_CODE_PLUGIN_MARKET_TAGS:pn,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:vn,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:gn,TXT_CODE_PLUGIN_MARKET_VENDOR:hn,TXT_CODE_PLUGIN_MARKET_LATEST:fn,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:Bn,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:kn,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:bn,TXT_CODE_PLUGIN_MARKET_UPDATES:Fn,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:Vn,TXT_CODE_2de92a5d:yn,TXT_CODE_PLUGIN_MARKET_BUNDLED:Hn,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:Yn},zn="プラグインマーケット",xn="マーケットのアドレス",Zn="プラグイン一覧の取得元となるマーケットサイトのアドレス",qn="マーケットアドレスが不正です。クエリ・フラグメント・認証情報を含まない http(s) のアドレスを入力してください",Qn="ダウンロードしたファイルがマーケットで公開されているパッケージと一致しません",jn="パッケージに不正なファイルパスが含まれています",Wn="作者: {name}",Jn="キャンセル",_A="確定",TA="ノードを選択",EA="次のノードにデーモン側をインストールします",eA="次のノードからデーモン側を削除します",NA="オフライン",nA="次のノードを更新できませんでした:{nodes}",AA="「{name}」を削除しますか?",DA="そのインストール先ディレクトリは別のプラグインが使用しています",IA="マーケットにはまだプラグインがありません",tA="パッケージにインストールできるファイルがありません",LA="インストール",sA="インストール済み",OA="概要なし",oA="更新",RA="プラグインの変更を反映するには、パネルと対象ノードを再起動してください。",CA="プラグインを検索",aA="アンインストール",PA="アンインストール済み",UA="このプラグインは他のノードにまだインストールされています。",MA="マーケットに接続できません。アドレスを確認してください",lA="v{version}",iA="プラグインの詳細",GA="プラグインマーケットに戻る",KA="詳細な説明はありません",cA="インストール済み v{version}",XA="公開日時:{date}",rA="サイズ:{size} · {count} ファイル",dA="更新内容はありません",uA="プラグインまたはバージョンが存在しないか、未承認または公開停止されています",SA="Readme",$A="バージョン",mA="タグ",pA="追加情報",vA="プラグイン ID",gA="開発元",hA="最新",fA="Panel プラグイン",BA="Daemon プラグイン",kA="Panel・Daemon 両対応プラグイン",bA="更新履歴",FA="このプラグインには別のホスト API またはブラウザー SDK が必要です。先に ElementsPanel を更新してください。",VA="インストールする前にノードを選択してください!",yA="This plugin is bundled with the panel and cannot be uninstalled here.",HA="npm install failed. Check the network, registry and package name, then retry.",YA={TXT_CODE_PLUGIN_MARKET:zn,TXT_CODE_PLUGIN_MARKET_ADDR:xn,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:Zn,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:qn,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:Qn,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:jn,TXT_CODE_PLUGIN_MARKET_BY:Wn,TXT_CODE_PLUGIN_MARKET_CANCEL:Jn,TXT_CODE_PLUGIN_MARKET_CONFIRM:_A,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:TA,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:EA,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:eA,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:NA,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:nA,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:AA,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:DA,TXT_CODE_PLUGIN_MARKET_EMPTY:IA,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:tA,TXT_CODE_PLUGIN_MARKET_INSTALL:LA,TXT_CODE_PLUGIN_MARKET_INSTALLED:sA,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:OA,TXT_CODE_PLUGIN_MARKET_REFRESH:oA,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:RA,TXT_CODE_PLUGIN_MARKET_SEARCH:CA,TXT_CODE_PLUGIN_MARKET_UNINSTALL:aA,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:PA,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:UA,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:MA,TXT_CODE_PLUGIN_MARKET_VERSION:lA,TXT_CODE_PLUGIN_MARKET_DETAIL:iA,TXT_CODE_PLUGIN_MARKET_BACK:GA,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:KA,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:cA,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:XA,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:rA,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:dA,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:uA,TXT_CODE_PLUGIN_MARKET_README:SA,TXT_CODE_PLUGIN_MARKET_VERSIONS:$A,TXT_CODE_PLUGIN_MARKET_TAGS:mA,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:pA,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:vA,TXT_CODE_PLUGIN_MARKET_VENDOR:gA,TXT_CODE_PLUGIN_MARKET_LATEST:hA,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:fA,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:BA,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:kA,TXT_CODE_PLUGIN_MARKET_UPDATES:bA,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:FA,TXT_CODE_2de92a5d:VA,TXT_CODE_PLUGIN_MARKET_BUNDLED:yA,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:HA},wA="플러그인 마켓",zA="마켓 주소",xA="플러그인 목록을 가져오는 마켓 사이트 주소",ZA="마켓 주소가 올바르지 않습니다. 쿼리, 프래그먼트, 자격 증명이 없는 http(s) 주소를 입력하세요",qA="다운로드한 파일이 마켓에 게시된 패키지와 일치하지 않습니다",QA="패키지에 잘못된 파일 경로가 있습니다",jA="제작자: {name}",WA="취소",JA="확인",_D="노드 선택",TD="다음 노드에 데몬 부분을 설치합니다",ED="다음 노드에서 데몬 부분을 제거합니다",eD="오프라인",ND="다음 노드를 갱신하지 못했습니다: {nodes}",nD='"{name}"을(를) 제거할까요?',AD="해당 설치 디렉터리는 다른 플러그인이 사용 중입니다",DD="마켓에 아직 플러그인이 없습니다",ID="패키지에 설치할 파일이 없습니다",tD="설치",LD="설치됨",sD="요약 없음",OD="새로 고침",oD="플러그인 변경 사항을 적용하려면 패널과 해당 노드를 다시 시작하세요.",RD="플러그인 검색",CD="제거",aD="제거됨",PD="이 플러그인은 다른 노드에 아직 설치되어 있습니다.",UD="마켓에 연결할 수 없습니다. 주소를 확인하세요",MD="v{version}",lD="플러그인 상세 정보",iD="플러그인 마켓으로 돌아가기",GD="상세 설명이 없습니다",KD="설치됨 v{version}",cD="게시일: {date}",XD="크기: {size} · 파일 {count}개",rD="업데이트 내역이 없습니다",dD="플러그인 또는 버전이 없거나, 승인되지 않았거나, 마켓에서 내려갔습니다",uD="Readme",SD="버전",$D="태그",mD="추가 정보",pD="플러그인 ID",vD="제작자",gD="최신",hD="Panel 플러그인",fD="Daemon 플러그인",BD="Panel + Daemon 플러그인",kD="업데이트",bD="이 플러그인에는 다른 호스트 API 또는 브라우저 SDK 버전이 필요합니다. 먼저 ElementsPanel을 업데이트하세요.",FD="설치하기 전에 노드를 선택하십시오!",VD="This plugin is bundled with the panel and cannot be uninstalled here.",yD="npm install failed. Check the network, registry and package name, then retry.",HD={TXT_CODE_PLUGIN_MARKET:wA,TXT_CODE_PLUGIN_MARKET_ADDR:zA,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:xA,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:ZA,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:qA,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:QA,TXT_CODE_PLUGIN_MARKET_BY:jA,TXT_CODE_PLUGIN_MARKET_CANCEL:WA,TXT_CODE_PLUGIN_MARKET_CONFIRM:JA,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:_D,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:TD,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:ED,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:eD,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:ND,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:nD,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:AD,TXT_CODE_PLUGIN_MARKET_EMPTY:DD,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:ID,TXT_CODE_PLUGIN_MARKET_INSTALL:tD,TXT_CODE_PLUGIN_MARKET_INSTALLED:LD,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:sD,TXT_CODE_PLUGIN_MARKET_REFRESH:OD,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:oD,TXT_CODE_PLUGIN_MARKET_SEARCH:RD,TXT_CODE_PLUGIN_MARKET_UNINSTALL:CD,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:aD,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:PD,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:UD,TXT_CODE_PLUGIN_MARKET_VERSION:MD,TXT_CODE_PLUGIN_MARKET_DETAIL:lD,TXT_CODE_PLUGIN_MARKET_BACK:iD,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:GD,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:KD,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:cD,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:XD,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:rD,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:dD,TXT_CODE_PLUGIN_MARKET_README:uD,TXT_CODE_PLUGIN_MARKET_VERSIONS:SD,TXT_CODE_PLUGIN_MARKET_TAGS:$D,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:mD,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:pD,TXT_CODE_PLUGIN_MARKET_VENDOR:vD,TXT_CODE_PLUGIN_MARKET_LATEST:gD,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:hD,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:fD,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:BD,TXT_CODE_PLUGIN_MARKET_UPDATES:kD,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:bD,TXT_CODE_2de92a5d:FD,TXT_CODE_PLUGIN_MARKET_BUNDLED:VD,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:yD},YD="Mercado de plugins",wD="Endereço do mercado",zD="Endereço do site do mercado, de onde vem a lista de plugins",xD="Endereço do mercado inválido: use um endereço http(s) sem query, fragmento ou credenciais",ZD="Os arquivos baixados não correspondem ao pacote publicado no mercado",qD="O pacote contém um caminho de arquivo inválido",QD="por {name}",jD="Cancelar",WD="Confirmar",JD="Selecionar nós",_I="Instalar a metade do daemon nestes nós",TI="Remover a metade do daemon destes nós",EI="offline",eI="Não foi possível atualizar estes nós: {nodes}",NI='Remover "{name}"?',nI="Esse diretório já é usado por outro plugin",AI="O mercado ainda não tem plugins",DI="O pacote não contém arquivos instaláveis",II="Instalar",tI="Instalado",LI="Sem resumo",sI="Atualizar",OI="Reinicie o painel e os nós afetados para que as alterações do plugin tenham efeito.",oI="Buscar plugins",RI="Desinstalar",CI="Desinstalado",aI="Este plugin ainda está instalado em outros nós.",PI="Não foi possível conectar ao mercado; verifique o endereço",UI="v{version}",MI="Detalhes do plugin",lI="Voltar ao mercado de plugins",iI="Nenhuma descrição detalhada disponível",GI="Instalada v{version}",KI="Publicado em: {date}",cI="Tamanho: {size} · {count} arquivos",XI="Nenhuma nota da versão disponível",rI="O plugin ou a versão não foi encontrado, não foi aprovado ou foi retirado do mercado",dI="Readme",uI="Versões",SI="Tags",$I="Informações adicionais",mI="ID do plugin",pI="Fornecedor",vI="Mais recente",gI="Plugin de painel",hI="Plugin de daemon",fI="Plugin de painel e daemon",BI="Novidades",kI="Este plugin requer outra versão da API do host ou do SDK do navegador. Atualize o ElementsPanel primeiro.",bI="Selecione um nó antes de instalar!",FI="This plugin is bundled with the panel and cannot be uninstalled here.",VI="npm install failed. Check the network, registry and package name, then retry.",yI={TXT_CODE_PLUGIN_MARKET:YD,TXT_CODE_PLUGIN_MARKET_ADDR:wD,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:zD,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:xD,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:ZD,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:qD,TXT_CODE_PLUGIN_MARKET_BY:QD,TXT_CODE_PLUGIN_MARKET_CANCEL:jD,TXT_CODE_PLUGIN_MARKET_CONFIRM:WD,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:JD,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:_I,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:TI,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:EI,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:eI,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:NI,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:nI,TXT_CODE_PLUGIN_MARKET_EMPTY:AI,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:DI,TXT_CODE_PLUGIN_MARKET_INSTALL:II,TXT_CODE_PLUGIN_MARKET_INSTALLED:tI,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:LI,TXT_CODE_PLUGIN_MARKET_REFRESH:sI,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:OI,TXT_CODE_PLUGIN_MARKET_SEARCH:oI,TXT_CODE_PLUGIN_MARKET_UNINSTALL:RI,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:CI,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:aI,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:PI,TXT_CODE_PLUGIN_MARKET_VERSION:UI,TXT_CODE_PLUGIN_MARKET_DETAIL:MI,TXT_CODE_PLUGIN_MARKET_BACK:lI,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:iI,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:GI,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:KI,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:cI,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:XI,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:rI,TXT_CODE_PLUGIN_MARKET_README:dI,TXT_CODE_PLUGIN_MARKET_VERSIONS:uI,TXT_CODE_PLUGIN_MARKET_TAGS:SI,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:$I,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:mI,TXT_CODE_PLUGIN_MARKET_VENDOR:pI,TXT_CODE_PLUGIN_MARKET_LATEST:vI,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:gI,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:hI,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:fI,TXT_CODE_PLUGIN_MARKET_UPDATES:BI,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:kI,TXT_CODE_2de92a5d:bI,TXT_CODE_PLUGIN_MARKET_BUNDLED:FI,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:VI},HI="Маркет плагинов",YI="Адрес маркета",wI="Адрес сайта маркета плагинов, откуда берётся список",zI="Некорректный адрес маркета: укажите http(s)-адрес без query, фрагмента и учётных данных",xI="Загруженные файлы не совпадают с пакетом, опубликованным в маркете",ZI="Пакет содержит недопустимый путь",qI="автор: {name}",QI="Отмена",jI="Подтвердить",WI="Выберите узлы",JI="Установить часть демона на эти узлы",_t="Удалить часть демона с этих узлов",Tt="не в сети",Et="Не удалось обновить эти узлы: {nodes}",et="Удалить «{name}»?",Nt="Этот каталог уже занят другим плагином",nt="В маркете пока нет плагинов",At="В пакете нет файлов для установки",Dt="Установить",It="Установлено",tt="Без описания",Lt="Обновить",st="Перезапустите панель и затронутые узлы, чтобы изменения плагина вступили в силу.",Ot="Поиск плагинов",ot="Удалить",Rt="Удалено",Ct="Этот плагин по-прежнему установлен на других узлах.",at="Не удалось подключиться к маркету, проверьте адрес",Pt="v{version}",Ut="Сведения о плагине",Mt="Назад в магазин плагинов",lt="Подробное описание отсутствует",it="Установлена v{version}",Gt="Опубликовано: {date}",Kt="Размер: {size} · Файлов: {count}",ct="Список изменений отсутствует",Xt="Плагин или версия не найдены, ещё не одобрены или сняты с публикации",rt="Readme",dt="Версии",ut="Теги",St="Дополнительная информация",$t="ID плагина",mt="Издатель",pt="Последняя",vt="Плагин панели",gt="Плагин демона",ht="Плагин панели и демона",ft="Обновления",Bt="Плагину нужна другая версия API хоста или SDK браузера. Сначала обновите ElementsPanel.",kt="Пожалуйста, выберите узел перед установкой!",bt="This plugin is bundled with the panel and cannot be uninstalled here.",Ft="npm install failed. Check the network, registry and package name, then retry.",Vt={TXT_CODE_PLUGIN_MARKET:HI,TXT_CODE_PLUGIN_MARKET_ADDR:YI,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:wI,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:zI,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:xI,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:ZI,TXT_CODE_PLUGIN_MARKET_BY:qI,TXT_CODE_PLUGIN_MARKET_CANCEL:QI,TXT_CODE_PLUGIN_MARKET_CONFIRM:jI,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:WI,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:JI,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:_t,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:Tt,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:Et,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:et,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:Nt,TXT_CODE_PLUGIN_MARKET_EMPTY:nt,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:At,TXT_CODE_PLUGIN_MARKET_INSTALL:Dt,TXT_CODE_PLUGIN_MARKET_INSTALLED:It,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:tt,TXT_CODE_PLUGIN_MARKET_REFRESH:Lt,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:st,TXT_CODE_PLUGIN_MARKET_SEARCH:Ot,TXT_CODE_PLUGIN_MARKET_UNINSTALL:ot,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:Rt,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:Ct,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:at,TXT_CODE_PLUGIN_MARKET_VERSION:Pt,TXT_CODE_PLUGIN_MARKET_DETAIL:Ut,TXT_CODE_PLUGIN_MARKET_BACK:Mt,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:lt,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:it,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:Gt,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:Kt,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:ct,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:Xt,TXT_CODE_PLUGIN_MARKET_README:rt,TXT_CODE_PLUGIN_MARKET_VERSIONS:dt,TXT_CODE_PLUGIN_MARKET_TAGS:ut,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:St,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:$t,TXT_CODE_PLUGIN_MARKET_VENDOR:mt,TXT_CODE_PLUGIN_MARKET_LATEST:pt,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:vt,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:gt,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:ht,TXT_CODE_PLUGIN_MARKET_UPDATES:ft,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:Bt,TXT_CODE_2de92a5d:kt,TXT_CODE_PLUGIN_MARKET_BUNDLED:bt,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:Ft},yt="ตลาดปลั๊กอิน",Ht="ที่อยู่ตลาด",Yt="ที่อยู่ของเว็บตลาดปลั๊กอิน ซึ่งเป็นแหล่งที่มาของรายการปลั๊กอิน",wt="ที่อยู่ตลาดไม่ถูกต้อง: ใช้ที่อยู่ http(s) ที่ไม่มี query, fragment หรือข้อมูลรับรอง",zt="ไฟล์ที่ดาวน์โหลดไม่ตรงกับแพ็กเกจที่เผยแพร่ในตลาด",xt="แพ็กเกจมีเส้นทางไฟล์ที่ไม่ถูกต้อง",Zt="โดย {name}",qt="ยกเลิก",Qt="ยืนยัน",jt="เลือกโหนด",Wt="ติดตั้งส่วนของดีมอนบนโหนดเหล่านี้",Jt="ลบส่วนของดีมอนออกจากโหนดเหล่านี้",_L="ออฟไลน์",TL="ไม่สามารถอัปเดตโหนดเหล่านี้ได้: {nodes}",EL='ต้องการถอนการติดตั้ง "{name}" หรือไม่?',eL="โฟลเดอร์ติดตั้งนี้ถูกใช้โดยปลั๊กอินอื่นแล้ว",NL="ยังไม่มีปลั๊กอินในตลาด",nL="แพ็กเกจไม่มีไฟล์ที่ติดตั้งได้",AL="ติดตั้ง",DL="ติดตั้งแล้ว",IL="ไม่มีสรุป",tL="รีเฟรช",LL="รีสตาร์ทแผงควบคุมและโหนดที่เกี่ยวข้องเพื่อให้การเปลี่ยนแปลงปลั๊กอินมีผล",sL="ค้นหาปลั๊กอิน",OL="ถอนการติดตั้ง",oL="ถอนการติดตั้งแล้ว",RL="ปลั๊กอินนี้ยังคงติดตั้งอยู่บนโหนดอื่น",CL="ไม่สามารถเชื่อมต่อตลาดได้ กรุณาตรวจสอบที่อยู่ตลาด",aL="v{version}",PL="รายละเอียดปลั๊กอิน",UL="กลับไปยังตลาดปลั๊กอิน",ML="ยังไม่มีคำอธิบายโดยละเอียด",lL="ติดตั้งแล้ว v{version}",iL="เผยแพร่เมื่อ: {date}",GL="ขนาด: {size} · {count} ไฟล์",KL="ยังไม่มีบันทึกการเปลี่ยนแปลง",cL="ไม่พบปลั๊กอินหรือเวอร์ชัน ยังไม่ได้รับอนุมัติ หรือถูกนำออกจากตลาด",XL="Readme",rL="เวอร์ชัน",dL="แท็ก",uL="ข้อมูลเพิ่มเติม",SL="ID ปลั๊กอิน",$L="ผู้พัฒนา",mL="ล่าสุด",pL="ปลั๊กอิน Panel",vL="ปลั๊กอิน Daemon",gL="ปลั๊กอิน Panel และ Daemon",hL="อัปเดต",fL="ปลั๊กอินนี้ต้องใช้ API โฮสต์หรือ SDK เบราว์เซอร์เวอร์ชันอื่น โปรดอัปเดต ElementsPanel ก่อน",BL="โปรดเลือกโหนดก่อนติดตั้ง!",kL="This plugin is bundled with the panel and cannot be uninstalled here.",bL="npm install failed. Check the network, registry and package name, then retry.",FL={TXT_CODE_PLUGIN_MARKET:yt,TXT_CODE_PLUGIN_MARKET_ADDR:Ht,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:Yt,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:wt,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:zt,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:xt,TXT_CODE_PLUGIN_MARKET_BY:Zt,TXT_CODE_PLUGIN_MARKET_CANCEL:qt,TXT_CODE_PLUGIN_MARKET_CONFIRM:Qt,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:jt,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:Wt,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:Jt,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:_L,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:TL,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:EL,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:eL,TXT_CODE_PLUGIN_MARKET_EMPTY:NL,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:nL,TXT_CODE_PLUGIN_MARKET_INSTALL:AL,TXT_CODE_PLUGIN_MARKET_INSTALLED:DL,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:IL,TXT_CODE_PLUGIN_MARKET_REFRESH:tL,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:LL,TXT_CODE_PLUGIN_MARKET_SEARCH:sL,TXT_CODE_PLUGIN_MARKET_UNINSTALL:OL,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:oL,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:RL,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:CL,TXT_CODE_PLUGIN_MARKET_VERSION:aL,TXT_CODE_PLUGIN_MARKET_DETAIL:PL,TXT_CODE_PLUGIN_MARKET_BACK:UL,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:ML,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:lL,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:iL,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:GL,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:KL,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:cL,TXT_CODE_PLUGIN_MARKET_README:XL,TXT_CODE_PLUGIN_MARKET_VERSIONS:rL,TXT_CODE_PLUGIN_MARKET_TAGS:dL,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:uL,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:SL,TXT_CODE_PLUGIN_MARKET_VENDOR:$L,TXT_CODE_PLUGIN_MARKET_LATEST:mL,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:pL,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:vL,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:gL,TXT_CODE_PLUGIN_MARKET_UPDATES:hL,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:fL,TXT_CODE_2de92a5d:BL,TXT_CODE_PLUGIN_MARKET_BUNDLED:kL,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:bL},VL="Eklenti marketi",yL="Market adresi",HL="Eklenti listesinin geldiği market sitesinin adresi",YL="Geçersiz market adresi: sorgu, parça veya kimlik bilgisi içermeyen bir http(s) adresi girin",wL="İndirilen dosyalar markette yayımlanan paketle eşleşmiyor",zL="Paket geçersiz bir dosya yolu içeriyor",xL="{name} tarafından",ZL="İptal",qL="Onayla",QL="Düğüm seçin",jL="Daemon kısmını bu düğümlere kur",WL="Daemon kısmını bu düğümlerden kaldır",JL="çevrimdışı",_s="Bu düğümler güncellenemedi: {nodes}",Ts='"{name}" kaldırılsın mı?',Es="Bu kurulum dizini başka bir eklenti tarafından kullanılıyor",es="Marketta henüz eklenti yok",Ns="Pakette kurulabilir dosya yok",ns="Kur",As="Kurulu",Ds="Özet yok",Is="Yenile",ts="Eklenti değişikliklerinin etkili olması için paneli ve etkilenen düğümleri yeniden başlatın.",Ls="Eklenti ara",ss="Kaldır",Os="Kaldırıldı",os="Bu eklenti diğer düğümlerde hâlâ yüklü.",Rs="Markete bağlanılamadı; market adresini kontrol edin",Cs="v{version}",as="Eklenti ayrıntıları",Ps="Eklenti mağazasına dön",Us="Ayrıntılı açıklama yok",Ms="Kurulu v{version}",ls="Yayımlanma: {date}",is="Boyut: {size} · {count} dosya",Gs="Sürüm notları yok",Ks="Eklenti veya sürüm bulunamadı, henüz onaylanmadı veya mağazadan kaldırıldı",cs="Readme",Xs="Sürümler",rs="Etiketler",ds="Ek bilgiler",us="Eklenti Kimliği",Ss="Sağlayıcı",$s="En son",ms="Panel eklentisi",ps="Daemon eklentisi",vs="Panel ve daemon eklentisi",gs="Güncellemeler",hs="Bu eklenti farklı bir ana bilgisayar API veya tarayıcı SDK sürümü gerektiriyor. Önce ElementsPanel’i güncelleyin.",fs="Lütfen yüklemeden önce bir düğüm seçin!",Bs="This plugin is bundled with the panel and cannot be uninstalled here.",ks="npm install failed. Check the network, registry and package name, then retry.",bs={TXT_CODE_PLUGIN_MARKET:VL,TXT_CODE_PLUGIN_MARKET_ADDR:yL,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:HL,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:YL,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:wL,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:zL,TXT_CODE_PLUGIN_MARKET_BY:xL,TXT_CODE_PLUGIN_MARKET_CANCEL:ZL,TXT_CODE_PLUGIN_MARKET_CONFIRM:qL,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:QL,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:jL,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:WL,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:JL,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:_s,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:Ts,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:Es,TXT_CODE_PLUGIN_MARKET_EMPTY:es,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:Ns,TXT_CODE_PLUGIN_MARKET_INSTALL:ns,TXT_CODE_PLUGIN_MARKET_INSTALLED:As,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:Ds,TXT_CODE_PLUGIN_MARKET_REFRESH:Is,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:ts,TXT_CODE_PLUGIN_MARKET_SEARCH:Ls,TXT_CODE_PLUGIN_MARKET_UNINSTALL:ss,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:Os,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:os,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:Rs,TXT_CODE_PLUGIN_MARKET_VERSION:Cs,TXT_CODE_PLUGIN_MARKET_DETAIL:as,TXT_CODE_PLUGIN_MARKET_BACK:Ps,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:Us,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:Ms,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:ls,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:is,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:Gs,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:Ks,TXT_CODE_PLUGIN_MARKET_README:cs,TXT_CODE_PLUGIN_MARKET_VERSIONS:Xs,TXT_CODE_PLUGIN_MARKET_TAGS:rs,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:ds,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:us,TXT_CODE_PLUGIN_MARKET_VENDOR:Ss,TXT_CODE_PLUGIN_MARKET_LATEST:$s,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:ms,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:ps,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:vs,TXT_CODE_PLUGIN_MARKET_UPDATES:gs,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:hs,TXT_CODE_2de92a5d:fs,TXT_CODE_PLUGIN_MARKET_BUNDLED:Bs,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:ks},Fs="插件市场",Vs="插件市场地址",ys="插件市场网站的地址,插件列表从这里获取",Hs="插件市场地址无效:请填写不带查询参数、片段或账号密码的 http(s) 地址",Ys="下载的文件与插件市场公布的不一致,请重试",ws="插件包包含非法的文件路径",zs="作者:{name}",xs="取消",Zs="确定",qs="选择节点",Qs="为以下节点安装守护端插件",js="从以下节点移除守护端插件",Ws="离线",Js="以下节点未能完成操作:{nodes}",_O="确定要卸载「{name}」吗?",TO="安装目录已被其他插件占用",EO="插件市场里还没有插件",eO="插件包里没有可安装的文件",NO="安装",nO="已安装",AO="暂无简介",DO="刷新",IO="请重启面板和受影响的节点,使插件变更生效。",tO="搜索插件",LO="卸载",sO="已卸载",OO="此插件仍安装在其他节点上。",oO="无法连接插件市场,请检查插件市场地址",RO="v{version}",CO="插件详情",aO="返回插件市场",PO="暂无详细说明",UO="已安装 v{version}",MO="发布时间:{date}",lO="大小:{size} · {count} 个文件",iO="暂无更新说明",GO="插件或版本不存在、尚未通过审核或已下架",KO="自述",cO="版本",XO="标签",rO="更多信息",dO="插件 ID",uO="开发者",SO="最新",$O="Panel插件",mO="Daemon插件",pO="双端插件",vO="更新",gO="此插件需要其他版本的宿主 API 或浏览器 SDK,请先更新 ElementsPanel。",hO="请选择一个节点再安装!",fO="该插件是面板内置依赖,不能在此卸载",BO="npm 安装失败,请检查网络、registry 或包名后重试",kO={TXT_CODE_PLUGIN_MARKET:Fs,TXT_CODE_PLUGIN_MARKET_ADDR:Vs,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:ys,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:Hs,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:Ys,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:ws,TXT_CODE_PLUGIN_MARKET_BY:zs,TXT_CODE_PLUGIN_MARKET_CANCEL:xs,TXT_CODE_PLUGIN_MARKET_CONFIRM:Zs,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:qs,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:Qs,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:js,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:Ws,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:Js,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:_O,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:TO,TXT_CODE_PLUGIN_MARKET_EMPTY:EO,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:eO,TXT_CODE_PLUGIN_MARKET_INSTALL:NO,TXT_CODE_PLUGIN_MARKET_INSTALLED:nO,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:AO,TXT_CODE_PLUGIN_MARKET_REFRESH:DO,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:IO,TXT_CODE_PLUGIN_MARKET_SEARCH:tO,TXT_CODE_PLUGIN_MARKET_UNINSTALL:LO,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:sO,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:OO,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:oO,TXT_CODE_PLUGIN_MARKET_VERSION:RO,TXT_CODE_PLUGIN_MARKET_DETAIL:CO,TXT_CODE_PLUGIN_MARKET_BACK:aO,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:PO,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:UO,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:MO,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:lO,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:iO,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:GO,TXT_CODE_PLUGIN_MARKET_README:KO,TXT_CODE_PLUGIN_MARKET_VERSIONS:cO,TXT_CODE_PLUGIN_MARKET_TAGS:XO,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:rO,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:dO,TXT_CODE_PLUGIN_MARKET_VENDOR:uO,TXT_CODE_PLUGIN_MARKET_LATEST:SO,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:$O,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:mO,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:pO,TXT_CODE_PLUGIN_MARKET_UPDATES:vO,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:gO,TXT_CODE_2de92a5d:hO,TXT_CODE_PLUGIN_MARKET_BUNDLED:fO,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:BO},bO="插件市場",FO="插件市場位址",VO="插件市場網站的位址,插件清單從這裡取得",yO="插件市場位址無效:請填寫不帶查詢參數、片段或帳號密碼的 http(s) 位址",HO="下載的檔案與插件市場公佈的不一致,請重試",YO="插件包包含非法的檔案路徑",wO="作者:{name}",zO="取消",xO="確定",ZO="選擇節點",qO="為以下節點安裝守護端插件",QO="從以下節點移除守護端插件",jO="離線",WO="以下節點未能完成操作:{nodes}",JO="確定要卸載「{name}」嗎?",_o="安裝目錄已被其他插件佔用",To="插件市場裡還沒有插件",Eo="插件包裡沒有可安裝的檔案",eo="安裝",No="已安裝",no="暫無簡介",Ao="重新整理",Do="請重新啟動面板和受影響的節點,使外掛變更生效。",Io="搜尋插件",to="卸載",Lo="已卸載",so="此插件仍安裝在其他節點上。",Oo="無法連接插件市場,請檢查插件市場位址",oo="v{version}",Ro="外掛程式詳情",Co="返回外掛程式市場",ao="暫無詳細說明",Po="已安裝 v{version}",Uo="發佈時間:{date}",Mo="大小:{size} · {count} 個檔案",lo="暫無更新說明",io="外掛程式或版本不存在、尚未通過審核或已下架",Go="自述",Ko="版本",co="標籤",Xo="更多資訊",ro="外掛 ID",uo="開發者",So="最新",$o="Panel外掛",mo="Daemon外掛",po="雙端外掛",vo="更新",go="此外掛需要其他版本的宿主 API 或瀏覽器 SDK,請先更新 ElementsPanel。",ho="安裝前請選擇一個節點!",fo="該插件是面板內建依賴,不能在此解除安裝",Bo="npm 安裝失敗,請檢查網路、registry 或套件名稱後重試",ko={TXT_CODE_PLUGIN_MARKET:bO,TXT_CODE_PLUGIN_MARKET_ADDR:FO,TXT_CODE_PLUGIN_MARKET_ADDR_DESC:VO,TXT_CODE_PLUGIN_MARKET_ADDR_INVALID:yO,TXT_CODE_PLUGIN_MARKET_BAD_CHECKSUM:HO,TXT_CODE_PLUGIN_MARKET_BAD_PACKAGE:YO,TXT_CODE_PLUGIN_MARKET_BY:wO,TXT_CODE_PLUGIN_MARKET_CANCEL:zO,TXT_CODE_PLUGIN_MARKET_CONFIRM:xO,TXT_CODE_PLUGIN_MARKET_SELECT_NODES:ZO,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_INSTALL:qO,TXT_CODE_PLUGIN_MARKET_SELECT_NODES_UNINSTALL:QO,TXT_CODE_PLUGIN_MARKET_NODE_OFFLINE:jO,TXT_CODE_PLUGIN_MARKET_NODE_FAILED:WO,TXT_CODE_PLUGIN_MARKET_CONFIRM_UNINSTALL:JO,TXT_CODE_PLUGIN_MARKET_DIR_TAKEN:_o,TXT_CODE_PLUGIN_MARKET_EMPTY:To,TXT_CODE_PLUGIN_MARKET_EMPTY_PACKAGE:Eo,TXT_CODE_PLUGIN_MARKET_INSTALL:eo,TXT_CODE_PLUGIN_MARKET_INSTALLED:No,TXT_CODE_PLUGIN_MARKET_NO_SUMMARY:no,TXT_CODE_PLUGIN_MARKET_REFRESH:Ao,TXT_CODE_PLUGIN_MARKET_RESTART_REQUIRED:Do,TXT_CODE_PLUGIN_MARKET_SEARCH:Io,TXT_CODE_PLUGIN_MARKET_UNINSTALL:to,TXT_CODE_PLUGIN_MARKET_UNINSTALLED:Lo,TXT_CODE_PLUGIN_MARKET_UNINSTALL_REMAINING:so,TXT_CODE_PLUGIN_MARKET_UNREACHABLE:Oo,TXT_CODE_PLUGIN_MARKET_VERSION:oo,TXT_CODE_PLUGIN_MARKET_DETAIL:Ro,TXT_CODE_PLUGIN_MARKET_BACK:Co,TXT_CODE_PLUGIN_MARKET_NO_DESCRIPTION:ao,TXT_CODE_PLUGIN_MARKET_INSTALLED_VERSION:Po,TXT_CODE_PLUGIN_MARKET_PUBLISHED_AT:Uo,TXT_CODE_PLUGIN_MARKET_PACKAGE_SIZE:Mo,TXT_CODE_PLUGIN_MARKET_NO_CHANGELOG:lo,TXT_CODE_PLUGIN_MARKET_NOT_FOUND:io,TXT_CODE_PLUGIN_MARKET_README:Go,TXT_CODE_PLUGIN_MARKET_VERSIONS:Ko,TXT_CODE_PLUGIN_MARKET_TAGS:co,TXT_CODE_PLUGIN_MARKET_ADDITIONAL_INFO:Xo,TXT_CODE_PLUGIN_MARKET_PLUGIN_ID:ro,TXT_CODE_PLUGIN_MARKET_VENDOR:uo,TXT_CODE_PLUGIN_MARKET_LATEST:So,TXT_CODE_PLUGIN_MARKET_SIDE_PANEL:$o,TXT_CODE_PLUGIN_MARKET_SIDE_DAEMON:mo,TXT_CODE_PLUGIN_MARKET_SIDE_BOTH:po,TXT_CODE_PLUGIN_MARKET_UPDATES:vo,TXT_CODE_PLUGIN_MARKET_INCOMPATIBLE:go,TXT_CODE_2de92a5d:ho,TXT_CODE_PLUGIN_MARKET_BUNDLED:fo,TXT_CODE_PLUGIN_MARKET_NPM_FAILED:Bo},bo={de_de:xE,en_us:ze,es_es:wN,fr_fr:wn,ja_jp:YA,ko_kr:HD,pt_br:yI,ru_ru:Vt,th_th:FL,tr_tr:bs,zh_cn:kO,zh_tw:ko},N_=10,Wo=["console","i18n","routes","desktop"];function Jo(O){O.i18n.define(bo),O.routes.add({path:"/market/plugins",name:E("TXT_CODE_PLUGIN_MARKET"),component:xT,meta:{mainMenu:!0,permission:N_,icon:"mdi-puzzle-outline"}}),O.routes.add({path:"/market/plugins/:pluginId",name:E("TXT_CODE_PLUGIN_MARKET_DETAIL"),component:ZT,meta:{mainMenu:!1,permission:N_,breadcrumbs:[{name:E("TXT_CODE_PLUGIN_MARKET"),path:"/market/plugins",mainMenu:!0,permission:N_}]}}),O.desktop.app({id:"plugin-market",label:()=>E("TXT_CODE_PLUGIN_MARKET"),icon:"mdi-puzzle-outline",color:"#5c6bc0",route:"/market/plugins",component:zT,condition:()=>S_().isAdmin.value,initialWidth:1100,initialHeight:720})}export{Jo as apply,Wo as inject};
|