@astralyn/sash 0.1.1 → 0.1.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/CHANGELOG.md +25 -0
- package/README.md +17 -5
- package/THIRD_PARTY_NOTICES.md +9 -0
- package/dist/api.js +14 -45
- package/dist/app-state.js +99 -0
- package/dist/autostart/command.js +24 -0
- package/dist/autostart/context.js +43 -0
- package/dist/autostart/files.js +60 -0
- package/dist/autostart/installation.js +48 -0
- package/dist/autostart/start.js +47 -0
- package/dist/autostart/windows-registry.js +88 -0
- package/dist/autostart/windows.js +59 -0
- package/dist/autostart-contract.js +31 -0
- package/dist/autostart-entry.js +10 -0
- package/dist/autostart.js +69 -0
- package/dist/cli.js +11 -11
- package/dist/commands/auto.js +15 -0
- package/dist/commands/lifecycle.js +5 -15
- package/dist/commands/logs.js +11 -4
- package/dist/commands/shared.js +2 -4
- package/dist/commands/status.js +5 -1
- package/dist/commands/update.js +7 -3
- package/dist/commands/web.js +14 -50
- package/dist/contracts.js +168 -348
- package/dist/core-config-validation.js +22 -38
- package/dist/core-update.js +126 -762
- package/dist/core.js +20 -46
- package/dist/daemon/app.js +129 -117
- package/dist/daemon/context.js +13 -7
- package/dist/daemon/entry.js +21 -38
- package/dist/daemon/errors.js +3 -0
- package/dist/daemon/handlers/autostart.js +18 -0
- package/dist/daemon/handlers/core.js +32 -9
- package/dist/daemon/handlers/daemon.js +17 -6
- package/dist/daemon/handlers/profiles.js +12 -2
- package/dist/daemon/handlers/settings.js +9 -36
- package/dist/daemon/router.js +26 -21
- package/dist/daemon/scheduler.js +3 -1
- package/dist/daemon/server.js +5 -2
- package/dist/daemon-client.js +13 -3
- package/dist/daemon-http.js +6 -0
- package/dist/daemon-lifecycle.js +19 -196
- package/dist/github.js +7 -2
- package/dist/http.js +7 -5
- package/dist/mihomo-config.js +2 -1
- package/dist/paths.js +5 -7
- package/dist/profile-model.js +87 -0
- package/dist/profile-service.js +250 -587
- package/dist/profiles.js +43 -171
- package/dist/runtime-lifecycle.js +112 -194
- package/dist/runtime-owner.js +37 -76
- package/dist/sash-client.js +40 -19
- package/dist/settings-service.js +29 -224
- package/dist/settings.js +61 -289
- package/dist/status.js +24 -16
- package/dist/supervisor.js +1 -14
- package/dist/sysproxy/common.js +5 -45
- package/dist/sysproxy/factory.js +24 -65
- package/dist/sysproxy/snapshot.js +24 -257
- package/dist/sysproxy.js +1 -4
- package/dist/system-proxy-manager.js +37 -35
- package/dist/ui/assets/{ConnectionsView-CfaOG2JV.js → ConnectionsView-BgXQM6Z4.js} +1 -1
- package/dist/ui/assets/{LogsView-BDiRATXN.js → LogsView-2f542P8z.js} +1 -1
- package/dist/ui/assets/{PaginationFooter-DTytr1iu.js → PaginationFooter-cj1tcZej.js} +1 -1
- package/dist/ui/assets/ProfileEditorDialog-C9M8uKZC.css +1 -0
- package/dist/ui/assets/ProfileEditorDialog-DD4y4GBC.js +14 -0
- package/dist/ui/assets/ProfilesView-BXU2DOA7.css +1 -0
- package/dist/ui/assets/ProfilesView-DNnzYIEY.js +7 -0
- package/dist/ui/assets/{RulesView-CjEyCN1A.js → RulesView-CtKvlckZ.js} +1 -1
- package/dist/ui/assets/SettingsView-BaeKFF_N.js +1 -0
- package/dist/ui/assets/SettingsView-CWjIe05v.css +1 -0
- package/dist/ui/assets/index-CBInDvdJ.js +19 -0
- package/dist/ui/assets/index-mOLy7fkB.css +1 -0
- package/dist/ui/assets/{theme-BwDBMsKO.js → theme-D40MF8cQ.js} +1 -1
- package/dist/ui/index.html +2 -2
- package/docs/architecture-proposal.md +109 -0
- package/docs/autostart.md +101 -0
- package/docs/backend.md +92 -224
- package/docs/frontend.md +60 -106
- package/docs/usage.md +92 -164
- package/package.json +3 -3
- package/dist/commands/upgrade.js +0 -43
- package/dist/core-install-transaction.js +0 -114
- package/dist/core-update-coordination.js +0 -105
- package/dist/core-update-service.js +0 -245
- package/dist/managed-state-transaction.js +0 -375
- package/dist/offline-mutation.js +0 -58
- package/dist/profile-migration.js +0 -101
- package/dist/runtime-recovery.js +0 -31
- package/dist/sysproxy/darwin.js +0 -287
- package/dist/sysproxy/gnome.js +0 -181
- package/dist/sysproxy/legacy.js +0 -58
- package/dist/ui/assets/CodeEditorModal-6m0TJWyF.css +0 -1
- package/dist/ui/assets/CodeEditorModal-D1zn-jRS.js +0 -14
- package/dist/ui/assets/ProfileEditorDialog-CyyP6OF1.js +0 -1
- package/dist/ui/assets/ProfilesView-ByqdFNHN.css +0 -1
- package/dist/ui/assets/ProfilesView-hFa7-O72.js +0 -2
- package/dist/ui/assets/SettingsFileDialog-CjBSyH4K.js +0 -1
- package/dist/ui/assets/SettingsView-D5QvJId6.css +0 -1
- package/dist/ui/assets/SettingsView-DsRntRfn.js +0 -2
- package/dist/ui/assets/index-CxQTf_P9.css +0 -1
- package/dist/ui/assets/index-_mb4OfYp.js +0 -19
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.rename-overlay[data-v-67fe66f9]{position:fixed;z-index:var(--z-rename);display:flex;align-items:center;justify-content:center;background:var(--bg-scrim);inset:0}.rename-dialog[data-v-67fe66f9]{width:min(360px,calc(100vw - 32px));padding:18px}.rename-title[data-v-67fe66f9]{margin:0 0 12px;font-size:16px}.rename-label[data-v-67fe66f9]{display:block;margin-bottom:6px;color:var(--text-secondary);font-size:14px}.rename-input[data-v-67fe66f9]{width:100%;margin-bottom:14px}.rename-actions[data-v-67fe66f9]{display:flex;gap:10px;justify-content:flex-end}.profiles-view[data-v-73a0732f]{min-height:100%}.dl-panel[data-v-73a0732f]{display:grid;min-height:80px;grid-template-columns:minmax(260px,1fr) auto;align-items:center;gap:8px;margin-bottom:15px;padding:12px 34px;background:var(--bg-app);border-bottom:1px solid var(--border)}.dl-input-wrap[data-v-73a0732f]{position:relative;min-width:0}.dl-input[data-v-73a0732f]{width:100%;min-height:46px;padding-right:42px;font-family:var(--font-mono);font-size:16px}.dl-paste[data-v-73a0732f]{position:absolute;top:50%;right:4px;width:31px;height:30px;transform:translateY(-50%)}.dl-actions[data-v-73a0732f]{display:flex;align-items:center;gap:7px}.dl-actions .btn[data-v-73a0732f]{min-height:46px;padding-inline:12px}.hidden-file[data-v-73a0732f]{display:none}.empty-panel[data-v-73a0732f]{margin:0 34px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md)}.profiles-grid[data-v-73a0732f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px 12px;padding:0 34px 44px}.profile-order-hint[data-v-73a0732f]{margin:0 34px 10px;color:var(--text-muted);font-size:12px}.profile-card[data-v-73a0732f]{position:relative;display:flex;min-width:0;min-height:72px;overflow:hidden;cursor:pointer;background:var(--bg-panel);border:1px solid transparent;border-radius:var(--radius-sm);transition:background var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}.profile-card[data-v-73a0732f]:before{position:absolute;inset:2px auto 2px 0;width:4px;border-radius:0 var(--radius-full) var(--radius-full) 0;content:"";background:var(--border-strong);pointer-events:none}.profile-card[data-v-73a0732f]:hover{background:var(--bg-hover);border-color:var(--border)}.profile-card.active[data-v-73a0732f]{cursor:default;background:var(--bg-panel);border-color:transparent}.profile-card.active[data-v-73a0732f]:before{background:var(--selection)}.profile-card.busy[data-v-73a0732f]{cursor:wait}.profile-card-main[data-v-73a0732f]{flex:1;min-width:0;padding:10px 8px 10px 15px;border-radius:var(--radius-sm);outline:none;user-select:none;-webkit-touch-callout:none}.profile-card-main[data-v-73a0732f]:focus-visible{box-shadow:inset 0 0 0 3px var(--accent-ring)}.profile-card.profile-chosen[data-v-73a0732f]{border-color:var(--accent);cursor:grabbing}.profile-card.profile-placeholder[data-v-73a0732f]{opacity:.35}.profile-card.profile-drag-ghost[data-v-73a0732f]{box-shadow:var(--shadow-pop);opacity:.95!important;pointer-events:none;cursor:grabbing}.profile-name-row[data-v-73a0732f]{display:flex;align-items:center;gap:8px;min-width:0;margin-right:140px}.profile-name[data-v-73a0732f]{overflow:hidden;color:var(--text-primary);font-size:16px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.profile-source[data-v-73a0732f]{margin-top:4px;overflow:hidden;color:var(--text-muted);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.profile-usage[data-v-73a0732f]{margin-top:7px}.usage-nums[data-v-73a0732f]{display:flex;justify-content:space-between;gap:10px;color:var(--text-secondary);font-size:14px}.usage-expire[data-v-73a0732f]{color:var(--text-muted)}.usage-bar[data-v-73a0732f]{height:4px;margin-top:6px;overflow:hidden;background:var(--border);border-radius:var(--radius-full)}.usage-fill[data-v-73a0732f]{height:100%;background:var(--selection);border-radius:var(--radius-full);transition:width var(--motion-normal) var(--ease-standard)}.usage-fill-hot[data-v-73a0732f]{background:var(--danger)}.profile-error[data-v-73a0732f]{display:flex;align-items:center;gap:6px;min-width:0;margin-top:10px;color:var(--danger);font-size:14px}.profile-error-text[data-v-73a0732f]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-actions[data-v-73a0732f]{position:absolute;top:8px;right:8px;display:flex;flex-shrink:0;gap:3px}.profile-actions .icon-btn[data-v-73a0732f]{width:31px;height:31px}.danger-hover[data-v-73a0732f]:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.spin[data-v-73a0732f]{animation:rotate .9s linear infinite}@media(max-width:820px){.dl-panel[data-v-73a0732f]{grid-template-columns:1fr;padding-right:16px;padding-left:16px}.profiles-grid[data-v-73a0732f]{padding-right:16px;padding-left:16px}.empty-panel[data-v-73a0732f],.profile-order-hint[data-v-73a0732f]{margin-right:16px;margin-left:16px}.dl-actions[data-v-73a0732f]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.dl-actions .btn[data-v-73a0732f]{min-width:0}}@media(max-width:760px){.profiles-grid[data-v-73a0732f]{grid-template-columns:1fr}.profile-name-row[data-v-73a0732f]{margin-right:172px}.profile-actions .icon-btn[data-v-73a0732f]{width:40px;height:40px}}@media(max-width:480px){.dl-panel[data-v-73a0732f]{gap:8px;padding:10px}.dl-actions[data-v-73a0732f]{grid-template-columns:repeat(2,minmax(0,1fr))}.dl-action-primary[data-v-73a0732f]{grid-column:1 / -1}.dl-actions .btn[data-v-73a0732f],.dl-input[data-v-73a0732f]{min-height:44px}.dl-paste[data-v-73a0732f]{width:38px;height:38px}.profile-card-main[data-v-73a0732f]{padding:14px 8px 14px 15px}.profile-name-row[data-v-73a0732f]{margin-right:164px}.usage-nums[data-v-73a0732f]{flex-direction:column;gap:2px}.profile-actions .icon-btn[data-v-73a0732f]{width:38px;height:38px}}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ProfileEditorDialog-DD4y4GBC.js","./index-CBInDvdJ.js","./index-mOLy7fkB.css","./theme-D40MF8cQ.js","./ProfileEditorDialog-C9M8uKZC.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{d as Yt,K as an,L as ln,C as Dt,M as sn,N as un,O as dn,o as Z,m as vt,T as cn,a as ie,b as fn,e as A,Q as be,g as K,u as v,t as m,f as Lt,R as Ve,v as zt,S as pn,p as j,U as hn,y as Y,z as ye,_ as Ht,w as lt,D as mn,q as Ae,V as gn,J as vn,W as bn,c as le,I as fe,n as We,E as yn,i as pe,F as wn,r as _n,s as he,h as At,X as En,Y as Dn,Z as Sn,$ as Cn,k as Tn,l as In,a0 as Pn,a1 as On,a2 as An,a3 as xn,A as kn,a4 as Nn,a5 as Mn}from"./index-CBInDvdJ.js";const Fn=["disabled","onKeydown"],Rn={class:"rename-actions"},$n=["disabled"],Bn=["disabled"],Xn=Yt({__name:"ProfileRenameDialog",props:{profile:{}},emits:["close"],setup(o,{emit:e}){const t=o,n=e,i=an(),r=`${i}-title`,a=`${i}-input`,l=j(null),s=j(null),u=t.profile.name,f=j(u),c=j(!1),{open:w,close:D}=ln({container:l,initialFocus:()=>(s.value?.select(),s.value),onEscape:()=>n("close")});Dt(()=>{sn(),w()}),un(()=>{D(),dn()});async function E(){const S=f.value.trim();if(!(!S||S===u||c.value)){c.value=!0;try{await hn(t.profile.id,S),Y.success(m("toast.settingSaved")),n("close")}catch(k){Y.error(m("toast.failed",{msg:ye(k)}))}finally{c.value=!1}}}return(S,k)=>(Z(),vt(cn,{to:"body"},[ie(pn,{name:"fade",appear:""},{default:fn(()=>[A("div",{class:"rename-overlay",onClick:k[2]||(k[2]=be(z=>n("close"),["self"]))},[A("div",{ref_key:"dialogElement",ref:l,class:"rename-dialog card",role:"dialog","aria-modal":"true","aria-labelledby":r},[A("h3",{id:r,class:"rename-title"},K(v(m)("profiles.renameTitle")),1),A("label",{class:"rename-label",for:a},K(v(m)("profiles.nameLabel")),1),Lt(A("input",{id:a,ref_key:"inputElement",ref:s,"onUpdate:modelValue":k[0]||(k[0]=z=>f.value=z),class:"input rename-input",type:"text",maxlength:"120",disabled:c.value,onKeydown:Ve(be(E,["prevent"]),["enter"])},null,40,Fn),[[zt,f.value]]),A("div",Rn,[A("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:c.value,onClick:k[1]||(k[1]=z=>n("close"))},K(v(m)("common.cancel")),9,$n),A("button",{type:"button",class:"btn btn-primary btn-sm",disabled:c.value||!f.value.trim()||f.value.trim()===v(u),onClick:E},K(v(m)("common.save")),9,Bn)])],512)])]),_:1})]))}}),Yn=Ht(Xn,[["__scopeId","data-v-67fe66f9"]]);/**!
|
|
3
|
+
* Sortable 1.15.7
|
|
4
|
+
* @author RubaXa <trash@rubaxa.org>
|
|
5
|
+
* @author owenm <owen23355@gmail.com>
|
|
6
|
+
* @license MIT
|
|
7
|
+
*/function Ln(o,e,t){return(e=jn(e))in o?Object.defineProperty(o,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):o[e]=t,o}function ge(){return ge=Object.assign?Object.assign.bind():function(o){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)({}).hasOwnProperty.call(t,n)&&(o[n]=t[n])}return o},ge.apply(null,arguments)}function xt(o,e){var t=Object.keys(o);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(o);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(o,i).enumerable})),t.push.apply(t,n)}return t}function ue(o){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?xt(Object(t),!0).forEach(function(n){Ln(o,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(t)):xt(Object(t)).forEach(function(n){Object.defineProperty(o,n,Object.getOwnPropertyDescriptor(t,n))})}return o}function zn(o,e){if(o==null)return{};var t,n,i=Hn(o,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(o);for(n=0;n<r.length;n++)t=r[n],e.indexOf(t)===-1&&{}.propertyIsEnumerable.call(o,t)&&(i[t]=o[t])}return i}function Hn(o,e){if(o==null)return{};var t={};for(var n in o)if({}.hasOwnProperty.call(o,n)){if(e.indexOf(n)!==-1)continue;t[n]=o[n]}return t}function Wn(o,e){if(typeof o!="object"||!o)return o;var t=o[Symbol.toPrimitive];if(t!==void 0){var n=t.call(o,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(o)}function jn(o){var e=Wn(o,"string");return typeof e=="symbol"?e:e+""}function bt(o){"@babel/helpers - typeof";return bt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},bt(o)}var Gn="1.15.7";function me(o){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(o)}var ve=me(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),ze=me(/Edge/i),kt=me(/firefox/i),$e=me(/safari/i)&&!me(/chrome/i)&&!me(/android/i),St=me(/iP(ad|od|hone)/i),Wt=me(/chrome/i)&&me(/android/i),jt={capture:!1,passive:!1};function P(o,e,t){o.addEventListener(e,t,!ve&&jt)}function I(o,e,t){o.removeEventListener(e,t,!ve&&jt)}function et(o,e){if(e){if(e[0]===">"&&(e=e.substring(1)),o)try{if(o.matches)return o.matches(e);if(o.msMatchesSelector)return o.msMatchesSelector(e);if(o.webkitMatchesSelector)return o.webkitMatchesSelector(e)}catch{return!1}return!1}}function Gt(o){return o.host&&o!==document&&o.host.nodeType&&o.host!==o?o.host:o.parentNode}function re(o,e,t,n){if(o){t=t||document;do{if(e!=null&&(e[0]===">"?o.parentNode===t&&et(o,e):et(o,e))||n&&o===t)return o;if(o===t)break}while(o=Gt(o))}return null}var Nt=/\s+/g;function Q(o,e,t){if(o&&e)if(o.classList)o.classList[t?"add":"remove"](e);else{var n=(" "+o.className+" ").replace(Nt," ").replace(" "+e+" "," ");o.className=(n+(t?" "+e:"")).replace(Nt," ")}}function b(o,e,t){var n=o&&o.style;if(n){if(t===void 0)return document.defaultView&&document.defaultView.getComputedStyle?t=document.defaultView.getComputedStyle(o,""):o.currentStyle&&(t=o.currentStyle),e===void 0?t:t[e];!(e in n)&&e.indexOf("webkit")===-1&&(e="-webkit-"+e),n[e]=t+(typeof t=="string"?"":"px")}}function ke(o,e){var t="";if(typeof o=="string")t=o;else do{var n=b(o,"transform");n&&n!=="none"&&(t=n+" "+t)}while(!e&&(o=o.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(t)}function Ut(o,e,t){if(o){var n=o.getElementsByTagName(e),i=0,r=n.length;if(t)for(;i<r;i++)t(n[i],i);return n}return[]}function se(){var o=document.scrollingElement;return o||document.documentElement}function B(o,e,t,n,i){if(!(!o.getBoundingClientRect&&o!==window)){var r,a,l,s,u,f,c;if(o!==window&&o.parentNode&&o!==se()?(r=o.getBoundingClientRect(),a=r.top,l=r.left,s=r.bottom,u=r.right,f=r.height,c=r.width):(a=0,l=0,s=window.innerHeight,u=window.innerWidth,f=window.innerHeight,c=window.innerWidth),(e||t)&&o!==window&&(i=i||o.parentNode,!ve))do if(i&&i.getBoundingClientRect&&(b(i,"transform")!=="none"||t&&b(i,"position")!=="static")){var w=i.getBoundingClientRect();a-=w.top+parseInt(b(i,"border-top-width")),l-=w.left+parseInt(b(i,"border-left-width")),s=a+r.height,u=l+r.width;break}while(i=i.parentNode);if(n&&o!==window){var D=ke(i||o),E=D&&D.a,S=D&&D.d;D&&(a/=S,l/=E,c/=E,f/=S,s=a+f,u=l+c)}return{top:a,left:l,bottom:s,right:u,width:c,height:f}}}function Mt(o,e,t){for(var n=Ee(o,!0),i=B(o)[e];n;){var r=B(n)[t],a=void 0;if(a=i>=r,!a)return n;if(n===se())break;n=Ee(n,!1)}return!1}function Ne(o,e,t,n){for(var i=0,r=0,a=o.children;r<a.length;){if(a[r].style.display!=="none"&&a[r]!==h.ghost&&(n||a[r]!==h.dragged)&&re(a[r],t.draggable,o,!1)){if(i===e)return a[r];i++}r++}return null}function Ct(o,e){for(var t=o.lastElementChild;t&&(t===h.ghost||b(t,"display")==="none"||e&&!et(t,e));)t=t.previousElementSibling;return t||null}function ee(o,e){var t=0;if(!o||!o.parentNode)return-1;for(;o=o.previousElementSibling;)o.nodeName.toUpperCase()!=="TEMPLATE"&&o!==h.clone&&(!e||et(o,e))&&t++;return t}function Ft(o){var e=0,t=0,n=se();if(o)do{var i=ke(o),r=i.a,a=i.d;e+=o.scrollLeft*r,t+=o.scrollTop*a}while(o!==n&&(o=o.parentNode));return[e,t]}function Un(o,e){for(var t in o)if(o.hasOwnProperty(t)){for(var n in e)if(e.hasOwnProperty(n)&&e[n]===o[t][n])return Number(t)}return-1}function Ee(o,e){if(!o||!o.getBoundingClientRect)return se();var t=o,n=!1;do if(t.clientWidth<t.scrollWidth||t.clientHeight<t.scrollHeight){var i=b(t);if(t.clientWidth<t.scrollWidth&&(i.overflowX=="auto"||i.overflowX=="scroll")||t.clientHeight<t.scrollHeight&&(i.overflowY=="auto"||i.overflowY=="scroll")){if(!t.getBoundingClientRect||t===document.body)return se();if(n||e)return t;n=!0}}while(t=t.parentNode);return se()}function Kn(o,e){if(o&&e)for(var t in e)e.hasOwnProperty(t)&&(o[t]=e[t]);return o}function st(o,e){return Math.round(o.top)===Math.round(e.top)&&Math.round(o.left)===Math.round(e.left)&&Math.round(o.height)===Math.round(e.height)&&Math.round(o.width)===Math.round(e.width)}var Be;function Kt(o,e){return function(){if(!Be){var t=arguments,n=this;t.length===1?o.call(n,t[0]):o.apply(n,t),Be=setTimeout(function(){Be=void 0},e)}}}function Vn(){clearTimeout(Be),Be=void 0}function Vt(o,e,t){o.scrollLeft+=e,o.scrollTop+=t}function qt(o){var e=window.Polymer,t=window.jQuery||window.Zepto;return e&&e.dom?e.dom(o).cloneNode(!0):t?t(o).clone(!0)[0]:o.cloneNode(!0)}function Zt(o,e,t){var n={};return Array.from(o.children).forEach(function(i){var r,a,l,s;if(!(!re(i,e.draggable,o,!1)||i.animated||i===t)){var u=B(i);n.left=Math.min((r=n.left)!==null&&r!==void 0?r:1/0,u.left),n.top=Math.min((a=n.top)!==null&&a!==void 0?a:1/0,u.top),n.right=Math.max((l=n.right)!==null&&l!==void 0?l:-1/0,u.right),n.bottom=Math.max((s=n.bottom)!==null&&s!==void 0?s:-1/0,u.bottom)}}),n.width=n.right-n.left,n.height=n.bottom-n.top,n.x=n.left,n.y=n.top,n}var q="Sortable"+new Date().getTime();function qn(){var o=[],e;return{captureAnimationState:function(){if(o=[],!!this.options.animation){var n=[].slice.call(this.el.children);n.forEach(function(i){if(!(b(i,"display")==="none"||i===h.ghost)){o.push({target:i,rect:B(i)});var r=ue({},o[o.length-1].rect);if(i.thisAnimationDuration){var a=ke(i,!0);a&&(r.top-=a.f,r.left-=a.e)}i.fromRect=r}})}},addAnimationState:function(n){o.push(n)},removeAnimationState:function(n){o.splice(Un(o,{target:n}),1)},animateAll:function(n){var i=this;if(!this.options.animation){clearTimeout(e),typeof n=="function"&&n();return}var r=!1,a=0;o.forEach(function(l){var s=0,u=l.target,f=u.fromRect,c=B(u),w=u.prevFromRect,D=u.prevToRect,E=l.rect,S=ke(u,!0);S&&(c.top-=S.f,c.left-=S.e),u.toRect=c,u.thisAnimationDuration&&st(w,c)&&!st(f,c)&&(E.top-c.top)/(E.left-c.left)===(f.top-c.top)/(f.left-c.left)&&(s=Qn(E,w,D,i.options)),st(c,f)||(u.prevFromRect=f,u.prevToRect=c,s||(s=i.options.animation),i.animate(u,E,c,s)),s&&(r=!0,a=Math.max(a,s),clearTimeout(u.animationResetTimer),u.animationResetTimer=setTimeout(function(){u.animationTime=0,u.prevFromRect=null,u.fromRect=null,u.prevToRect=null,u.thisAnimationDuration=null},s),u.thisAnimationDuration=s)}),clearTimeout(e),r?e=setTimeout(function(){typeof n=="function"&&n()},a):typeof n=="function"&&n(),o=[]},animate:function(n,i,r,a){if(a){b(n,"transition",""),b(n,"transform","");var l=ke(this.el),s=l&&l.a,u=l&&l.d,f=(i.left-r.left)/(s||1),c=(i.top-r.top)/(u||1);n.animatingX=!!f,n.animatingY=!!c,b(n,"transform","translate3d("+f+"px,"+c+"px,0)"),this.forRepaintDummy=Zn(n),b(n,"transition","transform "+a+"ms"+(this.options.easing?" "+this.options.easing:"")),b(n,"transform","translate3d(0,0,0)"),typeof n.animated=="number"&&clearTimeout(n.animated),n.animated=setTimeout(function(){b(n,"transition",""),b(n,"transform",""),n.animated=!1,n.animatingX=!1,n.animatingY=!1},a)}}}}function Zn(o){return o.offsetWidth}function Qn(o,e,t,n){return Math.sqrt(Math.pow(e.top-o.top,2)+Math.pow(e.left-o.left,2))/Math.sqrt(Math.pow(e.top-t.top,2)+Math.pow(e.left-t.left,2))*n.animation}var Ie=[],ut={initializeByDefault:!0},He={mount:function(e){for(var t in ut)ut.hasOwnProperty(t)&&!(t in e)&&(e[t]=ut[t]);Ie.forEach(function(n){if(n.pluginName===e.pluginName)throw"Sortable: Cannot mount plugin ".concat(e.pluginName," more than once")}),Ie.push(e)},pluginEvent:function(e,t,n){var i=this;this.eventCanceled=!1,n.cancel=function(){i.eventCanceled=!0};var r=e+"Global";Ie.forEach(function(a){t[a.pluginName]&&(t[a.pluginName][r]&&t[a.pluginName][r](ue({sortable:t},n)),t.options[a.pluginName]&&t[a.pluginName][e]&&t[a.pluginName][e](ue({sortable:t},n)))})},initializePlugins:function(e,t,n,i){Ie.forEach(function(l){var s=l.pluginName;if(!(!e.options[s]&&!l.initializeByDefault)){var u=new l(e,t,e.options);u.sortable=e,u.options=e.options,e[s]=u,ge(n,u.defaults)}});for(var r in e.options)if(e.options.hasOwnProperty(r)){var a=this.modifyOption(e,r,e.options[r]);typeof a<"u"&&(e.options[r]=a)}},getEventProperties:function(e,t){var n={};return Ie.forEach(function(i){typeof i.eventProperties=="function"&&ge(n,i.eventProperties.call(t[i.pluginName],e))}),n},modifyOption:function(e,t,n){var i;return Ie.forEach(function(r){e[r.pluginName]&&r.optionListeners&&typeof r.optionListeners[t]=="function"&&(i=r.optionListeners[t].call(e[r.pluginName],n))}),i}};function Jn(o){var e=o.sortable,t=o.rootEl,n=o.name,i=o.targetEl,r=o.cloneEl,a=o.toEl,l=o.fromEl,s=o.oldIndex,u=o.newIndex,f=o.oldDraggableIndex,c=o.newDraggableIndex,w=o.originalEvent,D=o.putSortable,E=o.extraEventProperties;if(e=e||t&&t[q],!!e){var S,k=e.options,z="on"+n.charAt(0).toUpperCase()+n.substr(1);window.CustomEvent&&!ve&&!ze?S=new CustomEvent(n,{bubbles:!0,cancelable:!0}):(S=document.createEvent("Event"),S.initEvent(n,!0,!0)),S.to=a||t,S.from=l||t,S.item=i||t,S.clone=r,S.oldIndex=s,S.newIndex=u,S.oldDraggableIndex=f,S.newDraggableIndex=c,S.originalEvent=w,S.pullMode=D?D.lastPutMode:void 0;var O=ue(ue({},E),He.getEventProperties(n,e));for(var C in O)S[C]=O[C];t&&t.dispatchEvent(S),k[z]&&k[z].call(e,S)}}var eo=["evt"],V=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=n.evt,r=zn(n,eo);He.pluginEvent.bind(h)(e,t,ue({dragEl:d,parentEl:R,ghostEl:y,rootEl:M,nextEl:Te,lastDownEl:qe,cloneEl:F,cloneHidden:_e,dragStarted:Me,putSortable:H,activeSortable:h.active,originalEvent:i,oldIndex:xe,oldDraggableIndex:Xe,newIndex:J,newDraggableIndex:we,hideGhostForTarget:tn,unhideGhostForTarget:nn,cloneNowHidden:function(){_e=!0},cloneNowShown:function(){_e=!1},dispatchSortableEvent:function(l){U({sortable:t,name:l,originalEvent:i})}},r))};function U(o){Jn(ue({putSortable:H,cloneEl:F,targetEl:d,rootEl:M,oldIndex:xe,oldDraggableIndex:Xe,newIndex:J,newDraggableIndex:we},o))}var d,R,y,M,Te,qe,F,_e,xe,J,Xe,we,je,H,Oe=!1,tt=!1,nt=[],Se,oe,dt,ct,Rt,$t,Me,Pe,Ye,Le=!1,Ge=!1,Ze,W,ft=[],yt=!1,ot=[],rt=typeof document<"u",Ue=St,Bt=ze||ve?"cssFloat":"float",to=rt&&!Wt&&!St&&"draggable"in document.createElement("div"),Qt=(function(){if(rt){if(ve)return!1;var o=document.createElement("x");return o.style.cssText="pointer-events:auto",o.style.pointerEvents==="auto"}})(),Jt=function(e,t){var n=b(e),i=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),r=Ne(e,0,t),a=Ne(e,1,t),l=r&&b(r),s=a&&b(a),u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+B(r).width,f=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+B(a).width;if(n.display==="flex")return n.flexDirection==="column"||n.flexDirection==="column-reverse"?"vertical":"horizontal";if(n.display==="grid")return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(r&&l.float&&l.float!=="none"){var c=l.float==="left"?"left":"right";return a&&(s.clear==="both"||s.clear===c)?"vertical":"horizontal"}return r&&(l.display==="block"||l.display==="flex"||l.display==="table"||l.display==="grid"||u>=i&&n[Bt]==="none"||a&&n[Bt]==="none"&&u+f>i)?"vertical":"horizontal"},no=function(e,t,n){var i=n?e.left:e.top,r=n?e.right:e.bottom,a=n?e.width:e.height,l=n?t.left:t.top,s=n?t.right:t.bottom,u=n?t.width:t.height;return i===l||r===s||i+a/2===l+u/2},oo=function(e,t){var n;return nt.some(function(i){var r=i[q].options.emptyInsertThreshold;if(!(!r||Ct(i))){var a=B(i),l=e>=a.left-r&&e<=a.right+r,s=t>=a.top-r&&t<=a.bottom+r;if(l&&s)return n=i}}),n},en=function(e){function t(r,a){return function(l,s,u,f){var c=l.options.group.name&&s.options.group.name&&l.options.group.name===s.options.group.name;if(r==null&&(a||c))return!0;if(r==null||r===!1)return!1;if(a&&r==="clone")return r;if(typeof r=="function")return t(r(l,s,u,f),a)(l,s,u,f);var w=(a?l:s).options.group.name;return r===!0||typeof r=="string"&&r===w||r.join&&r.indexOf(w)>-1}}var n={},i=e.group;(!i||bt(i)!="object")&&(i={name:i}),n.name=i.name,n.checkPull=t(i.pull,!0),n.checkPut=t(i.put),n.revertClone=i.revertClone,e.group=n},tn=function(){!Qt&&y&&b(y,"display","none")},nn=function(){!Qt&&y&&b(y,"display","")};rt&&!Wt&&document.addEventListener("click",function(o){if(tt)return o.preventDefault(),o.stopPropagation&&o.stopPropagation(),o.stopImmediatePropagation&&o.stopImmediatePropagation(),tt=!1,!1},!0);var Ce=function(e){if(d){e=e.touches?e.touches[0]:e;var t=oo(e.clientX,e.clientY);if(t){var n={};for(var i in e)e.hasOwnProperty(i)&&(n[i]=e[i]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[q]._onDragOver(n)}}},io=function(e){d&&d.parentNode[q]._isOutsideThisEl(e.target)};function h(o,e){if(!(o&&o.nodeType&&o.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(o));this.el=o,this.options=e=ge({},e),o[q]=this;var t={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(o.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Jt(o,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(a,l){a.setData("Text",l.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:h.supportPointer!==!1&&"PointerEvent"in window&&(!$e||St),emptyInsertThreshold:5};He.initializePlugins(this,o,t);for(var n in t)!(n in e)&&(e[n]=t[n]);en(e);for(var i in this)i.charAt(0)==="_"&&typeof this[i]=="function"&&(this[i]=this[i].bind(this));this.nativeDraggable=e.forceFallback?!1:to,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?P(o,"pointerdown",this._onTapStart):(P(o,"mousedown",this._onTapStart),P(o,"touchstart",this._onTapStart)),this.nativeDraggable&&(P(o,"dragover",this),P(o,"dragenter",this)),nt.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),ge(this,qn())}h.prototype={constructor:h,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(Pe=null)},_getDirection:function(e,t){return typeof this.options.direction=="function"?this.options.direction.call(this,e,t,d):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,i=this.options,r=i.preventOnFilter,a=e.type,l=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,s=(l||e).target,u=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,f=i.filter;if(po(n),!d&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||i.disabled)&&!u.isContentEditable&&!(!this.nativeDraggable&&$e&&s&&s.tagName.toUpperCase()==="SELECT")&&(s=re(s,i.draggable,n,!1),!(s&&s.animated)&&qe!==s)){if(xe=ee(s),Xe=ee(s,i.draggable),typeof f=="function"){if(f.call(this,e,s,this)){U({sortable:t,rootEl:u,name:"filter",targetEl:s,toEl:n,fromEl:n}),V("filter",t,{evt:e}),r&&e.preventDefault();return}}else if(f&&(f=f.split(",").some(function(c){if(c=re(u,c.trim(),n,!1),c)return U({sortable:t,rootEl:c,name:"filter",targetEl:s,fromEl:n,toEl:n}),V("filter",t,{evt:e}),!0}),f)){r&&e.preventDefault();return}i.handle&&!re(u,i.handle,n,!1)||this._prepareDragStart(e,l,s)}}},_prepareDragStart:function(e,t,n){var i=this,r=i.el,a=i.options,l=r.ownerDocument,s;if(n&&!d&&n.parentNode===r){var u=B(n);if(M=r,d=n,R=d.parentNode,Te=d.nextSibling,qe=n,je=a.group,h.dragged=d,Se={target:d,clientX:(t||e).clientX,clientY:(t||e).clientY},Rt=Se.clientX-u.left,$t=Se.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,d.style["will-change"]="all",s=function(){if(V("delayEnded",i,{evt:e}),h.eventCanceled){i._onDrop();return}i._disableDelayedDragEvents(),!kt&&i.nativeDraggable&&(d.draggable=!0),i._triggerDragStart(e,t),U({sortable:i,name:"choose",originalEvent:e}),Q(d,a.chosenClass,!0)},a.ignore.split(",").forEach(function(f){Ut(d,f.trim(),pt)}),P(l,"dragover",Ce),P(l,"mousemove",Ce),P(l,"touchmove",Ce),a.supportPointer?(P(l,"pointerup",i._onDrop),!this.nativeDraggable&&P(l,"pointercancel",i._onDrop)):(P(l,"mouseup",i._onDrop),P(l,"touchend",i._onDrop),P(l,"touchcancel",i._onDrop)),kt&&this.nativeDraggable&&(this.options.touchStartThreshold=4,d.draggable=!0),V("delayStart",this,{evt:e}),a.delay&&(!a.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(ze||ve))){if(h.eventCanceled){this._onDrop();return}a.supportPointer?(P(l,"pointerup",i._disableDelayedDrag),P(l,"pointercancel",i._disableDelayedDrag)):(P(l,"mouseup",i._disableDelayedDrag),P(l,"touchend",i._disableDelayedDrag),P(l,"touchcancel",i._disableDelayedDrag)),P(l,"mousemove",i._delayedDragTouchMoveHandler),P(l,"touchmove",i._delayedDragTouchMoveHandler),a.supportPointer&&P(l,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(s,a.delay)}else s()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){d&&pt(d),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;I(e,"mouseup",this._disableDelayedDrag),I(e,"touchend",this._disableDelayedDrag),I(e,"touchcancel",this._disableDelayedDrag),I(e,"pointerup",this._disableDelayedDrag),I(e,"pointercancel",this._disableDelayedDrag),I(e,"mousemove",this._delayedDragTouchMoveHandler),I(e,"touchmove",this._delayedDragTouchMoveHandler),I(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||e.pointerType=="touch"&&e,!this.nativeDraggable||t?this.options.supportPointer?P(document,"pointermove",this._onTouchMove):t?P(document,"touchmove",this._onTouchMove):P(document,"mousemove",this._onTouchMove):(P(d,"dragend",this),P(M,"dragstart",this._onDragStart));try{document.selection?Qe(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(Oe=!1,M&&d){V("dragStarted",this,{evt:t}),this.nativeDraggable&&P(document,"dragover",io);var n=this.options;!e&&Q(d,n.dragClass,!1),Q(d,n.ghostClass,!0),h.active=this,e&&this._appendGhost(),U({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(oe){this._lastX=oe.clientX,this._lastY=oe.clientY,tn();for(var e=document.elementFromPoint(oe.clientX,oe.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(oe.clientX,oe.clientY),e!==t);)t=e;if(d.parentNode[q]._isOutsideThisEl(e),t)do{if(t[q]){var n=void 0;if(n=t[q]._onDragOver({clientX:oe.clientX,clientY:oe.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=Gt(t));nn()}},_onTouchMove:function(e){if(Se){var t=this.options,n=t.fallbackTolerance,i=t.fallbackOffset,r=e.touches?e.touches[0]:e,a=y&&ke(y,!0),l=y&&a&&a.a,s=y&&a&&a.d,u=Ue&&W&&Ft(W),f=(r.clientX-Se.clientX+i.x)/(l||1)+(u?u[0]-ft[0]:0)/(l||1),c=(r.clientY-Se.clientY+i.y)/(s||1)+(u?u[1]-ft[1]:0)/(s||1);if(!h.active&&!Oe){if(n&&Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(y){a?(a.e+=f-(dt||0),a.f+=c-(ct||0)):a={a:1,b:0,c:0,d:1,e:f,f:c};var w="matrix(".concat(a.a,",").concat(a.b,",").concat(a.c,",").concat(a.d,",").concat(a.e,",").concat(a.f,")");b(y,"webkitTransform",w),b(y,"mozTransform",w),b(y,"msTransform",w),b(y,"transform",w),dt=f,ct=c,oe=r}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!y){var e=this.options.fallbackOnBody?document.body:M,t=B(d,!0,Ue,!0,e),n=this.options;if(Ue){for(W=e;b(W,"position")==="static"&&b(W,"transform")==="none"&&W!==document;)W=W.parentNode;W!==document.body&&W!==document.documentElement?(W===document&&(W=se()),t.top+=W.scrollTop,t.left+=W.scrollLeft):W=se(),ft=Ft(W)}y=d.cloneNode(!0),Q(y,n.ghostClass,!1),Q(y,n.fallbackClass,!0),Q(y,n.dragClass,!0),b(y,"transition",""),b(y,"transform",""),b(y,"box-sizing","border-box"),b(y,"margin",0),b(y,"top",t.top),b(y,"left",t.left),b(y,"width",t.width),b(y,"height",t.height),b(y,"opacity","0.8"),b(y,"position",Ue?"absolute":"fixed"),b(y,"zIndex","100000"),b(y,"pointerEvents","none"),h.ghost=y,e.appendChild(y),b(y,"transform-origin",Rt/parseInt(y.style.width)*100+"% "+$t/parseInt(y.style.height)*100+"%")}},_onDragStart:function(e,t){var n=this,i=e.dataTransfer,r=n.options;if(V("dragStart",this,{evt:e}),h.eventCanceled){this._onDrop();return}V("setupClone",this),h.eventCanceled||(F=qt(d),F.removeAttribute("id"),F.draggable=!1,F.style["will-change"]="",this._hideClone(),Q(F,this.options.chosenClass,!1),h.clone=F),n.cloneId=Qe(function(){V("clone",n),!h.eventCanceled&&(n.options.removeCloneOnHide||M.insertBefore(F,d),n._hideClone(),U({sortable:n,name:"clone"}))}),!t&&Q(d,r.dragClass,!0),t?(tt=!0,n._loopId=setInterval(n._emulateDragOver,50)):(I(document,"mouseup",n._onDrop),I(document,"touchend",n._onDrop),I(document,"touchcancel",n._onDrop),i&&(i.effectAllowed="move",r.setData&&r.setData.call(n,i,d)),P(document,"drop",n),b(d,"transform","translateZ(0)")),Oe=!0,n._dragStartId=Qe(n._dragStarted.bind(n,t,e)),P(document,"selectstart",n),Me=!0,window.getSelection().removeAllRanges(),$e&&b(document.body,"user-select","none")},_onDragOver:function(e){var t=this.el,n=e.target,i,r,a,l=this.options,s=l.group,u=h.active,f=je===s,c=l.sort,w=H||u,D,E=this,S=!1;if(yt)return;function k(L,at){V(L,E,ue({evt:e,isOwner:f,axis:D?"vertical":"horizontal",revert:a,dragRect:i,targetRect:r,canSort:c,fromSortable:w,target:n,completed:O,onMove:function(Ot,rn){return Ke(M,t,d,i,Ot,B(Ot),e,rn)},changed:C},at))}function z(){k("dragOverAnimationCapture"),E.captureAnimationState(),E!==w&&w.captureAnimationState()}function O(L){return k("dragOverCompleted",{insertion:L}),L&&(f?u._hideClone():u._showClone(E),E!==w&&(Q(d,H?H.options.ghostClass:u.options.ghostClass,!1),Q(d,l.ghostClass,!0)),H!==E&&E!==h.active?H=E:E===h.active&&H&&(H=null),w===E&&(E._ignoreWhileAnimating=n),E.animateAll(function(){k("dragOverAnimationComplete"),E._ignoreWhileAnimating=null}),E!==w&&(w.animateAll(),w._ignoreWhileAnimating=null)),(n===d&&!d.animated||n===t&&!n.animated)&&(Pe=null),!l.dragoverBubble&&!e.rootEl&&n!==document&&(d.parentNode[q]._isOutsideThisEl(e.target),!L&&Ce(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),S=!0}function C(){J=ee(d),we=ee(d,l.draggable),U({sortable:E,name:"change",toEl:t,newIndex:J,newDraggableIndex:we,originalEvent:e})}if(e.preventDefault!==void 0&&e.cancelable&&e.preventDefault(),n=re(n,l.draggable,t,!0),k("dragOver"),h.eventCanceled)return S;if(d.contains(e.target)||n.animated&&n.animatingX&&n.animatingY||E._ignoreWhileAnimating===n)return O(!1);if(tt=!1,u&&!l.disabled&&(f?c||(a=R!==M):H===this||(this.lastPutMode=je.checkPull(this,u,d,e))&&s.checkPut(this,u,d,e))){if(D=this._getDirection(e,n)==="vertical",i=B(d),k("dragOverValid"),h.eventCanceled)return S;if(a)return R=M,z(),this._hideClone(),k("revert"),h.eventCanceled||(Te?M.insertBefore(d,Te):M.appendChild(d)),O(!0);var x=Ct(t,l.draggable);if(!x||so(e,D,this)&&!x.animated){if(x===d)return O(!1);if(x&&t===e.target&&(n=x),n&&(r=B(n)),Ke(M,t,d,i,n,r,e,!!n)!==!1)return z(),x&&x.nextSibling?t.insertBefore(d,x.nextSibling):t.appendChild(d),R=t,C(),O(!0)}else if(x&&lo(e,D,this)){var N=Ne(t,0,l,!0);if(N===d)return O(!1);if(n=N,r=B(n),Ke(M,t,d,i,n,r,e,!1)!==!1)return z(),t.insertBefore(d,N),R=t,C(),O(!0)}else if(n.parentNode===t){r=B(n);var T=0,X,te=d.parentNode!==t,G=!no(d.animated&&d.toRect||i,n.animated&&n.toRect||r,D),de=D?"top":"left",ae=Mt(n,"top","top")||Mt(d,"top","top"),De=ae?ae.scrollTop:void 0;Pe!==n&&(X=r[de],Le=!1,Ge=!G&&l.invertSwap||te),T=uo(e,n,r,D,G?1:l.swapThreshold,l.invertedSwapThreshold==null?l.swapThreshold:l.invertedSwapThreshold,Ge,Pe===n);var ne;if(T!==0){var ce=ee(d);do ce-=T,ne=R.children[ce];while(ne&&(b(ne,"display")==="none"||ne===y))}if(T===0||ne===n)return O(!1);Pe=n,Ye=T;var g=n.nextElementSibling,_=!1;_=T===1;var p=Ke(M,t,d,i,n,r,e,_);if(p!==!1)return(p===1||p===-1)&&(_=p===1),yt=!0,setTimeout(ao,30),z(),_&&!g?t.appendChild(d):n.parentNode.insertBefore(d,_?g:n),ae&&Vt(ae,0,De-ae.scrollTop),R=d.parentNode,X!==void 0&&!Ge&&(Ze=Math.abs(X-B(n)[de])),C(),O(!0)}if(t.contains(d))return O(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){I(document,"mousemove",this._onTouchMove),I(document,"touchmove",this._onTouchMove),I(document,"pointermove",this._onTouchMove),I(document,"dragover",Ce),I(document,"mousemove",Ce),I(document,"touchmove",Ce)},_offUpEvents:function(){var e=this.el.ownerDocument;I(e,"mouseup",this._onDrop),I(e,"touchend",this._onDrop),I(e,"pointerup",this._onDrop),I(e,"pointercancel",this._onDrop),I(e,"touchcancel",this._onDrop),I(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;if(J=ee(d),we=ee(d,n.draggable),V("drop",this,{evt:e}),R=d&&d.parentNode,J=ee(d),we=ee(d,n.draggable),h.eventCanceled){this._nulling();return}Oe=!1,Ge=!1,Le=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),wt(this.cloneId),wt(this._dragStartId),this.nativeDraggable&&(I(document,"drop",this),I(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),$e&&b(document.body,"user-select",""),b(d,"transform",""),e&&(Me&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),y&&y.parentNode&&y.parentNode.removeChild(y),(M===R||H&&H.lastPutMode!=="clone")&&F&&F.parentNode&&F.parentNode.removeChild(F),d&&(this.nativeDraggable&&I(d,"dragend",this),pt(d),d.style["will-change"]="",Me&&!Oe&&Q(d,H?H.options.ghostClass:this.options.ghostClass,!1),Q(d,this.options.chosenClass,!1),U({sortable:this,name:"unchoose",toEl:R,newIndex:null,newDraggableIndex:null,originalEvent:e}),M!==R?(J>=0&&(U({rootEl:R,name:"add",toEl:R,fromEl:M,originalEvent:e}),U({sortable:this,name:"remove",toEl:R,originalEvent:e}),U({rootEl:R,name:"sort",toEl:R,fromEl:M,originalEvent:e}),U({sortable:this,name:"sort",toEl:R,originalEvent:e})),H&&H.save()):J!==xe&&J>=0&&(U({sortable:this,name:"update",toEl:R,originalEvent:e}),U({sortable:this,name:"sort",toEl:R,originalEvent:e})),h.active&&((J==null||J===-1)&&(J=xe,we=Xe),U({sortable:this,name:"end",toEl:R,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){V("nulling",this),M=d=R=y=Te=F=qe=_e=Se=oe=Me=J=we=xe=Xe=Pe=Ye=H=je=h.dragged=h.ghost=h.clone=h.active=null;var e=this.el;ot.forEach(function(t){e.contains(t)&&(t.checked=!0)}),ot.length=dt=ct=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":d&&(this._onDragOver(e),ro(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],t,n=this.el.children,i=0,r=n.length,a=this.options;i<r;i++)t=n[i],re(t,a.draggable,this.el,!1)&&e.push(t.getAttribute(a.dataIdAttr)||fo(t));return e},sort:function(e,t){var n={},i=this.el;this.toArray().forEach(function(r,a){var l=i.children[a];re(l,this.options.draggable,i,!1)&&(n[r]=l)},this),t&&this.captureAnimationState(),e.forEach(function(r){n[r]&&(i.removeChild(n[r]),i.appendChild(n[r]))}),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return re(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var n=this.options;if(t===void 0)return n[e];var i=He.modifyOption(this,e,t);typeof i<"u"?n[e]=i:n[e]=t,e==="group"&&en(n)},destroy:function(){V("destroy",this);var e=this.el;e[q]=null,I(e,"mousedown",this._onTapStart),I(e,"touchstart",this._onTapStart),I(e,"pointerdown",this._onTapStart),this.nativeDraggable&&(I(e,"dragover",this),I(e,"dragenter",this)),Array.prototype.forEach.call(e.querySelectorAll("[draggable]"),function(t){t.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),nt.splice(nt.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!_e){if(V("hideClone",this),h.eventCanceled)return;b(F,"display","none"),this.options.removeCloneOnHide&&F.parentNode&&F.parentNode.removeChild(F),_e=!0}},_showClone:function(e){if(e.lastPutMode!=="clone"){this._hideClone();return}if(_e){if(V("showClone",this),h.eventCanceled)return;d.parentNode==M&&!this.options.group.revertClone?M.insertBefore(F,d):Te?M.insertBefore(F,Te):M.appendChild(F),this.options.group.revertClone&&this.animate(d,F),b(F,"display",""),_e=!1}}};function ro(o){o.dataTransfer&&(o.dataTransfer.dropEffect="move"),o.cancelable&&o.preventDefault()}function Ke(o,e,t,n,i,r,a,l){var s,u=o[q],f=u.options.onMove,c;return window.CustomEvent&&!ve&&!ze?s=new CustomEvent("move",{bubbles:!0,cancelable:!0}):(s=document.createEvent("Event"),s.initEvent("move",!0,!0)),s.to=e,s.from=o,s.dragged=t,s.draggedRect=n,s.related=i||e,s.relatedRect=r||B(e),s.willInsertAfter=l,s.originalEvent=a,o.dispatchEvent(s),f&&(c=f.call(u,s,a)),c}function pt(o){o.draggable=!1}function ao(){yt=!1}function lo(o,e,t){var n=B(Ne(t.el,0,t.options,!0)),i=Zt(t.el,t.options,y),r=10;return e?o.clientX<i.left-r||o.clientY<n.top&&o.clientX<n.right:o.clientY<i.top-r||o.clientY<n.bottom&&o.clientX<n.left}function so(o,e,t){var n=B(Ct(t.el,t.options.draggable)),i=Zt(t.el,t.options,y),r=10;return e?o.clientX>i.right+r||o.clientY>n.bottom&&o.clientX>n.left:o.clientY>i.bottom+r||o.clientX>n.right&&o.clientY>n.top}function uo(o,e,t,n,i,r,a,l){var s=n?o.clientY:o.clientX,u=n?t.height:t.width,f=n?t.top:t.left,c=n?t.bottom:t.right,w=!1;if(!a){if(l&&Ze<u*i){if(!Le&&(Ye===1?s>f+u*r/2:s<c-u*r/2)&&(Le=!0),Le)w=!0;else if(Ye===1?s<f+Ze:s>c-Ze)return-Ye}else if(s>f+u*(1-i)/2&&s<c-u*(1-i)/2)return co(e)}return w=w||a,w&&(s<f+u*r/2||s>c-u*r/2)?s>f+u/2?1:-1:0}function co(o){return ee(d)<ee(o)?1:-1}function fo(o){for(var e=o.tagName+o.className+o.src+o.href+o.textContent,t=e.length,n=0;t--;)n+=e.charCodeAt(t);return n.toString(36)}function po(o){ot.length=0;for(var e=o.getElementsByTagName("input"),t=e.length;t--;){var n=e[t];n.checked&&ot.push(n)}}function Qe(o){return setTimeout(o,0)}function wt(o){return clearTimeout(o)}rt&&P(document,"touchmove",function(o){(h.active||Oe)&&o.cancelable&&o.preventDefault()});h.utils={on:P,off:I,css:b,find:Ut,is:function(e,t){return!!re(e,t,e,!1)},extend:Kn,throttle:Kt,closest:re,toggleClass:Q,clone:qt,index:ee,nextTick:Qe,cancelNextTick:wt,detectDirection:Jt,getChild:Ne,expando:q};h.get=function(o){return o[q]};h.mount=function(){for(var o=arguments.length,e=new Array(o),t=0;t<o;t++)e[t]=arguments[t];e[0].constructor===Array&&(e=e[0]),e.forEach(function(n){if(!n.prototype||!n.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(n));n.utils&&(h.utils=ue(ue({},h.utils),n.utils)),He.mount(n)})};h.create=function(o,e){return new h(o,e)};h.version=Gn;var $=[],Fe,_t,Et=!1,ht,mt,it,Re;function ho(){function o(){this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0};for(var e in this)e.charAt(0)==="_"&&typeof this[e]=="function"&&(this[e]=this[e].bind(this))}return o.prototype={dragStarted:function(t){var n=t.originalEvent;this.sortable.nativeDraggable?P(document,"dragover",this._handleAutoScroll):this.options.supportPointer?P(document,"pointermove",this._handleFallbackAutoScroll):n.touches?P(document,"touchmove",this._handleFallbackAutoScroll):P(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(t){var n=t.originalEvent;!this.options.dragOverBubble&&!n.rootEl&&this._handleAutoScroll(n)},drop:function(){this.sortable.nativeDraggable?I(document,"dragover",this._handleAutoScroll):(I(document,"pointermove",this._handleFallbackAutoScroll),I(document,"touchmove",this._handleFallbackAutoScroll),I(document,"mousemove",this._handleFallbackAutoScroll)),Xt(),Je(),Vn()},nulling:function(){it=_t=Fe=Et=Re=ht=mt=null,$.length=0},_handleFallbackAutoScroll:function(t){this._handleAutoScroll(t,!0)},_handleAutoScroll:function(t,n){var i=this,r=(t.touches?t.touches[0]:t).clientX,a=(t.touches?t.touches[0]:t).clientY,l=document.elementFromPoint(r,a);if(it=t,n||this.options.forceAutoScrollFallback||ze||ve||$e){gt(t,this.options,l,n);var s=Ee(l,!0);Et&&(!Re||r!==ht||a!==mt)&&(Re&&Xt(),Re=setInterval(function(){var u=Ee(document.elementFromPoint(r,a),!0);u!==s&&(s=u,Je()),gt(t,i.options,u,n)},10),ht=r,mt=a)}else{if(!this.options.bubbleScroll||Ee(l,!0)===se()){Je();return}gt(t,this.options,Ee(l,!1),!1)}}},ge(o,{pluginName:"scroll",initializeByDefault:!0})}function Je(){$.forEach(function(o){clearInterval(o.pid)}),$=[]}function Xt(){clearInterval(Re)}var gt=Kt(function(o,e,t,n){if(e.scroll){var i=(o.touches?o.touches[0]:o).clientX,r=(o.touches?o.touches[0]:o).clientY,a=e.scrollSensitivity,l=e.scrollSpeed,s=se(),u=!1,f;_t!==t&&(_t=t,Je(),Fe=e.scroll,f=e.scrollFn,Fe===!0&&(Fe=Ee(t,!0)));var c=0,w=Fe;do{var D=w,E=B(D),S=E.top,k=E.bottom,z=E.left,O=E.right,C=E.width,x=E.height,N=void 0,T=void 0,X=D.scrollWidth,te=D.scrollHeight,G=b(D),de=D.scrollLeft,ae=D.scrollTop;D===s?(N=C<X&&(G.overflowX==="auto"||G.overflowX==="scroll"||G.overflowX==="visible"),T=x<te&&(G.overflowY==="auto"||G.overflowY==="scroll"||G.overflowY==="visible")):(N=C<X&&(G.overflowX==="auto"||G.overflowX==="scroll"),T=x<te&&(G.overflowY==="auto"||G.overflowY==="scroll"));var De=N&&(Math.abs(O-i)<=a&&de+C<X)-(Math.abs(z-i)<=a&&!!de),ne=T&&(Math.abs(k-r)<=a&&ae+x<te)-(Math.abs(S-r)<=a&&!!ae);if(!$[c])for(var ce=0;ce<=c;ce++)$[ce]||($[ce]={});($[c].vx!=De||$[c].vy!=ne||$[c].el!==D)&&($[c].el=D,$[c].vx=De,$[c].vy=ne,clearInterval($[c].pid),(De!=0||ne!=0)&&(u=!0,$[c].pid=setInterval(function(){n&&this.layer===0&&h.active._onTouchMove(it);var g=$[this.layer].vy?$[this.layer].vy*l:0,_=$[this.layer].vx?$[this.layer].vx*l:0;typeof f=="function"&&f.call(h.dragged.parentNode[q],_,g,o,it,$[this.layer].el)!=="continue"||Vt($[this.layer].el,_,g)}.bind({layer:c}),24))),c++}while(e.bubbleScroll&&w!==s&&(w=Ee(w,!1)));Et=u}},30),on=function(e){var t=e.originalEvent,n=e.putSortable,i=e.dragEl,r=e.activeSortable,a=e.dispatchSortableEvent,l=e.hideGhostForTarget,s=e.unhideGhostForTarget;if(t){var u=n||r;l();var f=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,c=document.elementFromPoint(f.clientX,f.clientY);s(),u&&!u.el.contains(c)&&(a("spill"),this.onSpill({dragEl:i,putSortable:n}))}};function Tt(){}Tt.prototype={startIndex:null,dragStart:function(e){var t=e.oldDraggableIndex;this.startIndex=t},onSpill:function(e){var t=e.dragEl,n=e.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var i=Ne(this.sortable.el,this.startIndex,this.options);i?this.sortable.el.insertBefore(t,i):this.sortable.el.appendChild(t),this.sortable.animateAll(),n&&n.animateAll()},drop:on};ge(Tt,{pluginName:"revertOnSpill"});function It(){}It.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable,i=n||this.sortable;i.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),i.animateAll()},drop:on};ge(It,{pluginName:"removeOnSpill"});h.mount(new ho);h.mount(It,Tt);function mo(o,e,t){const n=j(null),i=j(!1),r=j(null);let a,l=null,s=!1,u=!1,f=!1;const c=Ae(()=>{if(!r.value)return e.value;const C=new Map(e.value.map(T=>[T.id,T])),x=r.value.flatMap(T=>{const X=C.get(T);return X?[X]:[]}),N=new Set(r.value);return[...x,...e.value.filter(T=>!N.has(T.id))]}),w=Ae(()=>n.value!==null||i.value);function D(){!a||!h.dragged||!a.el.contains(h.dragged)||s||(s=!0,a.el.dispatchEvent(new Event("pointercancel",{bubbles:!0})),a.el.dispatchEvent(new Event("touchcancel",{bubbles:!0})))}async function E(C,x){if(!(t.value||i.value)&&!C.every((N,T)=>e.value[T]?.id===N)){r.value=C,i.value=!0;try{await gn(C),f||Y.success(m("profiles.orderSaved"))}catch(N){f||Y.error(m("toast.failed",{msg:ye(N)}))}finally{r.value=null,i.value=!1,await vn(),f||o.value?.querySelector(`[data-id="${CSS.escape(x)}"] .profile-card-main`)?.focus({preventScroll:!0})}}}lt(o,(C,x,N)=>{C&&(a=new h(C,{draggable:".profile-card",handle:".profile-card-main",filter:".profile-actions",preventOnFilter:!1,disabled:t.value||i.value,delay:400,delayOnTouchOnly:!1,touchStartThreshold:6,fallbackTolerance:3,forceFallback:!0,fallbackOnBody:!0,animation:window.matchMedia("(prefers-reduced-motion: reduce)").matches?0:150,chosenClass:"profile-chosen",ghostClass:"profile-placeholder",fallbackClass:"profile-drag-ghost",onChoose:T=>{s=!1,u=!0,l=T.item.nextSibling,n.value=T.item.dataset.id??null},onStart:()=>{h.ghost&&(h.ghost.inert=!0,h.ghost.setAttribute("aria-hidden","true"))},onUnchoose:()=>{n.value=null},onEnd:T=>{const X=a?.toArray()??[];(l===null||l.parentNode===T.from)&&T.from.insertBefore(T.item,l),l=null;const te="originalEvent"in T&&T.originalEvent instanceof Event&&T.originalEvent.type.endsWith("cancel");!s&&!te&&T.item.dataset.id&&E(X,T.item.dataset.id)}}),N(()=>{D(),a?.destroy(),a=void 0}))},{flush:"post"}),lt([t,i],([C,x])=>{(C||x)&&D(),a?.option("disabled",C||x)}),lt(()=>e.value.map(C=>C.id).join(","),D);function S(C){C.key==="Escape"&&h.dragged&&o.value?.contains(h.dragged)&&(C.preventDefault(),D())}function k(){u=!1,s=!1}function z(C){u&&(C.preventDefault(),C.stopPropagation(),u=!1)}function O(C,x){if(!C.altKey||C.key!=="ArrowUp"&&C.key!=="ArrowDown"||(C.preventDefault(),t.value||w.value))return;const N=e.value.map(te=>te.id),T=N.indexOf(x),X=T+(C.key==="ArrowUp"?-1:1);T<0||X<0||X>=N.length||(N.splice(T,1),N.splice(X,0,x),E(N,x))}return Dt(()=>{document.addEventListener("keydown",S),window.addEventListener("blur",D)}),mn(()=>{f=!0,D(),document.removeEventListener("keydown",S),window.removeEventListener("blur",D)}),{profiles:c,chosenId:n,busy:w,onPointerdown:k,onClick:z,moveWithKeyboard:O}}const go={class:"profiles-view"},vo=["aria-busy"],bo={class:"dl-input-wrap"},yo=["placeholder","aria-label","disabled"],wo=["title","aria-label","disabled"],_o={class:"dl-actions"},Eo=["disabled"],Do=["disabled"],So=["disabled"],Co=["aria-label"],To={key:0,class:"empty-panel"},Io={key:1,id:"profile-order-hint",class:"profile-order-hint"},Po=["aria-busy"],Oo=["data-id"],Ao=["aria-current","aria-disabled","aria-describedby","title","onClick","onKeydown"],xo={class:"profile-name-row"},ko=["title"],No=["title"],Mo={key:0,class:"profile-usage"},Fo={class:"usage-nums"},Ro={class:"mono"},$o={key:0,class:"mono usage-expire"},Bo=["aria-label","aria-valuenow"],Xo=["title"],Yo={class:"profile-error-text"},Lo={class:"profile-actions"},zo=["title","aria-label","disabled","onClick"],Ho=["title","aria-label","disabled","onClick"],Wo=["title","aria-label","disabled","onClick"],jo=["title","aria-label","disabled","onClick"],Go=Yt({__name:"ProfilesView",setup(o){const e=Sn(()=>Cn(()=>import("./ProfileEditorDialog-DD4y4GBC.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url)),t=j(""),n=j(!1),i=j(!1),r=j(!1),a=j(""),l=j(null),s=j(null),u=j(null),f=j(null),{profiles:c,chosenId:w,busy:D,onPointerdown:E,onClick:S,moveWithKeyboard:k}=mo(f,Ae(()=>he.profiles),Ae(()=>he.operations.profileMutation)),z=Ae(()=>he.profiles.some(g=>g.url!=="")),O=Ae(()=>he.operations.profileMutation||D.value);function C(g){if(!g.url)return m("profiles.localFile");try{return new URL(g.url).hostname||g.url}catch{return g.url}}function x(g){const _=new Date(g.updatedAt).getTime();return!Number.isFinite(_)||_<=0?m("profiles.neverUpdated"):Tn(g.updatedAt,In.value)}function N(g){return(g.subInfo?.upload??0)+(g.subInfo?.download??0)}function T(g){const _=g.subInfo?.total??0;return _<=0?0:Math.min(100,Math.round(N(g)/_*100))}Dt(()=>{bn().catch(()=>{})});async function X(){const g=t.value.trim();if(!(!g||n.value)){n.value=!0;try{const _=await Pn(g);t.value="",_.activated?Y.success(m("toast.profileActivated",{name:_.profile.name})):Y.success(m("toast.profileAdded",{name:_.profile.name}))}catch(_){Y.error(m("toast.failed",{msg:ye(_)}))}finally{n.value=!1}}}async function te(g){if(!a.value){a.value=g.id;try{await On(g.id),Y.success(m("toast.profileUpdated",{name:g.name}))}catch(_){Y.error(m("toast.failed",{msg:ye(_)}))}finally{a.value=""}}}async function G(){if(!i.value){i.value=!0;try{const g=await An();g.failed.length===0?Y.success(m("toast.profilesUpdateAllOk",{n:g.updated})):Y.error(m("toast.profilesUpdateAllPartial",{n:g.updated,f:g.failed.length}))}catch(g){Y.error(m("toast.failed",{msg:ye(g)}))}finally{i.value=!1}}}async function de(g){if(!(O.value||g.id===he.activeProfileId))try{await xn(g.id),Y.success(m("toast.profileActivated",{name:g.name}))}catch(_){Y.error(m("toast.failed",{msg:ye(_)}))}}function ae(g){O.value||(s.value=g)}async function De(g){if(!(O.value||!await kn({title:m("profiles.deleteConfirmTitle"),message:m("profiles.deleteConfirmMsg",{name:g.name}),confirmText:m("common.confirm"),cancelText:m("common.cancel"),danger:!0})))try{await Nn(g.id),Y.success(m("toast.profileDeleted",{name:g.name}))}catch(p){Y.error(m("toast.failed",{msg:ye(p)}))}}function ne(g){const _=g.target,p=_.files?.[0];_.value="",!(!p||r.value)&&(r.value=!0,(async()=>{try{const L=await p.text(),at=p.name.replace(/\.(ya?ml)$/i,"")||"imported",Pt=await Mn(at,L);Y.success(m("toast.profileImported",{name:Pt.profile.name}))}catch(L){Y.error(m("toast.failed",{msg:ye(L)}))}finally{r.value=!1}})())}async function ce(){try{const g=await navigator.clipboard.readText();g.trim()&&(t.value=g.trim())}catch{Y.error(m("toast.pasteFailed"))}}return(g,_)=>(Z(),le("div",go,[A("div",{class:"dl-panel","aria-busy":n.value||i.value||r.value||O.value},[A("div",bo,[Lt(A("input",{"onUpdate:modelValue":_[0]||(_[0]=p=>t.value=p),type:"url",class:"input dl-input",placeholder:v(m)("profiles.downloadPlaceholder"),"aria-label":v(m)("profiles.downloadPlaceholder"),disabled:n.value||O.value,spellcheck:"false",onKeyup:Ve(X,["enter"])},null,40,yo),[[zt,t.value]]),A("button",{type:"button",class:"icon-btn dl-paste",title:v(m)("profiles.paste"),"aria-label":v(m)("profiles.paste"),disabled:n.value||O.value,onClick:ce},[ie(fe,{name:"clipboard",size:15})],8,wo)]),A("div",_o,[A("button",{type:"button",class:"btn btn-secondary dl-action-primary",disabled:n.value||O.value||!t.value.trim(),onClick:X},[ie(fe,{name:"download",size:14}),A("span",null,K(n.value?v(m)("profiles.downloading"):v(m)("profiles.download")),1)],8,Eo),A("button",{type:"button",class:"btn btn-secondary",disabled:i.value||O.value||!z.value,onClick:G},[ie(fe,{name:"refresh",size:14,class:We({spin:i.value})},null,8,["class"]),A("span",null,K(v(m)("profiles.updateAll")),1)],8,Do),A("button",{type:"button",class:"btn btn-secondary",disabled:r.value||O.value,onClick:_[1]||(_[1]=p=>l.value?.click())},[ie(fe,{name:"upload",size:14}),A("span",null,K(v(m)("profiles.import")),1)],8,So)]),A("input",{ref_key:"fileInput",ref:l,type:"file",accept:".yaml,.yml",class:"hidden-file","aria-label":v(m)("profiles.import"),onChange:ne},null,40,Co)],8,vo),v(c).length===0?(Z(),le("div",To,[ie(yn,{icon:"layers",title:v(m)("profiles.emptyTitle"),hint:v(m)("profiles.emptyHint")},null,8,["title","hint"])])):pe("",!0),v(c).length>1?(Z(),le("p",Io,K(v(w)?v(m)("profiles.reorderDropHint"):v(m)("profiles.reorderHint")),1)):pe("",!0),v(c).length>0?(Z(),le("div",{key:2,ref_key:"profilesGrid",ref:f,class:"profiles-grid","aria-busy":O.value,onPointerdownCapture:_[2]||(_[2]=(...p)=>v(E)&&v(E)(...p)),onClickCapture:_[3]||(_[3]=(...p)=>v(S)&&v(S)(...p)),onContextmenu:_[4]||(_[4]=p=>v(w)&&p.preventDefault())},[(Z(!0),le(wn,null,_n(v(c),p=>(Z(),le("article",{key:p.id,"data-id":p.id,class:We(["profile-card",{active:p.id===v(he).activeProfileId,busy:O.value,"profile-chosen":v(w)===p.id}])},[A("div",{class:"profile-card-main",role:"button",tabindex:"0","aria-current":p.id===v(he).activeProfileId?"true":void 0,"aria-disabled":O.value||p.id===v(he).activeProfileId,"aria-describedby":v(c).length>1?"profile-order-hint":void 0,"aria-keyshortcuts":"Alt+ArrowUp Alt+ArrowDown",title:p.id===v(he).activeProfileId?void 0:v(m)("profiles.clickToUse"),onClick:L=>de(p),onKeydown:[Ve(be(L=>de(p),["prevent"]),["enter"]),Ve(be(L=>de(p),["prevent"]),["space"]),L=>v(k)(L,p.id)]},[A("div",xo,[A("span",{class:"profile-name",title:p.name},K(p.name),9,ko)]),A("div",{class:"profile-source",title:`${C(p)} · ${x(p)}`},K(C(p))+" · "+K(x(p)),9,No),p.subInfo?(Z(),le("div",Mo,[A("div",Fo,[A("span",Ro,K(v(At)(N(p)))+" / "+K(v(At)(p.subInfo.total)),1),p.subInfo.expire?(Z(),le("span",$o,K(v(En)(p.subInfo.expire)),1)):pe("",!0)]),A("div",{class:"usage-bar",role:"progressbar","aria-label":v(m)("profiles.usageLabel"),"aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":T(p)},[A("div",{class:We(["usage-fill",{"usage-fill-hot":T(p)>=90}]),style:Dn({width:`${T(p)}%`})},null,6)],8,Bo)])):pe("",!0),p.lastError?(Z(),le("div",{key:1,class:"profile-error",title:p.lastError,role:"status"},[ie(fe,{name:"alert",size:13}),A("span",Yo,K(p.lastError),1)],8,Xo)):pe("",!0)],40,Ao),A("div",Lo,[A("button",{type:"button",class:"icon-btn",title:v(m)("profiles.rename"),"aria-label":`${v(m)("profiles.rename")}: ${p.name}`,disabled:O.value,onClick:be(L=>u.value=p,["stop"])},[ie(fe,{name:"pencil",size:14})],8,zo),A("button",{type:"button",class:"icon-btn",title:v(m)("profiles.edit"),"aria-label":`${v(m)("profiles.edit")}: ${p.name}`,disabled:O.value,onClick:be(L=>ae(p),["stop"])},[ie(fe,{name:"code",size:14})],8,Ho),p.url?(Z(),le("button",{key:0,type:"button",class:"icon-btn",title:v(m)("profiles.update"),"aria-label":`${v(m)("profiles.update")}: ${p.name}`,disabled:O.value,onClick:be(L=>te(p),["stop"])},[ie(fe,{name:"refresh",size:14,class:We({spin:a.value===p.id})},null,8,["class"])],8,Wo)):pe("",!0),A("button",{type:"button",class:"icon-btn danger-hover",title:v(m)("profiles.delete"),"aria-label":`${v(m)("profiles.delete")}: ${p.name}`,disabled:O.value,onClick:be(L=>De(p),["stop"])},[ie(fe,{name:"trash",size:14})],8,jo)])],10,Oo))),128))],40,Po)):pe("",!0),u.value?(Z(),vt(Yn,{key:3,profile:u.value,onClose:_[5]||(_[5]=p=>u.value=null)},null,8,["profile"])):pe("",!0),s.value?(Z(),vt(v(e),{key:4,"profile-id":s.value.id,"profile-name":s.value.name,"is-remote":s.value.url!=="",onClose:_[6]||(_[6]=p=>s.value=null)},null,8,["profile-id","profile-name","is-remote"])):pe("",!0)]))}}),Ko=Ht(Go,[["__scopeId","data-v-73a0732f"]]);export{Ko as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as f,w as p,s as b,o as u,c as h,a as _,b as P,e,I as w,f as k,u as l,t,v as $,g as r,P as C,F as I,r as V,m as E,E as R,i as T,p as y,q as i,_ as B}from"./index-
|
|
1
|
+
import{d as f,w as p,s as b,o as u,c as h,a as _,b as P,e,I as w,f as k,u as l,t,v as $,g as r,P as C,F as I,r as V,m as E,E as R,i as T,p as y,q as i,_ as B}from"./index-CBInDvdJ.js";import{P as M}from"./PaginationFooter-cj1tcZej.js";const F={class:"search-box rule-search"},L=["aria-label","placeholder"],N={class:"badge badge-neutral"},S={class:"table-wrap rule-list"},q={class:"data-table"},D={class:"idx"},U=["data-label"],z=["data-label"],A={class:"badge badge-neutral"},G=["data-label","title"],H=["data-label"],K={class:"badge badge-accent"},m=80,Q=f({__name:"RulesView",setup(Z){const d=y(""),c=y(1),g=i(()=>b.rules.map((a,o)=>({rule:a,originalIndex:o,key:`${a.type}\0${a.payload}\0${a.proxy}\0${o}`,searchKey:`${a.type??""}\0${a.payload??""}\0${a.proxy??""}`.toLowerCase()}))),n=i(()=>{const a=d.value.trim().toLowerCase();return a?g.value.filter(({searchKey:o})=>o.includes(a)):g.value}),v=i(()=>Math.max(1,Math.ceil(n.value.length/m))),x=i(()=>{const a=(c.value-1)*m;return n.value.slice(a,a+m)});return p(d,()=>{c.value=1}),p(()=>b.rules,()=>{c.value=1}),p(v,a=>{c.value=Math.min(c.value,a)},{immediate:!0}),(a,o)=>(u(),h("div",null,[_(C,{title:l(t)("page.rules.title"),desc:l(t)("page.rules.desc")},{default:P(()=>[e("div",F,[_(w,{name:"search",size:13}),k(e("input",{"onUpdate:modelValue":o[0]||(o[0]=s=>d.value=s),type:"search","aria-label":l(t)("rules.searchPlaceholder"),placeholder:l(t)("rules.searchPlaceholder")},null,8,L),[[$,d.value]])]),e("span",N,r(l(t)("common.rulesCount",{n:n.value.length})),1)]),_:1},8,["title","desc"]),e("div",S,[e("table",q,[e("thead",null,[e("tr",null,[e("th",D,r(l(t)("rules.colIndex")),1),e("th",null,r(l(t)("rules.colType")),1),e("th",null,r(l(t)("rules.colPayload")),1),e("th",null,r(l(t)("rules.colTarget")),1)])]),e("tbody",null,[(u(!0),h(I,null,V(x.value,s=>(u(),h("tr",{key:s.key},[e("td",{class:"cell-mono text-muted idx","data-label":l(t)("rules.colIndex")},r(s.originalIndex+1),9,U),e("td",{"data-label":l(t)("rules.colType")},[e("span",A,r(s.rule.type),1)],8,z),e("td",{class:"cell-mono cell-truncate","data-label":l(t)("rules.colPayload"),title:s.rule.payload||"-"},r(s.rule.payload||"-"),9,G),e("td",{"data-label":l(t)("rules.colTarget")},[e("span",K,r(s.rule.proxy),1)],8,H)]))),128))])]),n.value.length===0?(u(),E(R,{key:0,icon:"list-filter",title:l(t)("rules.empty")},null,8,["title"])):T("",!0)]),_(M,{page:c.value,"onUpdate:page":o[1]||(o[1]=s=>c.value=s),pages:v.value},null,8,["page","pages"])]))}}),O=B(Q,[["__scopeId","data-v-6cf63293"]]);export{O as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{w as B,a8 as q,p as T,a9 as L,z as U,q as V,d as E,o as g,c as b,e as s,g as n,i as k,aa as A,_ as I,n as S,u as t,t as e,m as M,b as P,a as f,I as j,j as H,s as m,ab as O,y as p,ac as R,P as F,l as x,f as G,v as J,ad as K,ae as Q,af as W,ag as X,ah as z}from"./index-CBInDvdJ.js";import{t as w,s as Y}from"./theme-D40MF8cQ.js";function Z(u){const o=T(null),a=T(!1),l=T(!1);let r=0,v=!1;const h=V(()=>a.value||l.value);async function y(){if(!u.value||l.value||v)return;const _=++r;a.value=!0;try{const d=await L.getAutostart();!v&&_===r&&(o.value=d)}catch(d){!v&&_===r&&(o.value={state:"unknown",canEnable:!1,reason:U(d)})}finally{!v&&_===r&&(a.value=!1)}}async function $(_){if(!u.value||h.value||v||_&&!o.value?.canEnable)return!1;const d=++r;l.value=!0;try{const i=await L.setAutostart(_);return v||d!==r?!1:(o.value=i,!0)}catch(i){if(v||d!==r)return!1;try{const c=await L.getAutostart();!v&&d===r&&(o.value=c)}catch{!v&&d===r&&(o.value={state:"unknown",canEnable:!1,reason:U(i)})}if(!v&&d===r)throw i;return!1}finally{!v&&d===r&&(l.value=!1)}}return B(u,()=>{r+=1,a.value=!1,l.value=!1,o.value=null,y()},{immediate:!0,flush:"sync"}),q(()=>{v=!0,r+=1}),{status:o,busy:h,refresh:y,setEnabled:$}}const tt={class:"ui-card"},et={key:0,class:"ui-card-head"},st={class:"ui-card-heading"},at={key:0,class:"ui-card-title"},nt={key:1,class:"ui-card-desc"},ot={key:0,class:"ui-card-actions"},it={class:"ui-card-body"},lt=E({__name:"UiCard",props:{title:{},desc:{}},setup(u){return(o,a)=>(g(),b("section",tt,[u.title||u.desc||o.$slots.actions?(g(),b("header",et,[s("div",st,[u.title?(g(),b("h2",at,n(u.title),1)):k("",!0),u.desc?(g(),b("p",nt,n(u.desc),1)):k("",!0)]),o.$slots.actions?(g(),b("div",ot,[A(o.$slots,"actions",{},void 0)])):k("",!0)])):k("",!0),s("div",it,[A(o.$slots,"default",{},void 0)])]))}}),D=I(lt,[["__scopeId","data-v-042826e5"]]),rt=["aria-checked","aria-label","disabled"],dt=E({__name:"UiSwitch",props:{modelValue:{type:Boolean},disabled:{type:Boolean},label:{}},emits:["update:modelValue"],setup(u){return(o,a)=>(g(),b("button",{type:"button",role:"switch","aria-checked":u.modelValue,"aria-label":u.label??t(e)("common.toggle"),class:S(["switch",{on:u.modelValue}]),disabled:u.disabled,onClick:a[0]||(a[0]=l=>o.$emit("update:modelValue",!u.modelValue))},[...a[1]||(a[1]=[s("span",{class:"knob","aria-hidden":"true"},null,-1)])],10,rt))}}),N=I(dt,[["__scopeId","data-v-306af9c5"]]),ct=["aria-busy"],ut={class:"autostart-info"},vt={class:"autostart-desc"},mt={id:"autostart-state",class:"autostart-state",role:"status"},_t={key:0,class:"autostart-reason"},gt={class:"autostart-actions"},ft=["disabled"],bt=["disabled"],pt=E({__name:"AutostartCard",setup(u){const o=V(()=>O.value&&m.daemonOnline?m.status?.daemon.bootId??null:null),{status:a,busy:l,refresh:r,setEnabled:v}=Z(o),h=V(()=>l.value||!o.value||!a.value||a.value.state==="unknown"||a.value.state==="unsupported"||!a.value.canEnable&&a.value.state!=="on"),y=V(()=>o.value?a.value?{on:e("autostart.on"),off:e("autostart.off"),stale:e("autostart.stale"),disabled:e("autostart.disabled"),unknown:e("autostart.unknown"),unsupported:e("autostart.unsupported")}[a.value.state]:e("common.loading"):e("autostart.unavailable"));async function $(_){try{await v(_)&&p.success(e("toast.settingSaved"))}catch(d){p.error(e("toast.failed",{msg:U(d)}))}}return(_,d)=>(g(),M(D,{title:t(e)("autostart.title"),class:"autostart-card"},{default:P(()=>[s("div",{class:"autostart-row","aria-busy":t(l)},[s("div",ut,[s("span",vt,n(t(e)("autostart.description")),1),s("span",mt,n(y.value),1),t(a)?.reason?(g(),b("span",_t,n(t(a).reason),1)):k("",!0)]),f(N,{"model-value":t(a)?.state==="on",label:t(e)("autostart.title"),"aria-describedby":"autostart-state",disabled:h.value,"onUpdate:modelValue":$},null,8,["model-value","label","disabled"])],8,ct),s("div",gt,[s("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:t(l)||!o.value,onClick:d[0]||(d[0]=(...i)=>t(r)&&t(r)(...i))},[f(j,{name:"refresh",size:14}),H(" "+n(t(e)("autostart.refresh")),1)],8,ft),t(a)&&["stale","disabled","unknown"].includes(t(a).state)?(g(),b("button",{key:0,type:"button",class:"btn btn-secondary btn-sm",disabled:t(l)||!o.value,onClick:d[1]||(d[1]=i=>$(!1))},n(t(e)("autostart.remove")),9,bt)):k("",!0)])]),_:1},8,["title"]))}}),ht=I(pt,[["__scopeId","data-v-23705699"]]),yt={class:"settings-grid"},wt={class:"setting-row"},kt={class:"setting-info"},$t={class:"setting-name"},Ct={class:"setting-desc"},St=["aria-label"],Tt=["aria-pressed"],Vt=["aria-pressed"],xt=["aria-pressed"],Pt={class:"setting-row"},Dt={class:"setting-info"},Ut={class:"setting-name"},Et={class:"setting-desc"},It=["aria-label"],Lt=["aria-pressed"],At=["aria-pressed"],zt={class:"setting-row interrupt-row"},Bt={class:"setting-info"},Nt={class:"setting-name",for:"mixed-port"},qt={class:"setting-desc"},Mt={class:"setting-action port-action"},jt=["aria-label","disabled"],Ht=["disabled"],Ot=["disabled"],Rt={class:"setting-row"},Ft={class:"setting-info"},Gt={class:"setting-name"},Jt={class:"setting-desc"},Kt={class:"setting-action"},Qt={class:"setting-row"},Wt={class:"setting-info"},Xt={class:"setting-name"},Yt={class:"setting-desc"},Zt={class:"info-grid"},te={class:"info-item"},ee={class:"mono"},se={class:"info-item"},ae={class:"mono"},ne={class:"info-item"},oe={class:"mono"},ie=E({__name:"SettingsView",setup(u){const o=T(m.status?.settings.mixedPort??7890),a=T(o.value),l=T(!1);B(()=>m.status?.settings.mixedPort,i=>{if(i===void 0)return;const c=o.value;o.value=i,a.value=R(a.value,c,i,l.value)});const r=V(()=>W(a.value,o.value)),v=V(()=>Number.isInteger(a.value)&&a.value>=1&&a.value<=65535&&r.value);function h(i){i!==w.value&&Y(i)}function y(i){i!==x.value&&(X(i),p.success(e("toast.langSwitched")))}function $(){a.value=o.value}async function _(){if(!(!v.value||l.value||m.operations.networkSetting)){l.value=!0;try{await z({mixedPort:a.value})?p.success(e("toast.portSaved")):p.info(e("toast.settingSavedUnverified"))}catch(i){p.error(e("toast.failed",{msg:U(i)}))}finally{l.value=!1}}}async function d(i){try{await z({allowLan:i})?p.success(e("toast.settingSaved")):p.info(e("toast.settingSavedUnverified"))}catch(c){p.error(e("toast.failed",{msg:U(c)}))}}return(i,c)=>(g(),b("div",null,[f(F,{title:t(e)("page.settings.title"),desc:t(e)("page.settings.desc")},null,8,["title","desc"]),s("div",yt,[f(D,{title:t(e)("settings.appearanceTitle"),class:"settings-card"},{default:P(()=>[s("div",wt,[s("div",kt,[s("span",$t,n(t(e)("settings.themeTitle")),1),s("span",Ct,n(t(e)("settings.appearanceDesc")),1)]),s("div",{class:"segmented preference-control",role:"group","aria-label":t(e)("settings.appearanceTitle")},[s("button",{type:"button",class:S(["segmented-item",{active:t(w)==="system"}]),"aria-pressed":t(w)==="system",onClick:c[0]||(c[0]=C=>h("system"))},n(t(e)("theme.system")),11,Tt),s("button",{type:"button",class:S(["segmented-item",{active:t(w)==="light"}]),"aria-pressed":t(w)==="light",onClick:c[1]||(c[1]=C=>h("light"))},n(t(e)("theme.light")),11,Vt),s("button",{type:"button",class:S(["segmented-item",{active:t(w)==="dark"}]),"aria-pressed":t(w)==="dark",onClick:c[2]||(c[2]=C=>h("dark"))},n(t(e)("theme.dark")),11,xt)],8,St)]),s("div",Pt,[s("div",Dt,[s("span",Ut,n(t(e)("settings.langTitle")),1),s("span",Et,n(t(e)("settings.langDesc")),1)]),s("div",{class:"segmented preference-control language-control",role:"group","aria-label":t(e)("settings.langTitle")},[s("button",{type:"button",class:S(["segmented-item",{active:t(x)==="zh"}]),"aria-pressed":t(x)==="zh",onClick:c[3]||(c[3]=C=>y("zh"))}," 中文 ",10,Lt),s("button",{type:"button",class:S(["segmented-item",{active:t(x)==="en"}]),"aria-pressed":t(x)==="en",onClick:c[4]||(c[4]=C=>y("en"))}," English ",10,At)],8,It)])]),_:1},8,["title"]),f(ht),f(D,{title:t(e)("settings.networkTitle"),class:"settings-card"},{default:P(()=>[s("div",zt,[s("div",Bt,[s("label",Nt,n(t(e)("settings.mixedPortTitle")),1),s("span",qt,n(t(e)("settings.mixedPortDesc")),1)]),s("div",Mt,[G(s("input",{id:"mixed-port","onUpdate:modelValue":c[5]||(c[5]=C=>a.value=C),type:"number",min:"1",max:"65535",class:"input input-sm port-input","aria-label":t(e)("settings.mixedPortTitle"),disabled:l.value||t(m).operations.networkSetting||!t(m).status},null,8,jt),[[J,a.value,void 0,{number:!0}]]),r.value?(g(),b("button",{key:0,type:"button",class:"btn btn-secondary btn-sm",disabled:l.value||t(m).operations.networkSetting||!t(m).status,onClick:$},n(t(e)("common.reset")),9,Ht)):k("",!0),s("button",{type:"button",class:"btn btn-secondary btn-sm interrupt-save",disabled:l.value||t(m).operations.networkSetting||!v.value||!t(m).status,onClick:_},n(l.value?t(e)("common.loading"):t(e)("common.save")),9,Ot)])]),s("div",Rt,[s("div",Ft,[s("span",Gt,n(t(e)("settings.allowLanTitle")),1),s("span",Jt,n(t(e)("settings.allowLanDesc")),1)]),s("div",Kt,[f(N,{"model-value":t(m).status?.settings.allowLan??!1,label:t(e)("settings.allowLanTitle"),disabled:t(m).operations.networkSetting||!t(m).status,"onUpdate:modelValue":d},null,8,["model-value","label","disabled"])])])]),_:1},8,["title"]),f(D,{title:t(e)("settings.coreTitle"),class:"settings-card"},{default:P(()=>[s("div",Qt,[s("div",Wt,[s("span",Xt,n(t(e)("settings.restartTitle")),1),s("span",Yt,n(t(e)("settings.restartDesc")),1)]),f(K)])]),_:1},8,["title"]),f(D,{title:t(e)("settings.aboutTitle"),class:"settings-card runtime-card"},{default:P(()=>[s("dl",Zt,[s("div",te,[s("dt",null,n(t(e)("overview.daemonPort")),1),s("dd",ee,"127.0.0.1:"+n(t(m).status?.settings.daemonPort??19090),1)]),s("div",se,[s("dt",null,n(t(e)("overview.controller")),1),s("dd",ae,n(t(m).status?.settings.controller||"-"),1)]),s("div",ne,[s("dt",null,n(t(e)("settings.coreVersion")),1),s("dd",oe,n(t(Q)||"-"),1)])])]),_:1},8,["title"])])]))}}),de=I(ie,[["__scopeId","data-v-72ce9d2d"]]);export{de as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ui-card[data-v-042826e5]{min-width:0}.ui-card-head[data-v-042826e5]{display:flex;min-height:28px;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:5px}.ui-card-heading[data-v-042826e5]{min-width:0}.ui-card-title[data-v-042826e5]{color:var(--text-primary);font-size:18px;font-weight:400;line-height:1.4}.ui-card-desc[data-v-042826e5]{margin-top:1px;color:var(--text-muted);font-size:14px;line-height:1.35}.ui-card-actions[data-v-042826e5]{display:flex;align-items:center;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;gap:7px}.ui-card-body[data-v-042826e5]{padding:6px 10px;background:var(--bg-panel);border-radius:3px}@media(max-width:520px){.ui-card-head[data-v-042826e5]{flex-wrap:wrap}.ui-card-body[data-v-042826e5]{padding:6px 8px}}.switch[data-v-306af9c5]{position:relative;width:34px;height:20px;flex-shrink:0;padding:0;border:0;border-radius:var(--radius-full);background:var(--switch-off);cursor:pointer;transition:background var(--motion-normal) var(--ease-standard),opacity var(--motion-fast) var(--ease-standard)}.switch[data-v-306af9c5]:hover:not(:disabled){background:color-mix(in srgb,var(--switch-off) 84%,var(--text-primary))}.switch.on[data-v-306af9c5]{background:var(--switch-on)}.switch.on[data-v-306af9c5]:hover:not(:disabled){background:color-mix(in srgb,var(--switch-on) 84%,#000000)}.switch[data-v-306af9c5]:disabled{cursor:not-allowed;opacity:.48}.knob[data-v-306af9c5]{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:var(--radius-full);background:var(--switch-knob);box-shadow:var(--shadow-switch);transition:background var(--motion-normal) var(--ease-standard),transform var(--motion-normal) var(--ease-spring)}.switch.on .knob[data-v-306af9c5]{transform:translate(14px)}.autostart-row[data-v-23705699]{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:24px;padding:6px 5px}.autostart-info[data-v-23705699]{display:flex;min-width:0;flex-direction:column;gap:4px;overflow-wrap:anywhere}.autostart-desc[data-v-23705699]{color:var(--text-primary);font-size:16px}.autostart-state[data-v-23705699],.autostart-reason[data-v-23705699]{color:var(--text-muted);font-size:14px;line-height:1.4}.autostart-actions[data-v-23705699]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:6px 5px}@media(max-width:760px){.autostart-actions .btn[data-v-23705699]{min-height:40px}}.settings-grid[data-v-72ce9d2d]{display:grid;width:min(1046px,100%);grid-template-columns:1fr;gap:12px;margin:0 auto}.settings-card[data-v-72ce9d2d]{min-width:0}.preference-control[data-v-72ce9d2d]{display:grid;width:min(360px,48%);grid-template-columns:repeat(3,minmax(0,1fr));flex-shrink:0;gap:0}.language-control[data-v-72ce9d2d]{grid-template-columns:repeat(2,minmax(0,1fr))}.preference-control .segmented-item[data-v-72ce9d2d]{min-height:27px;border:0;border-radius:0;font-size:14px}.preference-control .segmented-item[data-v-72ce9d2d]:first-child{border-radius:5px 0 0 5px}.preference-control .segmented-item[data-v-72ce9d2d]:last-child{border-radius:0 5px 5px 0}.setting-row[data-v-72ce9d2d]{display:flex;min-height:43px;align-items:center;justify-content:space-between;gap:24px;padding:6px 5px;border-bottom:0;transition:background var(--motion-fast) var(--ease-standard)}.setting-row[data-v-72ce9d2d]:first-child{margin-top:-2px}.setting-row[data-v-72ce9d2d]:last-child{border-bottom:0}.setting-row[data-v-72ce9d2d]:hover{background:var(--general-row-hover);border-radius:3px}.setting-info[data-v-72ce9d2d]{display:flex;min-width:0;flex-direction:column;gap:2px}.setting-name[data-v-72ce9d2d]{color:var(--text-primary);font-size:16px;font-weight:400}.setting-desc[data-v-72ce9d2d]{max-width:630px;color:var(--text-muted);font-size:14px;line-height:1.35}.setting-action[data-v-72ce9d2d]{display:flex;align-items:center;flex-shrink:0;gap:8px}.port-input[data-v-72ce9d2d]{width:96px;font-family:var(--font-mono);appearance:textfield;-moz-appearance:textfield}.port-input[data-v-72ce9d2d]::-webkit-outer-spin-button,.port-input[data-v-72ce9d2d]::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.interrupt-save[data-v-72ce9d2d]{color:var(--warning);background:transparent;border-color:var(--warning-border)}.interrupt-save[data-v-72ce9d2d]:hover:not(:disabled){background:var(--warning-soft)}.info-grid[data-v-72ce9d2d]{display:grid;grid-template-columns:1fr}.info-item[data-v-72ce9d2d]{display:flex;min-width:0;min-height:39px;align-items:center;justify-content:space-between;gap:12px;padding:6px 5px;border-bottom:0}.info-item[data-v-72ce9d2d]:last-child{border-bottom:0}.info-item dt[data-v-72ce9d2d]{flex-shrink:0;color:var(--text-secondary);font-size:16px}.info-item dd[data-v-72ce9d2d]{min-width:0;overflow:hidden;color:var(--text-primary);font-size:16px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}@media(max-width:760px){.preference-control .segmented-item[data-v-72ce9d2d],.setting-action .btn[data-v-72ce9d2d]{min-height:40px}}@media(max-width:480px){.settings-grid[data-v-72ce9d2d]{gap:12px}.preference-control[data-v-72ce9d2d]{width:100%}.preference-control .segmented-item[data-v-72ce9d2d]{min-height:40px;font-size:14px}.setting-row[data-v-72ce9d2d]{min-height:0;align-items:stretch;flex-direction:column;gap:11px;padding:13px 8px}.setting-action[data-v-72ce9d2d]{align-self:stretch;justify-content:flex-end}.port-action[data-v-72ce9d2d]{display:grid;grid-template-columns:minmax(0,1fr) auto auto}.port-input[data-v-72ce9d2d]{width:100%;min-height:44px;text-align:left}.setting-action .btn[data-v-72ce9d2d]{min-height:44px}.info-item[data-v-72ce9d2d]{min-height:0;align-items:flex-start;flex-direction:column;gap:3px;padding:10px 8px}.info-item dd[data-v-72ce9d2d]{width:100%}}
|