@runeya/runeya 2.0.144 → 2.0.145
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/agent/index.js +7 -1
- package/agent/index.js.map +1 -1
- package/agent-manager-THV3LJOF.js +11 -0
- package/{chat-X3X527EX.js → chat-XYCHMTFE.js} +9 -9
- package/{chunk-7HIPFSOA.js → chunk-57P45FNY.js} +11 -3
- package/chunk-57P45FNY.js.map +1 -0
- package/{chunk-UR3HL373.js → chunk-FE53XX4M.js} +8 -8
- package/{chunk-IXO5KIO5.js → chunk-KS7A5CTW.js} +12 -1
- package/{chunk-IXO5KIO5.js.map → chunk-KS7A5CTW.js.map} +1 -1
- package/{chunk-XAFOP677.js → chunk-MZSDTA4A.js} +480 -233
- package/chunk-MZSDTA4A.js.map +1 -0
- package/{chunk-7L6AQUBR.js → chunk-NCO4OOYT.js} +6 -2
- package/{chunk-7L6AQUBR.js.map → chunk-NCO4OOYT.js.map} +1 -1
- package/{chunk-P73PTVII.js → chunk-ONVAH65J.js} +103 -33
- package/chunk-ONVAH65J.js.map +1 -0
- package/{chunk-NSS47H26.js → chunk-Q4RPY3VW.js} +330 -74
- package/chunk-Q4RPY3VW.js.map +1 -0
- package/{chunk-GXE5TLLJ.js → chunk-QF56Z6LI.js} +17 -17
- package/{companion-2LHKU577.js → companion-HBYSY2D5.js} +11 -7
- package/{desktop-installer-page-6JDSXK2E.js → desktop-installer-page-I5FHFDES.js} +11 -8
- package/desktop-installer-page-I5FHFDES.js.map +1 -0
- package/{desktop-launcher-YPNRQMIS.js → desktop-launcher-GD4QPM66.js} +3 -3
- package/index.js +25 -12
- package/index.js.map +1 -1
- package/{install-gate-2NNH7RM2.js → install-gate-JAEK4BDZ.js} +2 -2
- package/mcp-server/index.js +7 -1
- package/mcp-server/index.js.map +1 -1
- package/package.json +1 -1
- package/settings-manager-QVQRJO6V.js +10 -0
- package/src-DCCEUWE6.js +385 -0
- package/{src-5TEXF3SU.js → src-IODFUZ7A.js} +100 -59
- package/src-IODFUZ7A.js.map +1 -0
- package/{vault-resolver-VK6W5J6W.js → vault-resolver-PN3TYCLJ.js} +3 -2
- package/vault-resolver-PN3TYCLJ.js.map +1 -0
- package/web/assets/{AgentScalarChatInterface.vue-B-SjOsdj.js → AgentScalarChatInterface.vue-npQgDxeP.js} +1 -1
- package/web/assets/{AgentTerminalPage-JzC8DUgu.js → AgentTerminalPage-BTH3yCS2.js} +1 -1
- package/web/assets/{AiChatModals-D1928AxG.js → AiChatModals-It9jnB26.js} +1 -1
- package/web/assets/AppLayout-BTg2CADo.js +1 -0
- package/web/assets/{AppLayout-8sBPr3od.css → AppLayout-tsw5Ow0w.css} +1 -1
- package/web/assets/{AuditPage-BZIJ3_Kr.js → AuditPage-2PKKGLZs.js} +1 -1
- package/web/assets/{CloudAccountPage-DBv470sT.js → CloudAccountPage-CHL61gLe.js} +1 -1
- package/web/assets/{CloudMessagingPage-qCI8-UDL.js → CloudMessagingPage-cgKnABPH.js} +1 -1
- package/web/assets/DashboardPage-CRntTMKY.js +1 -0
- package/web/assets/{DashboardPage-D9-PpC3F.css → DashboardPage-FvNuC_e4.css} +1 -1
- package/web/assets/{DirectoryPickerDialog-B5DvDfQP.js → DirectoryPickerDialog-DCyhT3-W.js} +1 -1
- package/web/assets/{EnvironmentForm-Bw8Djnqm.js → EnvironmentForm-C96PFWRE.js} +1 -1
- package/web/assets/{EnvironmentFormPage-B59uiYtp.js → EnvironmentFormPage-ChorAd63.js} +1 -1
- package/web/assets/{EnvironmentListPage-W9zLDZAg.js → EnvironmentListPage-Dw9ziaI8.js} +1 -1
- package/web/assets/KanbanBoardPage-BZHbEj-q.js +4 -0
- package/web/assets/KanbanBoardPage-eHmsrFGA.css +1 -0
- package/web/assets/{KanbanListPage-Bn9k8Rpc.js → KanbanListPage-B0jlfKqs.js} +1 -1
- package/web/assets/{LaunchProjectPage-Dc7v1UjQ.js → LaunchProjectPage-BVs1JwbV.js} +1 -1
- package/web/assets/LaunchServicesPage-DoLDPqQq.css +1 -0
- package/web/assets/LaunchServicesPage-PBYJly9N.js +1 -0
- package/web/assets/{LaunchShell-LonTJpb3.js → LaunchShell-CGNYr-do.js} +1 -1
- package/web/assets/{LogViewer-DkuqWYkQ.js → LogViewer-BDObx29F.js} +1 -1
- package/web/assets/{OrgKeyPrompt-By1VjlSN.js → OrgKeyPrompt-BbcwiwGw.js} +1 -1
- package/web/assets/{ProcessControls-C0skzKGL.js → ProcessControls-DY0HTKde.js} +1 -1
- package/web/assets/{ProcessDetailPage-BvPX6z_X.js → ProcessDetailPage-BZ9kIQqn.js} +1 -1
- package/web/assets/{ProjectCreateDialog-C4o9u15L.js → ProjectCreateDialog-C1wVDPcK.js} +1 -1
- package/web/assets/{ProjectLocationGate-BJ1CSQt0.js → ProjectLocationGate-bUd_tFpI.js} +1 -1
- package/web/assets/{ProjectPublishDialog-Cp-zXdGm.js → ProjectPublishDialog-APUS1WEN.js} +1 -1
- package/web/assets/{RandomJobTestPage-DF4a1U13.js → RandomJobTestPage-BFNC827R.js} +1 -1
- package/web/assets/ScenarioEditorPage-DFVsMVu5.js +14 -0
- package/web/assets/{SendToChatDialog-Dg2SHkVD.js → SendToChatDialog-QHIkxNio.js} +1 -1
- package/web/assets/{ServiceControlsBar-q2VHWaxK.js → ServiceControlsBar-_UQXb6g0.js} +1 -1
- package/web/assets/ServiceDetailPage-DGIXgHwR.js +2 -0
- package/web/assets/{ServiceFormPage-tT_n7WUy.js → ServiceFormPage-RliAfS3_.js} +1 -1
- package/web/assets/SettingsPage-BSSHxxjM.js +2086 -0
- package/web/assets/{SettingsPage-aGSxZw1n.css → SettingsPage-W8YszhUL.css} +1 -1
- package/web/assets/{UnlockPage-BKAdMJkb.js → UnlockPage-17EgfpJs.js} +1 -1
- package/web/assets/{VaultMigrationPage-D9KUTTss.js → VaultMigrationPage-DeMxpXXJ.js} +1 -1
- package/web/assets/{VersionBadge-moKP5bAv.js → VersionBadge-DBquJl76.js} +1 -1
- package/web/assets/{WikiPage-hLUndDxo.js → WikiPage-GtwpJPqf.js} +1 -1
- package/web/assets/{WikiView-rrjXRR72.js → WikiView-BqaqxMxW.js} +1 -1
- package/web/assets/{add-scalar-classes-CBfRr8B2.js → add-scalar-classes-DhSSqZ5l.js} +2 -2
- package/web/assets/{agent.store-B3dVemmT.js → agent.store-Co44dMZf.js} +1 -1
- package/web/assets/app-mode-BVpTuh0i.js +1 -0
- package/web/assets/auth-Bk1GP5sB.js +2 -0
- package/web/assets/{cloud-chat.store-Wg1poFem.js → cloud-chat.store-CadB14dZ.js} +1 -1
- package/web/assets/{cloud-client-DQlUaoAw.js → cloud-client-0zD_NI6q.js} +2 -2
- package/web/assets/{cloud-session-DRUqcSGP.js → cloud-session-Cjw54Y--.js} +2 -2
- package/web/assets/dist-N4nrnbnA.js +1 -0
- package/web/assets/{editor.store-SoH48ux2.js → editor.store-DmM6ZlTm.js} +1 -1
- package/web/assets/i18n-8FjeJaKW.js +1 -0
- package/web/assets/{index-D_x2s8Ut.js → index-B9DJf2V0.js} +101 -101
- package/web/assets/{index-C_JV7fYy.css → index-teBqdnuv.css} +1 -1
- package/web/assets/{modal-CpsVK_dA.js → modal-UK8xRSnh.js} +1 -1
- package/web/assets/{project-launch.store-C3fZeRGb.js → project-launch.store-B5nhdGdh.js} +1 -1
- package/web/assets/{project.store-BEk4fciH.js → project.store-Bm2JWNbd.js} +1 -1
- package/web/assets/{scenario.store-D-JrRiVO.js → scenario.store-88w6P6s2.js} +2 -2
- package/web/assets/{service.store-B5uYZtyM.js → service.store-XS50iGKo.js} +1 -1
- package/web/assets/{settings-scope-Blnwj3rR.js → settings-scope-CKPq86HZ.js} +1 -1
- package/web/assets/{settings.store-Bo3FYs1o.js → settings.store-BCJ0LJQA.js} +1 -1
- package/web/assets/src-BDZKZr9n.css +1 -0
- package/web/assets/{src-DValZNJU.js → src-Cgix2VOi.js} +5 -5
- package/web/assets/{src-CAwAaB5j.js → src-DBipSD56.js} +1 -1
- package/web/assets/{trpc-DbsE5GvQ.js → trpc-CfuFkKgp.js} +3 -3
- package/web/assets/{useCloudOrg-DygUBG1a.js → useCloudOrg-J8DAnocE.js} +1 -1
- package/web/assets/{useEnvVarAutocomplete-DmYNOXgd.js → useEnvVarAutocomplete-C6zOXYqi.js} +1 -1
- package/web/assets/{useProjectCatalog-D2mHB7dg.js → useProjectCatalog-BB5IR6o8.js} +1 -1
- package/web/assets/{useProjectCloudOrg-avTCVold.js → useProjectCloudOrg-BnlKts7x.js} +1 -1
- package/web/assets/{useServiceUrlHost-Q3fzGox3.js → useServiceUrlHost-hKbKtPMu.js} +1 -1
- package/web/assets/{vue-draggable-plus-WgrMXXmE.js → vue-draggable-plus-D5ni4jMk.js} +1 -1
- package/web/index.html +19 -18
- package/agent-manager-M4NA5YFD.js +0 -11
- package/chunk-7HIPFSOA.js.map +0 -1
- package/chunk-NSS47H26.js.map +0 -1
- package/chunk-P73PTVII.js.map +0 -1
- package/chunk-XAFOP677.js.map +0 -1
- package/desktop-installer-page-6JDSXK2E.js.map +0 -1
- package/settings-manager-32SVMAFN.js +0 -10
- package/src-5TEXF3SU.js.map +0 -1
- package/web/assets/AppLayout-CVQIBYqg.js +0 -1
- package/web/assets/DashboardPage-D0UZM0mr.js +0 -1
- package/web/assets/KanbanBoardPage-DRACMk_D.css +0 -1
- package/web/assets/KanbanBoardPage-DwPqoJDJ.js +0 -4
- package/web/assets/LaunchServicesPage-CXUS9O3y.js +0 -1
- package/web/assets/LaunchServicesPage-DJDIN8HU.css +0 -1
- package/web/assets/ScenarioEditorPage-Dl-gEkJI.js +0 -14
- package/web/assets/ServiceDetailPage-CJ8WaFod.js +0 -2
- package/web/assets/SettingsPage-CWakkv0V.js +0 -2086
- package/web/assets/auth-BCrvnP1U.js +0 -2
- package/web/assets/dist-DoChtT9t.js +0 -1
- package/web/assets/i18n-BszFg0ko.js +0 -1
- package/web/assets/src-DuBXN1hu.css +0 -1
- /package/{agent-manager-M4NA5YFD.js.map → agent-manager-THV3LJOF.js.map} +0 -0
- /package/{chat-X3X527EX.js.map → chat-XYCHMTFE.js.map} +0 -0
- /package/{chunk-UR3HL373.js.map → chunk-FE53XX4M.js.map} +0 -0
- /package/{chunk-GXE5TLLJ.js.map → chunk-QF56Z6LI.js.map} +0 -0
- /package/{companion-2LHKU577.js.map → companion-HBYSY2D5.js.map} +0 -0
- /package/{desktop-launcher-YPNRQMIS.js.map → desktop-launcher-GD4QPM66.js.map} +0 -0
- /package/{install-gate-2NNH7RM2.js.map → install-gate-JAEK4BDZ.js.map} +0 -0
- /package/{settings-manager-32SVMAFN.js.map → settings-manager-QVQRJO6V.js.map} +0 -0
- /package/{vault-resolver-VK6W5J6W.js.map → src-DCCEUWE6.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t,P as n,m as r,x as i}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{B as a,D as o,E as s,Ht as c,L as l,_ as u,b as d,bt as f,ct as p,en as m,ft as h,g,it as _,k as v,mt as y,nn as ee,o as b,qt as x,rn as S,tt as te,v as C,y as w}from"./runtime-core.esm-bundler-DujKY9QV.js";import{I as ne}from"./floating-ui.dom-DWhsZyqT.js";import{C as re,J as ie,P as ae,S as oe,U as se,d as ce,dt as T,ft as E,mt as le,q as ue,u as de}from"./src--GO-VSJ0.js";import{g as fe}from"./useApi-s_02lHjl-DZYO2tHU.js";import{a as pe,i as me}from"./scenario.store-D-JrRiVO.js";import{r as D}from"./trpc-DbsE5GvQ.js";import{t as he}from"./use-polling-CEkhIY_9.js";import{o as ge}from"./editor.api-Bef3xeth.js";import{i as _e}from"./AiChatModals-D1928AxG.js";import{t as ve}from"./editor.store-SoH48ux2.js";import{t as ye}from"./useAiChatDrawer-D_ofn8Eo.js";var be=E(v({__name:`MonacoDiffEditor`,props:{original:{},modified:{},language:{default:`plaintext`},height:{default:`100%`},theme:{default:`monokai`}},setup(e){window.MonacoEnvironment||(window.MonacoEnvironment={getWorker(){return new _e}}),ge.defineTheme(`monokai`,{base:`vs-dark`,inherit:!0,rules:[{token:`comment`,foreground:`75715E`,fontStyle:`italic`},{token:`string`,foreground:`E6DB74`},{token:`keyword`,foreground:`F92672`},{token:`number`,foreground:`AE81FF`},{token:`regexp`,foreground:`E6DB74`},{token:`type`,foreground:`66D9EF`,fontStyle:`italic`},{token:`type.identifier`,foreground:`A6E22E`},{token:`delimiter`,foreground:`F8F8F2`},{token:`delimiter.bracket`,foreground:`F8F8F2`},{token:`tag`,foreground:`F92672`},{token:`attribute.name`,foreground:`A6E22E`},{token:`attribute.value`,foreground:`E6DB74`},{token:`variable`,foreground:`F8F8F2`},{token:`variable.predefined`,foreground:`66D9EF`},{token:`constant`,foreground:`AE81FF`},{token:`function`,foreground:`A6E22E`},{token:`operator`,foreground:`F92672`},{token:`identifier`,foreground:`F8F8F2`},{token:`meta.tag`,foreground:`F92672`}],colors:{"editor.background":`#272822`,"editor.foreground":`#F8F8F2`,"editor.lineHighlightBackground":`#3E3D32`,"editor.selectionBackground":`#49483E`,"editorCursor.foreground":`#F8F8F0`,"editorWhitespace.foreground":`#464741`,"editorIndentGuide.background":`#464741`,"editorLineNumber.foreground":`#90908A`,"editorLineNumber.activeForeground":`#F8F8F2`,"diffEditor.insertedTextBackground":`#A6E22E26`,"diffEditor.removedTextBackground":`#F9267226`,"diffEditor.insertedLineBackground":`#A6E22E15`,"diffEditor.removedLineBackground":`#F9267215`}});let n=e,r=t(),i=null,a=null,o=null;return p(()=>{r.value&&(a=ge.createModel(n.original,n.language),o=ge.createModel(n.modified,n.language),i=ge.createDiffEditor(r.value,{theme:n.theme,readOnly:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,automaticLayout:!0,fontSize:13,fontFamily:`'Monaco', 'Menlo', 'Ubuntu Mono', Courier, monospace`,renderSideBySide:!0,overviewRulerLanes:0,scrollbar:{verticalScrollbarSize:8,horizontalScrollbarSize:8},originalEditable:!1,ignoreTrimWhitespace:!1}),i.setModel({original:a,modified:o}))}),_(()=>{a?.dispose(),o?.dispose(),i?.dispose(),a=null,o=null,i=null}),(t,n)=>(y(),d(`div`,{ref_key:`editorContainer`,ref:r,style:ee({height:e.height,width:`100%`}),class:`monaco-diff-container`},null,4))}}),[[`__scopeId`,`data-v-ef18ae8b`]]),xe={class:`git-panel`},Se={key:0,class:`git-panel__unavailable`},Ce={class:`git-panel__unavailable-title`},we={class:`git-panel__unavailable-detail`},Te={key:1,class:`git-panel__header`},Ee={class:`git-panel__branch`},De={class:`branch-name`},Oe={key:2,class:`upstream-label`},ke={class:`git-panel__actions`},Ae={class:`git-actions-menu`,role:`menu`},je=[`disabled`],Me={class:`git-panel__tabs`},Ne={key:0,class:`tab-badge`},Pe={key:0,class:`tab-badge`},Fe={class:`git-panel__file-list`},Ie={class:`git-commit-area`},Le={class:`commit-actions`},Re={class:`generate-popover`},ze={key:0,class:`git-empty`},Be={class:`git-section-header`},Ve=[`onClick`],He={class:`file-name`},Ue={class:`git-section-header`},We=[`onClick`],Ge={class:`file-name`},Ke={class:`file-actions`},qe={class:`git-section-header`},Je=[`onClick`],Ye={class:`file-name`},Xe={class:`git-panel__diff-pane`},Ze={class:`git-section-header diff-header`},Qe={class:`diff-header-actions`},$e={key:1,class:`diff-placeholder`},et={key:1,class:`git-panel__content`},tt={key:0,class:`git-empty`},nt={class:`commit-hash`},rt={class:`commit-info`},it={class:`commit-subject`},at={class:`commit-meta`},ot={key:2,class:`git-panel__content`},st={class:`git-section-header`},ct={class:`create-branch`},lt={class:`git-section-header`},ut={class:`branch-label`},dt={class:`git-section-header`},ft={class:`branch-label`},pt={key:3,class:`git-panel__content`},mt={class:`git-section-header`},ht={key:0,class:`git-stash-empty`},gt=[`title`],_t={class:`stash-ref`},vt=E(v({__name:`ServiceConfigGit`,props:{serviceId:{},agentId:{},projectId:{},orgId:{}},setup(n){let r=n,i=ae(),a=fe(),{t:c}=le(),l=ve(),_=t(),v=t(null),ee=t(null),te=t(!1),E=g(()=>r.serviceId?{serviceId:r.serviceId}:{agentId:r.agentId,projectId:r.projectId,orgId:r.orgId}),ge=g(()=>r.serviceId?l.getEffectiveEditor(r.serviceId):void 0),{openWithDiffContext:_e}=ye();function vt(){if(!Dt.value||!k.value)return;let e=`\`\`\`diff\n// ${k.value}\n${Dt.value}\n\`\`\``;_e(e)}async function yt(){let e=ge.value;if(e&&k.value&&r.serviceId)try{await D.editor.openFile.mutate({editorKey:e.key,serviceId:r.serviceId,relativePath:k.value})}catch(e){i.add({severity:`error`,summary:c(`git.errorTitle`),detail:e instanceof Error?e.message:String(e),life:4e3})}}let bt=t(!1),xt=t(!1),O=t(null),St=t([]),Ct=t({current:``,branches:[]}),wt=t([]),Tt=t(``),Et=t(``),Dt=t(``),Ot=t(``),kt=t(``),k=t(``),At=t(!1),A=t(`status`),jt=t(`origin`),j=t(``),Mt=t(null);function Nt(e){Mt.value?.hide(),e()}let Pt=t([]);function Ft(e){let t=e.toLowerCase();return t.includes(`fetch failed`)||t.includes(`http 404`)||t.includes(`agent`)&&(t.includes(`not found`)||t.includes(`not connected`))}let It=g(()=>wt.value.map(e=>({label:e.name,value:e.name}))),Lt=g(()=>!!O.value?.upstream),Rt=g(()=>Ct.value.branches.filter(e=>!e.remote));async function M(e,t){j.value=e;try{await t()}catch(e){let t=e instanceof Error?e.message:String(e);i.add({severity:`error`,summary:c(`git.errorTitle`),detail:t,life:6e3})}finally{j.value=``}}async function N(){bt.value=!0;try{let[e,t,n]=await Promise.all([D.git.status.query({...E.value}),D.git.branches.query({...E.value}),D.git.remotes.query({...E.value})]);xt.value=!1,O.value=e,Ct.value=t,wt.value=n,L(),wt.value.length&&!wt.value.find(e=>e.name===jt.value)&&(jt.value=wt.value[0]?.name??`origin`)}catch(e){let t=e instanceof Error?e.message:String(e);O.value=null,Ft(t)?xt.value=!0:(xt.value=!1,i.add({severity:`error`,summary:c(`git.errorTitle`),detail:t,life:6e3}))}finally{bt.value=!1}}async function zt(){try{let e=await D.git.status.query({...E.value});xt.value=!1,O.value=e}catch(e){Ft(e instanceof Error?e.message:String(e))&&(xt.value=!0)}}async function Bt(){try{let e=await D.git.log.query({...E.value,limit:50});St.value=e}catch(e){let t=e instanceof Error?e.message:String(e);Ft(t)||i.add({severity:`error`,summary:c(`git.errorTitle`),detail:t,life:6e3})}}function Vt(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,css:`css`,scss:`scss`,less:`less`,html:`html`,vue:`html`,xml:`xml`,yaml:`yaml`,yml:`yaml`,py:`python`,rs:`rust`,go:`go`,java:`java`,sh:`shell`,sql:`sql`,toml:`ini`,php:`php`,rb:`ruby`,c:`c`,cpp:`cpp`,h:`c`,hpp:`cpp`,swift:`swift`,kt:`kotlin`,lua:`lua`,r:`r`,pl:`perl`,bat:`bat`,ps1:`powershell`}[e.split(`.`).pop()?.toLowerCase()??``]||`plaintext`}let Ht=g(()=>k.value?Vt(k.value):`plaintext`);async function P(e,t=!1,n=!1){let r=await D.git.diff.query({...E.value,path:e,staged:t,untracked:n});Dt.value=r.diff,Ot.value=r.original,kt.value=r.modified,k.value=e??``,At.value=t}async function Ut(e){await M(`stage:`+e,async()=>{await D.git.stage.mutate({...E.value,paths:[e]}),await zt()})}async function Wt(){await M(`stageAll`,async()=>{await D.git.stageAll.mutate({...E.value}),await zt()})}async function Gt(e){await M(`unstage:`+e,async()=>{await D.git.unstage.mutate({...E.value,paths:[e]}),await zt()})}async function Kt(){await M(`unstageAll`,async()=>{await D.git.unstageAll.mutate({...E.value}),await zt()})}async function qt(e){await M(`discard:`+e,async()=>{await D.git.discard.mutate({...E.value,paths:[e]}),await zt()})}async function Jt(){await M(`generateCommit`,async()=>{let e=await D.git.generateCommitMessage.mutate({...E.value,providerId:v.value??void 0,model:ee.value??void 0});Tt.value=e.message})}async function Yt(){if(!Tt.value.trim()){i.add({severity:`warn`,summary:c(`git.errorTitle`),detail:c(`git.commitRequired`),life:3e3});return}await M(`commit`,async()=>{let e=await D.git.commit.mutate({...E.value,message:Tt.value});i.add({severity:`success`,summary:c(`git.committed`),detail:e.output,life:4e3}),Tt.value=``,await zt()})}async function Xt(){await M(`push`,async()=>{let e=await D.git.push.mutate({...E.value,remote:jt.value,setUpstream:!Lt.value});i.add({severity:`success`,summary:c(`git.pushed`),detail:e.output||c(`git.done`),life:4e3}),await N()})}async function Zt(){await M(`pull`,async()=>{let e=await D.git.pull.mutate({...E.value,remote:jt.value});i.add({severity:`success`,summary:c(`git.pulled`),detail:e.output||c(`git.done`),life:4e3}),await N()})}async function Qt(){await M(`fetch`,async()=>{await D.git.fetch.mutate({...E.value,remote:jt.value}),i.add({severity:`success`,summary:c(`git.fetched`),detail:c(`git.fetchedDetail`),life:3e3}),await N()})}async function $t(e){await M(`checkout`,async()=>{await D.git.checkout.mutate({...E.value,branch:e}),i.add({severity:`success`,summary:c(`git.checkedOut`),detail:e,life:3e3}),await N()})}async function F(e){await M(`merge-${e}`,async()=>{let t=await D.git.merge.mutate({...E.value,branch:e});i.add({severity:`success`,summary:c(`git.merged`),detail:t.output||c(`git.done`),life:4e3}),await N()})}async function I(e){await M(`rebase-${e}`,async()=>{let t=await D.git.rebase.mutate({...E.value,branch:e});i.add({severity:`success`,summary:c(`git.rebased`),detail:t.output||c(`git.done`),life:4e3}),await N()})}async function en(){Et.value.trim()&&await M(`create-branch`,async()=>{await D.git.checkout.mutate({...E.value,branch:Et.value,create:!0}),i.add({severity:`success`,summary:c(`git.branchCreated`),detail:Et.value,life:3e3}),Et.value=``,await N()})}let tn=g(()=>!!O.value&&O.value.staged.length+O.value.unstaged.length+O.value.untracked.length>0);async function L(){try{Pt.value=await D.git.stashList.query({...E.value})}catch{Pt.value=[]}}async function nn(){await M(`stash`,async()=>{let e=await D.git.stashPush.mutate({...E.value});i.add({severity:`success`,summary:c(`git.stashed`),detail:e.output||c(`git.done`),life:3e3}),await N(),await L()})}async function R(e){await M(`stash-pop-${e}`,async()=>{let t=await D.git.stashPop.mutate({...E.value,index:e});i.add({severity:`success`,summary:c(`git.stashPopped`),detail:t.output||c(`git.done`),life:3e3}),await N(),await L()})}async function z(e){await M(`stash-apply-${e}`,async()=>{let t=await D.git.stashApply.mutate({...E.value,index:e});i.add({severity:`success`,summary:c(`git.stashApplied`),detail:t.output||c(`git.done`),life:3e3}),await N(),await L()})}async function rn(e){await M(`stash-drop-${e}`,async()=>{await D.git.stashDrop.mutate({...E.value,index:e}),i.add({severity:`success`,summary:c(`git.stashDropped`),life:3e3}),await L()})}let an=null,on=he(N,1e4,`service-git:refresh`);function B(e){te.value=e>0,pe()&&console.log(`[git] AI providers:`,e,`→ selected:`,v.value)}return p(()=>{N(),an=D.git.onStatusChange.subscribe({...E.value},{onData(e){O.value=e,xt.value=!1},onError(e){let t=e?.message??``;t.includes(`PRECONDITION_FAILED`)||t.includes(`Unresolved variables`)}}),on.start()}),h(()=>{an?.unsubscribe(),an=null,on.stop()}),(t,n)=>(y(),d(`div`,xe,[xt.value?(y(),d(`div`,Se,[n[19]||=u(`i`,{class:`ti ti-server git-panel__unavailable-icon`},null,-1),u(`span`,Ce,S(e(c)(`git.agentUnavailable`)),1),u(`span`,we,S(e(c)(`git.agentUnavailableDetail`)),1),o(e(T),{label:e(c)(`git.retry`),icon:`ti ti-refresh`,size:`small`,onClick:N},null,8,[`label`])])):w(``,!0),xt.value?w(``,!0):(y(),d(`div`,Te,[u(`div`,Ee,[n[20]||=u(`i`,{class:`ti ti-brand-github`},null,-1),u(`span`,De,S(O.value?.branch??`…`),1),O.value&&O.value.ahead>0?(y(),C(e(se),{key:0,value:`↑${O.value.ahead}`,severity:`info`,class:`ahead-tag`},null,8,[`value`])):w(``,!0),O.value&&O.value.behind>0?(y(),C(e(se),{key:1,value:`↓${O.value.behind}`,severity:`warn`,class:`behind-tag`},null,8,[`value`])):w(``,!0),O.value?.upstream?(y(),d(`span`,Oe,`→ `+S(O.value.upstream),1)):w(``,!0)]),u(`div`,ke,[It.value.length?(y(),C(e(oe),{key:0,modelValue:jt.value,"onUpdate:modelValue":n[0]||=e=>jt.value=e,options:It.value,"option-label":`label`,"option-value":`value`,size:`small`,class:`remote-select`},null,8,[`modelValue`,`options`])):w(``,!0),o(e(T),{icon:`ti ti-refresh`,size:`small`,variant:`text`,title:e(c)(`git.refresh`),"aria-label":e(c)(`git.refresh`),loading:bt.value,onClick:N},null,8,[`title`,`aria-label`,`loading`]),o(e(T),{icon:`ti ti-chevron-down`,"icon-pos":`right`,label:e(c)(`git.actionsMenu`),size:`small`,variant:`outlined`,loading:!!j.value,"aria-haspopup":`menu`,onClick:n[1]||=e=>Mt.value?.toggle(e)},null,8,[`label`,`loading`]),o(e(re),{ref_key:`actionsMenu`,ref:Mt},{default:x(()=>[u(`div`,Ae,[u(`button`,{type:`button`,role:`menuitem`,class:`git-actions-menu__item`,onClick:n[2]||=e=>Nt(Zt)},[n[21]||=u(`i`,{class:`ti ti-download`,"aria-hidden":`true`},null,-1),u(`span`,null,S(e(c)(`git.pull`)),1)]),u(`button`,{type:`button`,role:`menuitem`,class:`git-actions-menu__item`,onClick:n[3]||=e=>Nt(Xt)},[n[22]||=u(`i`,{class:`ti ti-cloud-upload`,"aria-hidden":`true`},null,-1),u(`span`,null,S(e(c)(`git.push`)),1)]),u(`button`,{type:`button`,role:`menuitem`,class:`git-actions-menu__item`,onClick:n[4]||=e=>Nt(Qt)},[n[23]||=u(`i`,{class:`ti ti-refresh`,"aria-hidden":`true`},null,-1),u(`span`,null,S(e(c)(`git.fetch`)),1)]),u(`button`,{type:`button`,role:`menuitem`,class:`git-actions-menu__item`,disabled:!tn.value,onClick:n[5]||=e=>Nt(nn)},[n[24]||=u(`i`,{class:`ti ti-inbox`,"aria-hidden":`true`},null,-1),u(`span`,null,S(e(c)(`git.stash`)),1)],8,je)])]),_:1},512)])])),xt.value?w(``,!0):(y(),d(b,{key:2},[u(`div`,Me,[u(`button`,{class:m([`git-tab`,{active:A.value===`status`}]),onClick:n[6]||=e=>A.value=`status`},[n[25]||=u(`i`,{class:`ti ti-file-pencil`},null,-1),s(` `+S(e(c)(`git.tabChanges`))+` `,1),O.value?(y(),d(`span`,Ne,S(O.value.staged.length+O.value.unstaged.length+O.value.untracked.length),1)):w(``,!0)],2),u(`button`,{class:m([`git-tab`,{active:A.value===`log`}]),onClick:n[7]||=e=>{A.value=`log`,Bt()}},[n[26]||=u(`i`,{class:`ti ti-history`},null,-1),s(` `+S(e(c)(`git.tabHistory`)),1)],2),u(`button`,{class:m([`git-tab`,{active:A.value===`branches`}]),onClick:n[8]||=e=>A.value=`branches`},[n[27]||=u(`i`,{class:`ti ti-brand-github`},null,-1),s(` `+S(e(c)(`git.tabBranches`)),1)],2),u(`button`,{class:m([`git-tab`,{active:A.value===`stash`}]),onClick:n[9]||=e=>{A.value=`stash`,L()}},[n[28]||=u(`i`,{class:`ti ti-inbox`},null,-1),s(` `+S(e(c)(`git.tabStash`))+` `,1),Pt.value.length?(y(),d(`span`,Pe,S(Pt.value.length),1)):w(``,!0)],2)]),A.value===`status`?(y(),C(e(ce),{key:0,class:`git-panel__status-split`,"gutter-size":6},{default:x(()=>[o(e(de),{size:30,"min-size":15,class:`git-panel__file-list-panel`},{default:x(()=>[u(`div`,Fe,[u(`div`,Ie,[o(e(ue),{modelValue:Tt.value,"onUpdate:modelValue":n[10]||=e=>Tt.value=e,placeholder:e(c)(`git.commitPlaceholder`),rows:`3`,class:`commit-message`,"auto-resize":``},null,8,[`modelValue`,`placeholder`]),u(`div`,Le,[o(me,{modelValue:v.value,"onUpdate:modelValue":n[11]||=e=>v.value=e,model:ee.value,"onUpdate:model":n[12]||=e=>ee.value=e,"storage-key":`runeya.git.commitAi`,class:`commit-provider-select`,onLoaded:B},null,8,[`modelValue`,`model`]),o(e(T),{icon:`ti ti-sparkles`,label:e(c)(`git.generateMessage`),size:`small`,variant:`outlined`,disabled:!O.value?.staged.length||!te.value,loading:j.value===`generateCommit`,onClick:n[13]||=e=>te.value?Jt():void 0,onMouseenter:n[14]||=e=>te.value?void 0:_.value?.show(e),onMouseleave:n[15]||=e=>te.value?void 0:_.value?.hide()},null,8,[`label`,`disabled`,`loading`]),o(e(re),{ref_key:`generatePopover`,ref:_},{default:x(()=>[u(`div`,Re,[u(`p`,null,S(e(c)(`git.noProviderMessage`)),1),o(e(T),{label:e(c)(`git.goToSettings`),icon:`ti ti-settings`,size:`small`,variant:`text`,onClick:n[16]||=t=>{e(a).push({name:`settings`,query:{section:`ai`}}),_.value?.hide()}},null,8,[`label`])])]),_:1},512),o(e(T),{label:e(c)(`git.commit`),icon:`ti ti-check`,size:`small`,disabled:!Tt.value.trim()||!O.value?.staged.length,loading:j.value===`commit`,onClick:Yt},null,8,[`label`,`disabled`,`loading`])])]),O.value&&O.value.staged.length===0&&O.value.unstaged.length===0&&O.value.untracked.length===0?(y(),d(`div`,ze,[n[29]||=u(`i`,{class:`ti ti-circle-check`},null,-1),u(`span`,null,S(e(c)(`git.workingTreeClean`)),1)])):w(``,!0),O.value&&O.value.staged.length>0?(y(),d(b,{key:1},[u(`div`,Be,[u(`span`,null,S(e(c)(`git.staged`,{count:O.value.staged.length})),1),o(e(T),{size:`small`,variant:`text`,label:e(c)(`git.unstageAll`),onClick:Kt},null,8,[`label`])]),(y(!0),d(b,null,f(O.value.staged,t=>(y(),d(`div`,{key:`staged-`+t,class:m([`git-file staged`,{selected:k.value===t&&At.value}]),onClick:e=>P(t,!0)},[n[30]||=u(`i`,{class:`ti ti-plus file-icon`},null,-1),u(`span`,He,S(t),1),o(e(T),{icon:`ti ti-minus`,size:`small`,variant:`text`,severity:`secondary`,class:`file-action`,title:e(c)(`git.unstage`),onClick:ne(e=>Gt(t),[`stop`])},null,8,[`title`,`onClick`])],10,Ve))),128))],64)):w(``,!0),O.value&&O.value.unstaged.length>0?(y(),d(b,{key:2},[u(`div`,Ue,[u(`span`,null,S(e(c)(`git.unstaged`,{count:O.value.unstaged.length})),1),o(e(T),{size:`small`,variant:`text`,label:e(c)(`git.stageAll`),onClick:Wt},null,8,[`label`])]),(y(!0),d(b,null,f(O.value.unstaged,t=>(y(),d(`div`,{key:`unstaged-`+t,class:m([`git-file unstaged`,{selected:k.value===t&&!At.value}]),onClick:e=>P(t,!1)},[n[31]||=u(`i`,{class:`ti ti-pencil file-icon`},null,-1),u(`span`,Ge,S(t),1),u(`div`,Ke,[o(e(T),{icon:`ti ti-plus`,size:`small`,variant:`text`,title:e(c)(`git.stage`),class:`file-action`,onClick:ne(e=>Ut(t),[`stop`])},null,8,[`title`,`onClick`]),o(e(T),{icon:`ti ti-trash`,size:`small`,variant:`text`,severity:`danger`,title:e(c)(`git.discard`),class:`file-action`,onClick:ne(e=>qt(t),[`stop`])},null,8,[`title`,`onClick`])])],10,We))),128))],64)):w(``,!0),O.value&&O.value.untracked.length>0?(y(),d(b,{key:3},[u(`div`,qe,[u(`span`,null,S(e(c)(`git.untracked`,{count:O.value.untracked.length})),1)]),(y(!0),d(b,null,f(O.value.untracked,t=>(y(),d(`div`,{key:`untracked-`+t,class:`git-file untracked`,onClick:e=>P(t,!1,!0)},[n[32]||=u(`i`,{class:`ti ti-help-circle file-icon`},null,-1),u(`span`,Ye,S(t),1),o(e(T),{icon:`ti ti-plus`,size:`small`,variant:`text`,title:e(c)(`git.stage`),class:`file-action`,onClick:ne(e=>Ut(t),[`stop`])},null,8,[`title`,`onClick`])],8,Je))),128))],64)):w(``,!0)])]),_:1}),o(e(de),{size:70,"min-size":30,class:`git-panel__diff-pane-panel`},{default:x(()=>[u(`div`,Xe,[k.value?(y(),d(b,{key:0},[u(`div`,Ze,[u(`span`,null,S(e(c)(`git.diff`,{path:k.value||`all`})),1),u(`div`,Qe,[o(e(T),{icon:`ti ti-message`,size:`small`,variant:`text`,title:e(c)(`git.askAiAboutDiff`),onClick:vt},null,8,[`title`]),ge.value?(y(),C(e(T),{key:0,icon:`ti ti-external-link`,size:`small`,variant:`text`,title:e(c)(`git.openInEditor`,{editor:ge.value.name}),onClick:yt},null,8,[`title`])):w(``,!0),o(e(T),{icon:`ti ti-x`,size:`small`,variant:`text`,onClick:n[17]||=e=>{k.value=``,Dt.value=``,Ot.value=``,kt.value=``}})])]),(y(),C(be,{key:k.value+`:`+At.value,original:Ot.value,modified:kt.value,language:Ht.value,height:`100%`},null,8,[`original`,`modified`,`language`]))],64)):(y(),d(`div`,$e,[n[33]||=u(`i`,{class:`ti ti-code`},null,-1),u(`span`,null,S(e(c)(`git.selectFileForDiff`)),1)]))])]),_:1})]),_:1})):A.value===`log`?(y(),d(`div`,et,[St.value.length===0?(y(),d(`div`,tt,[n[34]||=u(`i`,{class:`ti ti-history`},null,-1),u(`span`,null,S(e(c)(`git.noCommits`)),1)])):w(``,!0),(y(!0),d(b,null,f(St.value,e=>(y(),d(`div`,{key:e.hash,class:`git-commit-entry`},[u(`div`,nt,S(e.shortHash),1),u(`div`,rt,[u(`div`,it,S(e.subject),1),u(`div`,at,S(e.author)+` · `+S(new Date(e.date).toLocaleString()),1)])]))),128))])):A.value===`branches`?(y(),d(`div`,ot,[u(`div`,st,S(e(c)(`git.newBranch`)),1),u(`div`,ct,[o(e(ie),{modelValue:Et.value,"onUpdate:modelValue":n[18]||=e=>Et.value=e,placeholder:e(c)(`git.branchNamePlaceholder`),size:`small`,class:`branch-input`},null,8,[`modelValue`,`placeholder`]),o(e(T),{label:e(c)(`git.createAndCheckout`),icon:`ti ti-plus`,size:`small`,disabled:!Et.value.trim(),loading:j.value===`create-branch`,onClick:en},null,8,[`label`,`disabled`,`loading`])]),u(`div`,lt,S(e(c)(`git.localBranches`,{count:Rt.value.length})),1),(y(!0),d(b,null,f(Rt.value,t=>(y(),d(`div`,{key:t.name,class:m([`git-branch-entry`,{current:t.current}])},[n[35]||=u(`i`,{class:`ti ti-brand-github branch-icon`},null,-1),u(`span`,ut,S(t.name),1),t.current?(y(),C(e(se),{key:0,value:e(c)(`git.current`),severity:`success`,class:`current-tag`},null,8,[`value`])):(y(),C(e(T),{key:1,label:e(c)(`git.checkout`),size:`small`,variant:`text`,loading:j.value===`checkout`,class:`checkout-btn`,onClick:e=>$t(t.name)},null,8,[`label`,`loading`,`onClick`])),t.current?w(``,!0):(y(),C(e(T),{key:2,label:e(c)(`git.merge`),size:`small`,variant:`text`,severity:`secondary`,loading:j.value===`merge-${t.name}`,class:`checkout-btn`,onClick:e=>F(t.name)},null,8,[`label`,`loading`,`onClick`])),t.current?w(``,!0):(y(),C(e(T),{key:3,label:e(c)(`git.rebase`),size:`small`,variant:`text`,severity:`secondary`,loading:j.value===`rebase-${t.name}`,class:`checkout-btn`,onClick:e=>I(t.name)},null,8,[`label`,`loading`,`onClick`]))],2))),128)),Ct.value.branches.filter(e=>e.remote).length?(y(),d(b,{key:0},[u(`div`,dt,S(e(c)(`git.remoteBranches`)),1),(y(!0),d(b,null,f(Ct.value.branches.filter(e=>e.remote),e=>(y(),d(`div`,{key:e.name,class:`git-branch-entry remote`},[n[36]||=u(`i`,{class:`ti ti-world branch-icon`},null,-1),u(`span`,ft,S(e.name.replace(/^remotes\//,``)),1)]))),128))],64)):w(``,!0)])):A.value===`stash`?(y(),d(`div`,pt,[u(`div`,mt,S(e(c)(`git.stashes`,{count:Pt.value.length})),1),Pt.value.length?w(``,!0):(y(),d(`div`,ht,S(e(c)(`git.noStashes`)),1)),(y(!0),d(b,null,f(Pt.value,t=>(y(),d(`div`,{key:t.ref,class:`git-stash-entry`},[n[37]||=u(`i`,{class:`ti ti-inbox stash-icon`},null,-1),u(`span`,{class:`stash-label`,title:t.message},[u(`span`,_t,`stash@`+S(`{`)+S(t.index)+S(`}`),1),s(` `+S(t.message),1)],8,gt),o(e(T),{label:e(c)(`git.stashPop`),size:`small`,variant:`text`,loading:j.value===`stash-pop-${t.index}`,class:`checkout-btn`,onClick:e=>R(t.index)},null,8,[`label`,`loading`,`onClick`]),o(e(T),{label:e(c)(`git.stashApply`),size:`small`,variant:`text`,severity:`secondary`,loading:j.value===`stash-apply-${t.index}`,class:`checkout-btn`,onClick:e=>z(t.index)},null,8,[`label`,`loading`,`onClick`]),o(e(T),{label:e(c)(`git.stashDrop`),size:`small`,variant:`text`,severity:`danger`,loading:j.value===`stash-drop-${t.index}`,class:`checkout-btn`,onClick:e=>rn(t.index)},null,8,[`label`,`loading`,`onClick`])]))),128))])):w(``,!0)],64))]))}}),[[`__scopeId`,`data-v-3eb1f17d`]]),yt=Object.defineProperty,bt=Object.getOwnPropertySymbols,xt=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,St=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ct=(e,t)=>{for(var n in t||={})xt.call(t,n)&&St(e,n,t[n]);if(bt)for(var n of bt(t))O.call(t,n)&&St(e,n,t[n]);return e},wt=(e,t)=>{var n={};for(var r in e)xt.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&bt)for(var r of bt(e))t.indexOf(r)<0&&O.call(e,r)&&(n[r]=e[r]);return n},Tt=`[vue-draggable-plus]: `;function Et(e){console.warn(Tt+e)}function Dt(e){console.error(Tt+e)}function Ot(e,t,n){return n>=0&&n<e.length&&e.splice(n,0,e.splice(t,1)[0]),e}function kt(e){return e.replace(/-(\w)/g,(e,t)=>t?t.toUpperCase():``)}function k(e){return Object.keys(e).reduce((t,n)=>(e[n]!==void 0&&(t[kt(n)]=e[n]),t),{})}function At(e,t){return Array.isArray(e)&&e.splice(t,1),e}function A(e,t,n){return Array.isArray(e)&&e.splice(t,0,n),e}function jt(e){return e===void 0}function j(e){return typeof e==`string`}function Mt(e,t,n){let r=e.children[n];e.insertBefore(t,r)}function Nt(e){e.parentNode&&e.parentNode.removeChild(e)}function Pt(e,t=document){let n=null;return n=typeof t?.querySelector==`function`?(t?.querySelector)?.call(t,e):document.querySelector(e),n||Et(`Element not found: ${e}`),n}function Ft(e,t,n=null){return function(...r){return e.apply(n,r),t.apply(n,r)}}function It(e,t){let n=Ct({},e);return Object.keys(t).forEach(r=>{n[r]?n[r]=Ft(e[r],t[r]):n[r]=t[r]}),n}function Lt(e){return e instanceof HTMLElement}function Rt(e,t){Object.keys(e).forEach(n=>{t(n,e[n])})}function M(e){return e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97)}var N=Object.assign;function zt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Bt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?zt(Object(n),!0).forEach(function(t){Ht(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Vt(e){"@babel/helpers - typeof";return Vt=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},Vt(e)}function Ht(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(){return P=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},P.apply(this,arguments)}function Ut(e,t){if(e==null)return{};for(var n={},r=Object.keys(e),i,a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function Wt(e,t){if(e==null)return{};var n=Ut(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var Gt=`1.15.2`;function Kt(e){if(typeof window<`u`&&window.navigator)return!!navigator.userAgent.match(e)}var qt=Kt(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Jt=Kt(/Edge/i),Yt=Kt(/firefox/i),Xt=Kt(/safari/i)&&!Kt(/chrome/i)&&!Kt(/android/i),Zt=Kt(/iP(ad|od|hone)/i),Qt=Kt(/chrome/i)&&Kt(/android/i),$t={capture:!1,passive:!1};function F(e,t,n){e.addEventListener(t,n,!qt&&$t)}function I(e,t,n){e.removeEventListener(t,n,!qt&&$t)}function en(e,t){if(t){if(t[0]===`>`&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function tn(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function L(e,t,n,r){if(e){n||=document;do{if(t!=null&&(t[0]===`>`?e.parentNode===n&&en(e,t):en(e,t))||r&&e===n)return e;if(e===n)break}while(e=tn(e))}return null}var nn=/\s+/g;function R(e,t,n){e&&t&&(e.classList?e.classList[n?`add`:`remove`](t):e.className=((` `+e.className+` `).replace(nn,` `).replace(` `+t+` `,` `)+(n?` `+t:``)).replace(nn,` `))}function z(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,``):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf(`webkit`)===-1&&(t=`-webkit-`+t),r[t]=n+(typeof n==`string`?``:`px`)}}function rn(e,t){var n=``;if(typeof e==`string`)n=e;else do{var r=z(e,`transform`);r&&r!==`none`&&(n=r+` `+n)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function an(e,t,n){if(e){var r=e.getElementsByTagName(t),i=0,a=r.length;if(n)for(;i<a;i++)n(r[i],i);return r}return[]}function on(){return document.scrollingElement||document.documentElement}function B(e,t,n,r,i){if(e.getBoundingClientRect||e===window){var a,o,s,c,l,u,d;if(e!==window&&e.parentNode&&e!==on()?(a=e.getBoundingClientRect(),o=a.top,s=a.left,c=a.bottom,l=a.right,u=a.height,d=a.width):(o=0,s=0,c=window.innerHeight,l=window.innerWidth,u=window.innerHeight,d=window.innerWidth),(t||n)&&e!==window&&(i||=e.parentNode,!qt))do if(i&&i.getBoundingClientRect&&(z(i,`transform`)!==`none`||n&&z(i,`position`)!==`static`)){var f=i.getBoundingClientRect();o-=f.top+parseInt(z(i,`border-top-width`)),s-=f.left+parseInt(z(i,`border-left-width`)),c=o+a.height,l=s+a.width;break}while(i=i.parentNode);if(r&&e!==window){var p=rn(i||e),m=p&&p.a,h=p&&p.d;p&&(o/=h,s/=m,d/=m,u/=h,c=o+u,l=s+d)}return{top:o,left:s,bottom:c,right:l,width:d,height:u}}}function sn(e,t,n){for(var r=pn(e,!0),i=B(e)[t];r;){var a=B(r)[n],o=void 0;if(o=i>=a,!o)return r;if(r===on())break;r=pn(r,!1)}return!1}function cn(e,t,n,r){for(var i=0,a=0,o=e.children;a<o.length;){if(o[a].style.display!==`none`&&o[a]!==Q.ghost&&(r||o[a]!==Q.dragged)&&L(o[a],n.draggable,e,!1)){if(i===t)return o[a];i++}a++}return null}function ln(e,t){for(var n=e.lastElementChild;n&&(n===Q.ghost||z(n,`display`)===`none`||t&&!en(n,t));)n=n.previousElementSibling;return n||null}function un(e,t){var n=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)e.nodeName.toUpperCase()!==`TEMPLATE`&&e!==Q.clone&&(!t||en(e,t))&&n++;return n}function dn(e){var t=0,n=0,r=on();if(e)do{var i=rn(e),a=i.a,o=i.d;t+=e.scrollLeft*a,n+=e.scrollTop*o}while(e!==r&&(e=e.parentNode));return[t,n]}function fn(e,t){for(var n in e)if(e.hasOwnProperty(n)){for(var r in t)if(t.hasOwnProperty(r)&&t[r]===e[n][r])return Number(n)}return-1}function pn(e,t){if(!e||!e.getBoundingClientRect)return on();var n=e,r=!1;do if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var i=z(n);if(n.clientWidth<n.scrollWidth&&(i.overflowX==`auto`||i.overflowX==`scroll`)||n.clientHeight<n.scrollHeight&&(i.overflowY==`auto`||i.overflowY==`scroll`)){if(!n.getBoundingClientRect||n===document.body)return on();if(r||t)return n;r=!0}}while(n=n.parentNode);return on()}function mn(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function hn(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}var gn;function _n(e,t){return function(){if(!gn){var n=arguments,r=this;n.length===1?e.call(r,n[0]):e.apply(r,n),gn=setTimeout(function(){gn=void 0},t)}}}function vn(){clearTimeout(gn),gn=void 0}function yn(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function bn(e){var t=window.Polymer,n=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(!0):n?n(e).clone(!0)[0]:e.cloneNode(!0)}function xn(e,t,n){var r={};return Array.from(e.children).forEach(function(i){if(L(i,t.draggable,e,!1)&&!i.animated&&i!==n){var a=B(i);r.left=Math.min(r.left??1/0,a.left),r.top=Math.min(r.top??1/0,a.top),r.right=Math.max(r.right??-1/0,a.right),r.bottom=Math.max(r.bottom??-1/0,a.bottom)}}),r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}var V=`Sortable`+new Date().getTime();function Sn(){var e=[],t;return{captureAnimationState:function(){e=[],this.options.animation&&[].slice.call(this.el.children).forEach(function(t){if(z(t,`display`)!==`none`&&t!==Q.ghost){e.push({target:t,rect:B(t)});var n=Bt({},e[e.length-1].rect);if(t.thisAnimationDuration){var r=rn(t,!0);r&&(n.top-=r.f,n.left-=r.e)}t.fromRect=n}})},addAnimationState:function(t){e.push(t)},removeAnimationState:function(t){e.splice(fn(e,{target:t}),1)},animateAll:function(n){var r=this;if(!this.options.animation){clearTimeout(t),typeof n==`function`&&n();return}var i=!1,a=0;e.forEach(function(e){var t=0,n=e.target,o=n.fromRect,s=B(n),c=n.prevFromRect,l=n.prevToRect,u=e.rect,d=rn(n,!0);d&&(s.top-=d.f,s.left-=d.e),n.toRect=s,n.thisAnimationDuration&&hn(c,s)&&!hn(o,s)&&(u.top-s.top)/(u.left-s.left)===(o.top-s.top)/(o.left-s.left)&&(t=wn(u,c,l,r.options)),hn(s,o)||(n.prevFromRect=o,n.prevToRect=s,t||=r.options.animation,r.animate(n,u,s,t)),t&&(i=!0,a=Math.max(a,t),clearTimeout(n.animationResetTimer),n.animationResetTimer=setTimeout(function(){n.animationTime=0,n.prevFromRect=null,n.fromRect=null,n.prevToRect=null,n.thisAnimationDuration=null},t),n.thisAnimationDuration=t)}),clearTimeout(t),i?t=setTimeout(function(){typeof n==`function`&&n()},a):typeof n==`function`&&n(),e=[]},animate:function(e,t,n,r){if(r){z(e,`transition`,``),z(e,`transform`,``);var i=rn(this.el),a=i&&i.a,o=i&&i.d,s=(t.left-n.left)/(a||1),c=(t.top-n.top)/(o||1);e.animatingX=!!s,e.animatingY=!!c,z(e,`transform`,`translate3d(`+s+`px,`+c+`px,0)`),this.forRepaintDummy=Cn(e),z(e,`transition`,`transform `+r+`ms`+(this.options.easing?` `+this.options.easing:``)),z(e,`transform`,`translate3d(0,0,0)`),typeof e.animated==`number`&&clearTimeout(e.animated),e.animated=setTimeout(function(){z(e,`transition`,``),z(e,`transform`,``),e.animated=!1,e.animatingX=!1,e.animatingY=!1},r)}}}}function Cn(e){return e.offsetWidth}function wn(e,t,n,r){return Math.sqrt((t.top-e.top)**2+(t.left-e.left)**2)/Math.sqrt((t.top-n.top)**2+(t.left-n.left)**2)*r.animation}var Tn=[],En={initializeByDefault:!0},Dn={mount:function(e){for(var t in En)En.hasOwnProperty(t)&&!(t in e)&&(e[t]=En[t]);Tn.forEach(function(t){if(t.pluginName===e.pluginName)throw`Sortable: Cannot mount plugin ${e.pluginName} more than once`}),Tn.push(e)},pluginEvent:function(e,t,n){var r=this;this.eventCanceled=!1,n.cancel=function(){r.eventCanceled=!0};var i=e+`Global`;Tn.forEach(function(r){t[r.pluginName]&&(t[r.pluginName][i]&&t[r.pluginName][i](Bt({sortable:t},n)),t.options[r.pluginName]&&t[r.pluginName][e]&&t[r.pluginName][e](Bt({sortable:t},n)))})},initializePlugins:function(e,t,n,r){for(var i in Tn.forEach(function(r){var i=r.pluginName;if(e.options[i]||r.initializeByDefault){var a=new r(e,t,e.options);a.sortable=e,a.options=e.options,e[i]=a,P(n,a.defaults)}}),e.options)if(e.options.hasOwnProperty(i)){var a=this.modifyOption(e,i,e.options[i]);a!==void 0&&(e.options[i]=a)}},getEventProperties:function(e,t){var n={};return Tn.forEach(function(r){typeof r.eventProperties==`function`&&P(n,r.eventProperties.call(t[r.pluginName],e))}),n},modifyOption:function(e,t,n){var r;return Tn.forEach(function(i){e[i.pluginName]&&i.optionListeners&&typeof i.optionListeners[t]==`function`&&(r=i.optionListeners[t].call(e[i.pluginName],n))}),r}};function On(e){var t=e.sortable,n=e.rootEl,r=e.name,i=e.targetEl,a=e.cloneEl,o=e.toEl,s=e.fromEl,c=e.oldIndex,l=e.newIndex,u=e.oldDraggableIndex,d=e.newDraggableIndex,f=e.originalEvent,p=e.putSortable,m=e.extraEventProperties;if(t||=n&&n[V],t){var h,g=t.options,_=`on`+r.charAt(0).toUpperCase()+r.substr(1);window.CustomEvent&&!qt&&!Jt?h=new CustomEvent(r,{bubbles:!0,cancelable:!0}):(h=document.createEvent(`Event`),h.initEvent(r,!0,!0)),h.to=o||n,h.from=s||n,h.item=i||n,h.clone=a,h.oldIndex=c,h.newIndex=l,h.oldDraggableIndex=u,h.newDraggableIndex=d,h.originalEvent=f,h.pullMode=p?p.lastPutMode:void 0;var v=Bt(Bt({},m),Dn.getEventProperties(r,t));for(var y in v)h[y]=v[y];n&&n.dispatchEvent(h),g[_]&&g[_].call(t,h)}}var kn=[`evt`],H=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.evt,i=Wt(n,kn);Dn.pluginEvent.bind(Q)(e,t,Bt({dragEl:W,parentEl:G,ghostEl:K,rootEl:q,nextEl:An,lastDownEl:jn,cloneEl:J,cloneHidden:Mn,dragStarted:Kn,putSortable:X,activeSortable:Q.active,originalEvent:r,oldIndex:Nn,oldDraggableIndex:Pn,newIndex:Y,newDraggableIndex:Fn,hideGhostForTarget:ur,unhideGhostForTarget:dr,cloneNowHidden:function(){Mn=!0},cloneNowShown:function(){Mn=!1},dispatchSortableEvent:function(e){U({sortable:t,name:e,originalEvent:r})}},i))};function U(e){On(Bt({putSortable:X,cloneEl:J,targetEl:W,rootEl:q,oldIndex:Nn,oldDraggableIndex:Pn,newIndex:Y,newDraggableIndex:Fn},e))}var W,G,K,q,An,jn,J,Mn,Nn,Y,Pn,Fn,In,X,Ln=!1,Rn=!1,zn=[],Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn=!1,Xn=!1,Zn,Z,Qn=[],$n=!1,er=[],tr=typeof document<`u`,nr=Zt,rr=Jt||qt?`cssFloat`:`float`,ir=tr&&!Qt&&!Zt&&`draggable`in document.createElement(`div`),ar=function(){if(tr){if(qt)return!1;var e=document.createElement(`x`);return e.style.cssText=`pointer-events:auto`,e.style.pointerEvents===`auto`}}(),or=function(e,t){var n=z(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),i=cn(e,0,t),a=cn(e,1,t),o=i&&z(i),s=a&&z(a),c=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+B(i).width,l=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(i&&o.float&&o.float!==`none`){var u=o.float===`left`?`left`:`right`;return a&&(s.clear===`both`||s.clear===u)?`vertical`:`horizontal`}return i&&(o.display===`block`||o.display===`flex`||o.display===`table`||o.display===`grid`||c>=r&&n[rr]===`none`||a&&n[rr]===`none`&&c+l>r)?`vertical`:`horizontal`},sr=function(e,t,n){var r=n?e.left:e.top,i=n?e.right:e.bottom,a=n?e.width:e.height,o=n?t.left:t.top,s=n?t.right:t.bottom,c=n?t.width:t.height;return r===o||i===s||r+a/2===o+c/2},cr=function(e,t){var n;return zn.some(function(r){var i=r[V].options.emptyInsertThreshold;if(i&&!ln(r)){var a=B(r),o=e>=a.left-i&&e<=a.right+i,s=t>=a.top-i&&t<=a.bottom+i;if(o&&s)return n=r}}),n},lr=function(e){function t(e,n){return function(r,i,a,o){var s=r.options.group.name&&i.options.group.name&&r.options.group.name===i.options.group.name;if(e==null&&(n||s))return!0;if(e==null||e===!1)return!1;if(n&&e===`clone`)return e;if(typeof e==`function`)return t(e(r,i,a,o),n)(r,i,a,o);var c=(n?r:i).options.group.name;return e===!0||typeof e==`string`&&e===c||e.join&&e.indexOf(c)>-1}}var n={},r=e.group;(!r||Vt(r)!=`object`)&&(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},ur=function(){!ar&&K&&z(K,`display`,`none`)},dr=function(){!ar&&K&&z(K,`display`,``)};tr&&!Qt&&document.addEventListener(`click`,function(e){if(Rn)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Rn=!1,!1},!0);var fr=function(e){if(W){e=e.touches?e.touches[0]:e;var t=cr(e.clientX,e.clientY);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[V]._onDragOver(n)}}},pr=function(e){W&&W.parentNode[V]._isOutsideThisEl(e.target)};function Q(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw`Sortable: \`el\` must be an HTMLElement, not ${{}.toString.call(e)}`;this.el=e,this.options=t=P({},t),e[V]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?`>li`:`>*`,swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return or(e,this.options)},ghostClass:`sortable-ghost`,chosenClass:`sortable-chosen`,dragClass:`sortable-drag`,ignore:`a, img`,filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData(`Text`,t.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:Q.supportPointer!==!1&&`PointerEvent`in window&&!Xt,emptyInsertThreshold:5};for(var r in Dn.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var i in lr(t),this)i.charAt(0)===`_`&&typeof this[i]==`function`&&(this[i]=this[i].bind(this));this.nativeDraggable=!t.forceFallback&&ir,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?F(e,`pointerdown`,this._onTapStart):(F(e,`mousedown`,this._onTapStart),F(e,`touchstart`,this._onTapStart)),this.nativeDraggable&&(F(e,`dragover`,this),F(e,`dragenter`,this)),zn.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),P(this,Sn())}Q.prototype={constructor:Q,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(qn=null)},_getDirection:function(e,t){return typeof this.options.direction==`function`?this.options.direction.call(this,e,t,W):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,i=r.preventOnFilter,a=e.type,o=e.touches&&e.touches[0]||e.pointerType&&e.pointerType===`touch`&&e,s=(o||e).target,c=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,l=r.filter;if(Cr(n),!W&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||r.disabled)&&!c.isContentEditable&&!(!this.nativeDraggable&&Xt&&s&&s.tagName.toUpperCase()===`SELECT`)&&(s=L(s,r.draggable,n,!1),!(s&&s.animated)&&jn!==s)){if(Nn=un(s),Pn=un(s,r.draggable),typeof l==`function`){if(l.call(this,e,s,this)){U({sortable:t,rootEl:c,name:`filter`,targetEl:s,toEl:n,fromEl:n}),H(`filter`,t,{evt:e}),i&&e.cancelable&&e.preventDefault();return}}else if(l&&(l=l.split(`,`).some(function(r){if(r=L(c,r.trim(),n,!1),r)return U({sortable:t,rootEl:r,name:`filter`,targetEl:s,fromEl:n,toEl:n}),H(`filter`,t,{evt:e}),!0}),l)){i&&e.cancelable&&e.preventDefault();return}r.handle&&!L(c,r.handle,n,!1)||this._prepareDragStart(e,o,s)}}},_prepareDragStart:function(e,t,n){var r=this,i=r.el,a=r.options,o=i.ownerDocument,s;if(n&&!W&&n.parentNode===i){var c=B(n);if(q=i,W=n,G=W.parentNode,An=W.nextSibling,jn=n,In=a.group,Q.dragged=W,Bn={target:W,clientX:(t||e).clientX,clientY:(t||e).clientY},Wn=Bn.clientX-c.left,Gn=Bn.clientY-c.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,W.style[`will-change`]=`all`,s=function(){if(H(`delayEnded`,r,{evt:e}),Q.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!Yt&&r.nativeDraggable&&(W.draggable=!0),r._triggerDragStart(e,t),U({sortable:r,name:`choose`,originalEvent:e}),R(W,a.chosenClass,!0)},a.ignore.split(`,`).forEach(function(e){an(W,e.trim(),gr)}),F(o,`dragover`,fr),F(o,`mousemove`,fr),F(o,`touchmove`,fr),F(o,`mouseup`,r._onDrop),F(o,`touchend`,r._onDrop),F(o,`touchcancel`,r._onDrop),Yt&&this.nativeDraggable&&(this.options.touchStartThreshold=4,W.draggable=!0),H(`delayStart`,this,{evt:e}),a.delay&&(!a.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(Jt||qt))){if(Q.eventCanceled){this._onDrop();return}F(o,`mouseup`,r._disableDelayedDrag),F(o,`touchend`,r._disableDelayedDrag),F(o,`touchcancel`,r._disableDelayedDrag),F(o,`mousemove`,r._delayedDragTouchMoveHandler),F(o,`touchmove`,r._delayedDragTouchMoveHandler),a.supportPointer&&F(o,`pointermove`,r._delayedDragTouchMoveHandler),r._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(){W&&gr(W),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,`mousemove`,this._delayedDragTouchMoveHandler),I(e,`touchmove`,this._delayedDragTouchMoveHandler),I(e,`pointermove`,this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t||=e.pointerType==`touch`&&e,!this.nativeDraggable||t?this.options.supportPointer?F(document,`pointermove`,this._onTouchMove):t?F(document,`touchmove`,this._onTouchMove):F(document,`mousemove`,this._onTouchMove):(F(W,`dragend`,this),F(q,`dragstart`,this._onDragStart));try{document.selection?wr(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(Ln=!1,q&&W){H(`dragStarted`,this,{evt:t}),this.nativeDraggable&&F(document,`dragover`,pr);var n=this.options;!e&&R(W,n.dragClass,!1),R(W,n.ghostClass,!0),Q.active=this,e&&this._appendGhost(),U({sortable:this,name:`start`,originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(Vn){this._lastX=Vn.clientX,this._lastY=Vn.clientY,ur();for(var e=document.elementFromPoint(Vn.clientX,Vn.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(Vn.clientX,Vn.clientY),e!==t);)t=e;if(W.parentNode[V]._isOutsideThisEl(e),t)do{if(t[V]){var n=void 0;if(n=t[V]._onDragOver({clientX:Vn.clientX,clientY:Vn.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);dr()}},_onTouchMove:function(e){if(Bn){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,i=e.touches?e.touches[0]:e,a=K&&rn(K,!0),o=K&&a&&a.a,s=K&&a&&a.d,c=nr&&Z&&dn(Z),l=(i.clientX-Bn.clientX+r.x)/(o||1)+(c?c[0]-Qn[0]:0)/(o||1),u=(i.clientY-Bn.clientY+r.y)/(s||1)+(c?c[1]-Qn[1]:0)/(s||1);if(!Q.active&&!Ln){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(K){a?(a.e+=l-(Hn||0),a.f+=u-(Un||0)):a={a:1,b:0,c:0,d:1,e:l,f:u};var d=`matrix(${a.a},${a.b},${a.c},${a.d},${a.e},${a.f})`;z(K,`webkitTransform`,d),z(K,`mozTransform`,d),z(K,`msTransform`,d),z(K,`transform`,d),Hn=l,Un=u,Vn=i}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!K){var e=this.options.fallbackOnBody?document.body:q,t=B(W,!0,nr,!0,e),n=this.options;if(nr){for(Z=e;z(Z,`position`)===`static`&&z(Z,`transform`)===`none`&&Z!==document;)Z=Z.parentNode;Z!==document.body&&Z!==document.documentElement?(Z===document&&(Z=on()),t.top+=Z.scrollTop,t.left+=Z.scrollLeft):Z=on(),Qn=dn(Z)}K=W.cloneNode(!0),R(K,n.ghostClass,!1),R(K,n.fallbackClass,!0),R(K,n.dragClass,!0),z(K,`transition`,``),z(K,`transform`,``),z(K,`box-sizing`,`border-box`),z(K,`margin`,0),z(K,`top`,t.top),z(K,`left`,t.left),z(K,`width`,t.width),z(K,`height`,t.height),z(K,`opacity`,`0.8`),z(K,`position`,nr?`absolute`:`fixed`),z(K,`zIndex`,`100000`),z(K,`pointerEvents`,`none`),Q.ghost=K,e.appendChild(K),z(K,`transform-origin`,Wn/parseInt(K.style.width)*100+`% `+Gn/parseInt(K.style.height)*100+`%`)}},_onDragStart:function(e,t){var n=this,r=e.dataTransfer,i=n.options;if(H(`dragStart`,this,{evt:e}),Q.eventCanceled){this._onDrop();return}H(`setupClone`,this),Q.eventCanceled||(J=bn(W),J.removeAttribute(`id`),J.draggable=!1,J.style[`will-change`]=``,this._hideClone(),R(J,this.options.chosenClass,!1),Q.clone=J),n.cloneId=wr(function(){H(`clone`,n),!Q.eventCanceled&&(n.options.removeCloneOnHide||q.insertBefore(J,W),n._hideClone(),U({sortable:n,name:`clone`}))}),!t&&R(W,i.dragClass,!0),t?(Rn=!0,n._loopId=setInterval(n._emulateDragOver,50)):(I(document,`mouseup`,n._onDrop),I(document,`touchend`,n._onDrop),I(document,`touchcancel`,n._onDrop),r&&(r.effectAllowed=`move`,i.setData&&i.setData.call(n,r,W)),F(document,`drop`,n),z(W,`transform`,`translateZ(0)`)),Ln=!0,n._dragStartId=wr(n._dragStarted.bind(n,t,e)),F(document,`selectstart`,n),Kn=!0,Xt&&z(document.body,`user-select`,`none`)},_onDragOver:function(e){var t=this.el,n=e.target,r,i,a,o=this.options,s=o.group,c=Q.active,l=In===s,u=o.sort,d=X||c,f,p=this,m=!1;if($n)return;function h(o,s){H(o,p,Bt({evt:e,isOwner:l,axis:f?`vertical`:`horizontal`,revert:a,dragRect:r,targetRect:i,canSort:u,fromSortable:d,target:n,completed:_,onMove:function(n,i){return hr(q,t,W,r,n,B(n),e,i)},changed:v},s))}function g(){h(`dragOverAnimationCapture`),p.captureAnimationState(),p!==d&&d.captureAnimationState()}function _(r){return h(`dragOverCompleted`,{insertion:r}),r&&(l?c._hideClone():c._showClone(p),p!==d&&(R(W,X?X.options.ghostClass:c.options.ghostClass,!1),R(W,o.ghostClass,!0)),X!==p&&p!==Q.active?X=p:p===Q.active&&X&&(X=null),d===p&&(p._ignoreWhileAnimating=n),p.animateAll(function(){h(`dragOverAnimationComplete`),p._ignoreWhileAnimating=null}),p!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(n===W&&!W.animated||n===t&&!n.animated)&&(qn=null),!o.dragoverBubble&&!e.rootEl&&n!==document&&(W.parentNode[V]._isOutsideThisEl(e.target),!r&&fr(e)),!o.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function v(){Y=un(W),Fn=un(W,o.draggable),U({sortable:p,name:`change`,toEl:t,newIndex:Y,newDraggableIndex:Fn,originalEvent:e})}if(e.preventDefault!==void 0&&e.cancelable&&e.preventDefault(),n=L(n,o.draggable,t,!0),h(`dragOver`),Q.eventCanceled)return m;if(W.contains(e.target)||n.animated&&n.animatingX&&n.animatingY||p._ignoreWhileAnimating===n)return _(!1);if(Rn=!1,c&&!o.disabled&&(l?u||(a=G!==q):X===this||(this.lastPutMode=In.checkPull(this,c,W,e))&&s.checkPut(this,c,W,e))){if(f=this._getDirection(e,n)===`vertical`,r=B(W),h(`dragOverValid`),Q.eventCanceled)return m;if(a)return G=q,g(),this._hideClone(),h(`revert`),Q.eventCanceled||(An?q.insertBefore(W,An):q.appendChild(W)),_(!0);var y=ln(t,o.draggable);if(!y||yr(e,f,this)&&!y.animated){if(y===W)return _(!1);if(y&&t===e.target&&(n=y),n&&(i=B(n)),hr(q,t,W,r,n,i,e,!!n)!==!1)return g(),y&&y.nextSibling?t.insertBefore(W,y.nextSibling):t.appendChild(W),G=t,v(),_(!0)}else if(y&&vr(e,f,this)){var ee=cn(t,0,o,!0);if(ee===W)return _(!1);if(n=ee,i=B(n),hr(q,t,W,r,n,i,e,!1)!==!1)return g(),t.insertBefore(W,ee),G=t,v(),_(!0)}else if(n.parentNode===t){i=B(n);var b=0,x,S=W.parentNode!==t,te=!sr(W.animated&&W.toRect||r,n.animated&&n.toRect||i,f),C=f?`top`:`left`,w=sn(n,`top`,`top`)||sn(W,`top`,`top`),ne=w?w.scrollTop:void 0;qn!==n&&(x=i[C],Yn=!1,Xn=!te&&o.invertSwap||S),b=br(e,n,i,f,te?1:o.swapThreshold,o.invertedSwapThreshold==null?o.swapThreshold:o.invertedSwapThreshold,Xn,qn===n);var re;if(b!==0){var ie=un(W);do ie-=b,re=G.children[ie];while(re&&(z(re,`display`)===`none`||re===K))}if(b===0||re===n)return _(!1);qn=n,Jn=b;var ae=n.nextElementSibling,oe=!1;oe=b===1;var se=hr(q,t,W,r,n,i,e,oe);if(se!==!1)return(se===1||se===-1)&&(oe=se===1),$n=!0,setTimeout(_r,30),g(),oe&&!ae?t.appendChild(W):n.parentNode.insertBefore(W,oe?ae:n),w&&yn(w,0,ne-w.scrollTop),G=W.parentNode,x!==void 0&&!Xn&&(Zn=Math.abs(x-B(n)[C])),v(),_(!0)}if(t.contains(W))return _(!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`,fr),I(document,`mousemove`,fr),I(document,`touchmove`,fr)},_offUpEvents:function(){var e=this.el.ownerDocument;I(e,`mouseup`,this._onDrop),I(e,`touchend`,this._onDrop),I(e,`pointerup`,this._onDrop),I(e,`touchcancel`,this._onDrop),I(document,`selectstart`,this)},_onDrop:function(e){var t=this.el,n=this.options;if(Y=un(W),Fn=un(W,n.draggable),H(`drop`,this,{evt:e}),G=W&&W.parentNode,Y=un(W),Fn=un(W,n.draggable),Q.eventCanceled){this._nulling();return}Ln=!1,Xn=!1,Yn=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Tr(this.cloneId),Tr(this._dragStartId),this.nativeDraggable&&(I(document,`drop`,this),I(t,`dragstart`,this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Xt&&z(document.body,`user-select`,``),z(W,`transform`,``),e&&(Kn&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),K&&K.parentNode&&K.parentNode.removeChild(K),(q===G||X&&X.lastPutMode!==`clone`)&&J&&J.parentNode&&J.parentNode.removeChild(J),W&&(this.nativeDraggable&&I(W,`dragend`,this),gr(W),W.style[`will-change`]=``,Kn&&!Ln&&R(W,X?X.options.ghostClass:this.options.ghostClass,!1),R(W,this.options.chosenClass,!1),U({sortable:this,name:`unchoose`,toEl:G,newIndex:null,newDraggableIndex:null,originalEvent:e}),q===G?Y!==Nn&&Y>=0&&(U({sortable:this,name:`update`,toEl:G,originalEvent:e}),U({sortable:this,name:`sort`,toEl:G,originalEvent:e})):(Y>=0&&(U({rootEl:G,name:`add`,toEl:G,fromEl:q,originalEvent:e}),U({sortable:this,name:`remove`,toEl:G,originalEvent:e}),U({rootEl:G,name:`sort`,toEl:G,fromEl:q,originalEvent:e}),U({sortable:this,name:`sort`,toEl:G,originalEvent:e})),X&&X.save()),Q.active&&((Y==null||Y===-1)&&(Y=Nn,Fn=Pn),U({sortable:this,name:`end`,toEl:G,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){H(`nulling`,this),q=W=G=K=An=J=jn=Mn=Bn=Vn=Kn=Y=Fn=Nn=Pn=qn=Jn=X=In=Q.dragged=Q.ghost=Q.clone=Q.active=null,er.forEach(function(e){e.checked=!0}),er.length=Hn=Un=0},handleEvent:function(e){switch(e.type){case`drop`:case`dragend`:this._onDrop(e);break;case`dragenter`:case`dragover`:W&&(this._onDragOver(e),mr(e));break;case`selectstart`:e.preventDefault()}},toArray:function(){for(var e=[],t,n=this.el.children,r=0,i=n.length,a=this.options;r<i;r++)t=n[r],L(t,a.draggable,this.el,!1)&&e.push(t.getAttribute(a.dataIdAttr)||Sr(t));return e},sort:function(e,t){var n={},r=this.el;this.toArray().forEach(function(e,t){var i=r.children[t];L(i,this.options.draggable,r,!1)&&(n[e]=i)},this),t&&this.captureAnimationState(),e.forEach(function(e){n[e]&&(r.removeChild(n[e]),r.appendChild(n[e]))}),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return L(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var n=this.options;if(t===void 0)return n[e];var r=Dn.modifyOption(this,e,t);n[e]=r===void 0?t:r,e===`group`&&lr(n)},destroy:function(){H(`destroy`,this);var e=this.el;e[V]=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(e){e.removeAttribute(`draggable`)}),this._onDrop(),this._disableDelayedDragEvents(),zn.splice(zn.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!Mn){if(H(`hideClone`,this),Q.eventCanceled)return;z(J,`display`,`none`),this.options.removeCloneOnHide&&J.parentNode&&J.parentNode.removeChild(J),Mn=!0}},_showClone:function(e){if(e.lastPutMode!==`clone`){this._hideClone();return}if(Mn){if(H(`showClone`,this),Q.eventCanceled)return;W.parentNode==q&&!this.options.group.revertClone?q.insertBefore(J,W):An?q.insertBefore(J,An):q.appendChild(J),this.options.group.revertClone&&this.animate(W,J),z(J,`display`,``),Mn=!1}}};function mr(e){e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),e.cancelable&&e.preventDefault()}function hr(e,t,n,r,i,a,o,s){var c,l=e[V],u=l.options.onMove,d;return window.CustomEvent&&!qt&&!Jt?c=new CustomEvent(`move`,{bubbles:!0,cancelable:!0}):(c=document.createEvent(`Event`),c.initEvent(`move`,!0,!0)),c.to=t,c.from=e,c.dragged=n,c.draggedRect=r,c.related=i||t,c.relatedRect=a||B(t),c.willInsertAfter=s,c.originalEvent=o,e.dispatchEvent(c),u&&(d=u.call(l,c,o)),d}function gr(e){e.draggable=!1}function _r(){$n=!1}function vr(e,t,n){var r=B(cn(n.el,0,n.options,!0)),i=xn(n.el,n.options,K),a=10;return t?e.clientX<i.left-a||e.clientY<r.top&&e.clientX<r.right:e.clientY<i.top-a||e.clientY<r.bottom&&e.clientX<r.left}function yr(e,t,n){var r=B(ln(n.el,n.options.draggable)),i=xn(n.el,n.options,K),a=10;return t?e.clientX>i.right+a||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>i.bottom+a||e.clientX>r.right&&e.clientY>r.top}function br(e,t,n,r,i,a,o,s){var c=r?e.clientY:e.clientX,l=r?n.height:n.width,u=r?n.top:n.left,d=r?n.bottom:n.right,f=!1;if(!o){if(s&&Zn<l*i){if(!Yn&&(Jn===1?c>u+l*a/2:c<d-l*a/2)&&(Yn=!0),Yn)f=!0;else if(Jn===1?c<u+Zn:c>d-Zn)return-Jn}else if(c>u+l*(1-i)/2&&c<d-l*(1-i)/2)return xr(t)}return f||=o,f&&(c<u+l*a/2||c>d-l*a/2)?c>u+l/2?1:-1:0}function xr(e){return un(W)<un(e)?1:-1}function Sr(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,r=0;n--;)r+=t.charCodeAt(n);return r.toString(36)}function Cr(e){er.length=0;for(var t=e.getElementsByTagName(`input`),n=t.length;n--;){var r=t[n];r.checked&&er.push(r)}}function wr(e){return setTimeout(e,0)}function Tr(e){return clearTimeout(e)}tr&&F(document,`touchmove`,function(e){(Q.active||Ln)&&e.cancelable&&e.preventDefault()}),Q.utils={on:F,off:I,css:z,find:an,is:function(e,t){return!!L(e,t,e,!1)},extend:mn,throttle:_n,closest:L,toggleClass:R,clone:bn,index:un,nextTick:wr,cancelNextTick:Tr,detectDirection:or,getChild:cn},Q.get=function(e){return e[V]},Q.mount=function(){var e=[...arguments];e[0].constructor===Array&&(e=e[0]),e.forEach(function(e){if(!e.prototype||!e.prototype.constructor)throw`Sortable: Mounted plugin must be a constructor function, not ${{}.toString.call(e)}`;e.utils&&(Q.utils=Bt(Bt({},Q.utils),e.utils)),Dn.mount(e)})},Q.create=function(e,t){return new Q(e,t)},Q.version=Gt;var $=[],Er,Dr,Or=!1,kr,Ar,jr,Mr;function Nr(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)e.charAt(0)===`_`&&typeof this[e]==`function`&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?F(document,`dragover`,this._handleAutoScroll):this.options.supportPointer?F(document,`pointermove`,this._handleFallbackAutoScroll):t.touches?F(document,`touchmove`,this._handleFallbackAutoScroll):F(document,`mousemove`,this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;!this.options.dragOverBubble&&!t.rootEl&&this._handleAutoScroll(t)},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)),Fr(),Pr(),vn()},nulling:function(){jr=Dr=Er=Or=Mr=kr=Ar=null,$.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var n=this,r=(e.touches?e.touches[0]:e).clientX,i=(e.touches?e.touches[0]:e).clientY,a=document.elementFromPoint(r,i);if(jr=e,t||this.options.forceAutoScrollFallback||Jt||qt||Xt){Ir(e,this.options,a,t);var o=pn(a,!0);Or&&(!Mr||r!==kr||i!==Ar)&&(Mr&&Fr(),Mr=setInterval(function(){var a=pn(document.elementFromPoint(r,i),!0);a!==o&&(o=a,Pr()),Ir(e,n.options,a,t)},10),kr=r,Ar=i)}else{if(!this.options.bubbleScroll||pn(a,!0)===on()){Pr();return}Ir(e,this.options,pn(a,!1),!1)}}},P(e,{pluginName:`scroll`,initializeByDefault:!0})}function Pr(){$.forEach(function(e){clearInterval(e.pid)}),$=[]}function Fr(){clearInterval(Mr)}var Ir=_n(function(e,t,n,r){if(t.scroll){var i=(e.touches?e.touches[0]:e).clientX,a=(e.touches?e.touches[0]:e).clientY,o=t.scrollSensitivity,s=t.scrollSpeed,c=on(),l=!1,u;Dr!==n&&(Dr=n,Pr(),Er=t.scroll,u=t.scrollFn,Er===!0&&(Er=pn(n,!0)));var d=0,f=Er;do{var p=f,m=B(p),h=m.top,g=m.bottom,_=m.left,v=m.right,y=m.width,ee=m.height,b=void 0,x=void 0,S=p.scrollWidth,te=p.scrollHeight,C=z(p),w=p.scrollLeft,ne=p.scrollTop;p===c?(b=y<S&&(C.overflowX===`auto`||C.overflowX===`scroll`||C.overflowX===`visible`),x=ee<te&&(C.overflowY===`auto`||C.overflowY===`scroll`||C.overflowY===`visible`)):(b=y<S&&(C.overflowX===`auto`||C.overflowX===`scroll`),x=ee<te&&(C.overflowY===`auto`||C.overflowY===`scroll`));var re=b&&(Math.abs(v-i)<=o&&w+y<S)-(Math.abs(_-i)<=o&&!!w),ie=x&&(Math.abs(g-a)<=o&&ne+ee<te)-(Math.abs(h-a)<=o&&!!ne);if(!$[d])for(var ae=0;ae<=d;ae++)$[ae]||($[ae]={});($[d].vx!=re||$[d].vy!=ie||$[d].el!==p)&&($[d].el=p,$[d].vx=re,$[d].vy=ie,clearInterval($[d].pid),(re!=0||ie!=0)&&(l=!0,$[d].pid=setInterval(function(){r&&this.layer===0&&Q.active._onTouchMove(jr);var t=$[this.layer].vy?$[this.layer].vy*s:0,n=$[this.layer].vx?$[this.layer].vx*s:0;typeof u==`function`&&u.call(Q.dragged.parentNode[V],n,t,e,jr,$[this.layer].el)!==`continue`||yn($[this.layer].el,n,t)}.bind({layer:d}),24))),d++}while(t.bubbleScroll&&f!==c&&(f=pn(f,!1)));Or=l}},30),Lr=function(e){var t=e.originalEvent,n=e.putSortable,r=e.dragEl,i=e.activeSortable,a=e.dispatchSortableEvent,o=e.hideGhostForTarget,s=e.unhideGhostForTarget;if(t){var c=n||i;o();var l=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,u=document.elementFromPoint(l.clientX,l.clientY);s(),c&&!c.el.contains(u)&&(a(`spill`),this.onSpill({dragEl:r,putSortable:n}))}};function Rr(){}Rr.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 r=cn(this.sortable.el,this.startIndex,this.options);r?this.sortable.el.insertBefore(t,r):this.sortable.el.appendChild(t),this.sortable.animateAll(),n&&n.animateAll()},drop:Lr},P(Rr,{pluginName:`revertOnSpill`});function zr(){}zr.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:Lr},P(zr,{pluginName:`removeOnSpill`}),Q.mount(new Nr),Q.mount(zr,Rr);function Br(e){return e==null?e:JSON.parse(JSON.stringify(e))}function Vr(e){l()&&h(e)}function Hr(e){l()?p(e):te(e)}var Ur=null,Wr=null;function Gr(e=null,t=null){Ur=e,Wr=t}function Kr(){return{data:Ur,clonedData:Wr}}var qr=Symbol(`cloneElement`);function Jr(...t){let n=l()?.proxy,i=null,a=t[0],[,o,s]=t;Array.isArray(e(o))||(s=o,o=null);let u=null,{immediate:d=!0,clone:f=Br,forceFallback:p,fallbackOnBody:m,customUpdate:h}=e(s)??{};function g(t){let{from:n,oldIndex:r,item:a}=t,s=Array.from(n.childNodes);i=p&&!m?s.slice(0,-1):s;let c=e(e(o)?.[r]),l=f(c);Gr(c,l),a[qr]=l}function _(t){let n=t.item[qr];if(!jt(n)){if(Nt(t.item),r(o)){let r=[...e(o)];o.value=A(r,t.newDraggableIndex,n);return}A(e(o),t.newDraggableIndex,n)}}function v(t){let{from:n,item:i,oldIndex:a,oldDraggableIndex:s,pullMode:c,clone:l}=t;if(Mt(n,i,a),c===`clone`){Nt(l);return}if(r(o)){let t=[...e(o)];o.value=At(t,s);return}At(e(o),s)}function y(t){if(h){h(t);return}let{from:n,item:i,oldIndex:a,oldDraggableIndex:s,newDraggableIndex:c}=t;if(Nt(i),Mt(n,i,a),r(o)){let t=[...e(o)];o.value=Ot(t,s,c);return}Ot(e(o),s,c)}function ee(e){let{newIndex:t,oldIndex:n,from:r,to:a}=e,o=null,s=t===n&&r===a;try{if(s){let e=null;i?.some((t,n)=>{if(e&&i?.length!==a.childNodes.length)return r.insertBefore(e,t.nextSibling),!0;let o=a.childNodes[n];e=a?.replaceChild(t,o)})}}catch(e){o=e}finally{i=null}te(()=>{if(Gr(),o)throw o})}let b={onUpdate:y,onStart:g,onAdd:_,onRemove:v,onEnd:ee};function x(t){let r=e(a);return t||=j(r)?Pt(r,n?.$el):r,t&&!Lt(t)&&(t=t.$el),t||Dt(`Root element not found`),t}function S(){let t=e(s)??{},{immediate:n,clone:r}=t,i=wt(t,[`immediate`,`clone`]);return Rt(i,(e,t)=>{M(e)&&(i[e]=(e,...n)=>(N(e,Kr()),t(e,...n)))}),It(o===null?{}:b,i)}let C=e=>{e=x(e),u&&w.destroy(),u=new Q(e,S())};c(()=>s,()=>{u&&Rt(S(),(e,t)=>{u?.option(e,t)})},{deep:!0});let w={option:(e,t)=>u?.option(e,t),destroy:()=>{u?.destroy(),u=null},save:()=>u?.save(),toArray:()=>u?.toArray(),closest:(...e)=>u?.closest(...e)};return Hr(()=>{d&&C()}),Vr(w.destroy),Ct({start:C,pause:()=>w?.option(`disabled`,!0),resume:()=>w?.option(`disabled`,!1)},w)}var Yr=[`update`,`start`,`add`,`remove`,`choose`,`unchoose`,`end`,`sort`,`filter`,`clone`,`move`,`change`],Xr=[`clone`,`animation`,`ghostClass`,`group`,`sort`,`disabled`,`store`,`handle`,`draggable`,`swapThreshold`,`invertSwap`,`invertedSwapThreshold`,`removeCloneOnHide`,`direction`,`chosenClass`,`dragClass`,`ignore`,`filter`,`preventOnFilter`,`easing`,`setData`,`dropBubble`,`dragoverBubble`,`dataIdAttr`,`delay`,`delayOnTouchOnly`,`touchStartThreshold`,`forceFallback`,`fallbackClass`,`fallbackOnBody`,`fallbackTolerance`,`fallbackOffset`,`supportPointer`,`emptyInsertThreshold`,`scroll`,`forceAutoScrollFallback`,`scrollSensitivity`,`scrollSpeed`,`bubbleScroll`,`modelValue`,`tag`,`target`,`customUpdate`,...Yr.map(e=>`on${e.replace(/^\S/,e=>e.toUpperCase())}`)],Zr=v({name:`VueDraggable`,model:{prop:`modelValue`,event:`update:modelValue`},props:Xr,emits:[`update:modelValue`,...Yr],setup(r,{slots:o,emit:s,expose:c,attrs:l}){let u=Yr.reduce((e,t)=>{let n=`on${t.replace(/^\S/,e=>e.toUpperCase())}`;return e[n]=(...e)=>s(t,...e),e},{}),d=g(()=>{let t=n(r),{modelValue:i}=t,a=wt(t,[`modelValue`]),o=Object.entries(a).reduce((t,[n,r])=>{let i=e(r);return i!==void 0&&(t[n]=i),t},{});return Ct(Ct({},u),k(Ct(Ct({},l),o)))}),f=g({get:()=>r.modelValue,set:e=>s(`update:modelValue`,e)}),p=t(),m=i(Jr(r.target||p,f,d));return c(m),()=>a(r.tag||`div`,{ref:p},(o?.default)?.call(o,m))}}),Qr={mounted:`mounted`,unmounted:`unmounted`};Qr.mounted,Qr.unmounted;export{vt as n,Zr as t};
|
|
1
|
+
import{B as e,C as t,P as n,m as r,x as i}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{B as a,D as o,E as s,Ht as c,L as l,_ as u,b as d,bt as f,ct as p,en as m,ft as h,g,it as _,k as v,mt as y,nn as ee,o as b,qt as x,rn as S,tt as te,v as C,y as w}from"./runtime-core.esm-bundler-DujKY9QV.js";import{I as ne}from"./floating-ui.dom-DWhsZyqT.js";import{C as re,J as ie,P as ae,S as oe,U as se,d as ce,dt as T,ft as E,mt as le,q as ue,u as de}from"./src--GO-VSJ0.js";import{g as fe}from"./useApi-s_02lHjl-DZYO2tHU.js";import{a as pe,i as me}from"./scenario.store-88w6P6s2.js";import{r as D}from"./trpc-CfuFkKgp.js";import{t as he}from"./use-polling-CEkhIY_9.js";import{o as ge}from"./editor.api-Bef3xeth.js";import{i as _e}from"./AiChatModals-It9jnB26.js";import{t as ve}from"./editor.store-DmM6ZlTm.js";import{t as ye}from"./useAiChatDrawer-D_ofn8Eo.js";var be=E(v({__name:`MonacoDiffEditor`,props:{original:{},modified:{},language:{default:`plaintext`},height:{default:`100%`},theme:{default:`monokai`}},setup(e){window.MonacoEnvironment||(window.MonacoEnvironment={getWorker(){return new _e}}),ge.defineTheme(`monokai`,{base:`vs-dark`,inherit:!0,rules:[{token:`comment`,foreground:`75715E`,fontStyle:`italic`},{token:`string`,foreground:`E6DB74`},{token:`keyword`,foreground:`F92672`},{token:`number`,foreground:`AE81FF`},{token:`regexp`,foreground:`E6DB74`},{token:`type`,foreground:`66D9EF`,fontStyle:`italic`},{token:`type.identifier`,foreground:`A6E22E`},{token:`delimiter`,foreground:`F8F8F2`},{token:`delimiter.bracket`,foreground:`F8F8F2`},{token:`tag`,foreground:`F92672`},{token:`attribute.name`,foreground:`A6E22E`},{token:`attribute.value`,foreground:`E6DB74`},{token:`variable`,foreground:`F8F8F2`},{token:`variable.predefined`,foreground:`66D9EF`},{token:`constant`,foreground:`AE81FF`},{token:`function`,foreground:`A6E22E`},{token:`operator`,foreground:`F92672`},{token:`identifier`,foreground:`F8F8F2`},{token:`meta.tag`,foreground:`F92672`}],colors:{"editor.background":`#272822`,"editor.foreground":`#F8F8F2`,"editor.lineHighlightBackground":`#3E3D32`,"editor.selectionBackground":`#49483E`,"editorCursor.foreground":`#F8F8F0`,"editorWhitespace.foreground":`#464741`,"editorIndentGuide.background":`#464741`,"editorLineNumber.foreground":`#90908A`,"editorLineNumber.activeForeground":`#F8F8F2`,"diffEditor.insertedTextBackground":`#A6E22E26`,"diffEditor.removedTextBackground":`#F9267226`,"diffEditor.insertedLineBackground":`#A6E22E15`,"diffEditor.removedLineBackground":`#F9267215`}});let n=e,r=t(),i=null,a=null,o=null;return p(()=>{r.value&&(a=ge.createModel(n.original,n.language),o=ge.createModel(n.modified,n.language),i=ge.createDiffEditor(r.value,{theme:n.theme,readOnly:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,automaticLayout:!0,fontSize:13,fontFamily:`'Monaco', 'Menlo', 'Ubuntu Mono', Courier, monospace`,renderSideBySide:!0,overviewRulerLanes:0,scrollbar:{verticalScrollbarSize:8,horizontalScrollbarSize:8},originalEditable:!1,ignoreTrimWhitespace:!1}),i.setModel({original:a,modified:o}))}),_(()=>{a?.dispose(),o?.dispose(),i?.dispose(),a=null,o=null,i=null}),(t,n)=>(y(),d(`div`,{ref_key:`editorContainer`,ref:r,style:ee({height:e.height,width:`100%`}),class:`monaco-diff-container`},null,4))}}),[[`__scopeId`,`data-v-ef18ae8b`]]),xe={class:`git-panel`},Se={key:0,class:`git-panel__unavailable`},Ce={class:`git-panel__unavailable-title`},we={class:`git-panel__unavailable-detail`},Te={key:1,class:`git-panel__header`},Ee={class:`git-panel__branch`},De={class:`branch-name`},Oe={key:2,class:`upstream-label`},ke={class:`git-panel__actions`},Ae={class:`git-actions-menu`,role:`menu`},je=[`disabled`],Me={class:`git-panel__tabs`},Ne={key:0,class:`tab-badge`},Pe={key:0,class:`tab-badge`},Fe={class:`git-panel__file-list`},Ie={class:`git-commit-area`},Le={class:`commit-actions`},Re={class:`generate-popover`},ze={key:0,class:`git-empty`},Be={class:`git-section-header`},Ve=[`onClick`],He={class:`file-name`},Ue={class:`git-section-header`},We=[`onClick`],Ge={class:`file-name`},Ke={class:`file-actions`},qe={class:`git-section-header`},Je=[`onClick`],Ye={class:`file-name`},Xe={class:`git-panel__diff-pane`},Ze={class:`git-section-header diff-header`},Qe={class:`diff-header-actions`},$e={key:1,class:`diff-placeholder`},et={key:1,class:`git-panel__content`},tt={key:0,class:`git-empty`},nt={class:`commit-hash`},rt={class:`commit-info`},it={class:`commit-subject`},at={class:`commit-meta`},ot={key:2,class:`git-panel__content`},st={class:`git-section-header`},ct={class:`create-branch`},lt={class:`git-section-header`},ut={class:`branch-label`},dt={class:`git-section-header`},ft={class:`branch-label`},pt={key:3,class:`git-panel__content`},mt={class:`git-section-header`},ht={key:0,class:`git-stash-empty`},gt=[`title`],_t={class:`stash-ref`},vt=E(v({__name:`ServiceConfigGit`,props:{serviceId:{},agentId:{},projectId:{},orgId:{}},setup(n){let r=n,i=ae(),a=fe(),{t:c}=le(),l=ve(),_=t(),v=t(null),ee=t(null),te=t(!1),E=g(()=>r.serviceId?{serviceId:r.serviceId}:{agentId:r.agentId,projectId:r.projectId,orgId:r.orgId}),ge=g(()=>r.serviceId?l.getEffectiveEditor(r.serviceId):void 0),{openWithDiffContext:_e}=ye();function vt(){if(!Dt.value||!k.value)return;let e=`\`\`\`diff\n// ${k.value}\n${Dt.value}\n\`\`\``;_e(e)}async function yt(){let e=ge.value;if(e&&k.value&&r.serviceId)try{await D.editor.openFile.mutate({editorKey:e.key,serviceId:r.serviceId,relativePath:k.value})}catch(e){i.add({severity:`error`,summary:c(`git.errorTitle`),detail:e instanceof Error?e.message:String(e),life:4e3})}}let bt=t(!1),xt=t(!1),O=t(null),St=t([]),Ct=t({current:``,branches:[]}),wt=t([]),Tt=t(``),Et=t(``),Dt=t(``),Ot=t(``),kt=t(``),k=t(``),At=t(!1),A=t(`status`),jt=t(`origin`),j=t(``),Mt=t(null);function Nt(e){Mt.value?.hide(),e()}let Pt=t([]);function Ft(e){let t=e.toLowerCase();return t.includes(`fetch failed`)||t.includes(`http 404`)||t.includes(`agent`)&&(t.includes(`not found`)||t.includes(`not connected`))}let It=g(()=>wt.value.map(e=>({label:e.name,value:e.name}))),Lt=g(()=>!!O.value?.upstream),Rt=g(()=>Ct.value.branches.filter(e=>!e.remote));async function M(e,t){j.value=e;try{await t()}catch(e){let t=e instanceof Error?e.message:String(e);i.add({severity:`error`,summary:c(`git.errorTitle`),detail:t,life:6e3})}finally{j.value=``}}async function N(){bt.value=!0;try{let[e,t,n]=await Promise.all([D.git.status.query({...E.value}),D.git.branches.query({...E.value}),D.git.remotes.query({...E.value})]);xt.value=!1,O.value=e,Ct.value=t,wt.value=n,L(),wt.value.length&&!wt.value.find(e=>e.name===jt.value)&&(jt.value=wt.value[0]?.name??`origin`)}catch(e){let t=e instanceof Error?e.message:String(e);O.value=null,Ft(t)?xt.value=!0:(xt.value=!1,i.add({severity:`error`,summary:c(`git.errorTitle`),detail:t,life:6e3}))}finally{bt.value=!1}}async function zt(){try{let e=await D.git.status.query({...E.value});xt.value=!1,O.value=e}catch(e){Ft(e instanceof Error?e.message:String(e))&&(xt.value=!0)}}async function Bt(){try{let e=await D.git.log.query({...E.value,limit:50});St.value=e}catch(e){let t=e instanceof Error?e.message:String(e);Ft(t)||i.add({severity:`error`,summary:c(`git.errorTitle`),detail:t,life:6e3})}}function Vt(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,css:`css`,scss:`scss`,less:`less`,html:`html`,vue:`html`,xml:`xml`,yaml:`yaml`,yml:`yaml`,py:`python`,rs:`rust`,go:`go`,java:`java`,sh:`shell`,sql:`sql`,toml:`ini`,php:`php`,rb:`ruby`,c:`c`,cpp:`cpp`,h:`c`,hpp:`cpp`,swift:`swift`,kt:`kotlin`,lua:`lua`,r:`r`,pl:`perl`,bat:`bat`,ps1:`powershell`}[e.split(`.`).pop()?.toLowerCase()??``]||`plaintext`}let Ht=g(()=>k.value?Vt(k.value):`plaintext`);async function P(e,t=!1,n=!1){let r=await D.git.diff.query({...E.value,path:e,staged:t,untracked:n});Dt.value=r.diff,Ot.value=r.original,kt.value=r.modified,k.value=e??``,At.value=t}async function Ut(e){await M(`stage:`+e,async()=>{await D.git.stage.mutate({...E.value,paths:[e]}),await zt()})}async function Wt(){await M(`stageAll`,async()=>{await D.git.stageAll.mutate({...E.value}),await zt()})}async function Gt(e){await M(`unstage:`+e,async()=>{await D.git.unstage.mutate({...E.value,paths:[e]}),await zt()})}async function Kt(){await M(`unstageAll`,async()=>{await D.git.unstageAll.mutate({...E.value}),await zt()})}async function qt(e){await M(`discard:`+e,async()=>{await D.git.discard.mutate({...E.value,paths:[e]}),await zt()})}async function Jt(){await M(`generateCommit`,async()=>{let e=await D.git.generateCommitMessage.mutate({...E.value,providerId:v.value??void 0,model:ee.value??void 0});Tt.value=e.message})}async function Yt(){if(!Tt.value.trim()){i.add({severity:`warn`,summary:c(`git.errorTitle`),detail:c(`git.commitRequired`),life:3e3});return}await M(`commit`,async()=>{let e=await D.git.commit.mutate({...E.value,message:Tt.value});i.add({severity:`success`,summary:c(`git.committed`),detail:e.output,life:4e3}),Tt.value=``,await zt()})}async function Xt(){await M(`push`,async()=>{let e=await D.git.push.mutate({...E.value,remote:jt.value,setUpstream:!Lt.value});i.add({severity:`success`,summary:c(`git.pushed`),detail:e.output||c(`git.done`),life:4e3}),await N()})}async function Zt(){await M(`pull`,async()=>{let e=await D.git.pull.mutate({...E.value,remote:jt.value});i.add({severity:`success`,summary:c(`git.pulled`),detail:e.output||c(`git.done`),life:4e3}),await N()})}async function Qt(){await M(`fetch`,async()=>{await D.git.fetch.mutate({...E.value,remote:jt.value}),i.add({severity:`success`,summary:c(`git.fetched`),detail:c(`git.fetchedDetail`),life:3e3}),await N()})}async function $t(e){await M(`checkout`,async()=>{await D.git.checkout.mutate({...E.value,branch:e}),i.add({severity:`success`,summary:c(`git.checkedOut`),detail:e,life:3e3}),await N()})}async function F(e){await M(`merge-${e}`,async()=>{let t=await D.git.merge.mutate({...E.value,branch:e});i.add({severity:`success`,summary:c(`git.merged`),detail:t.output||c(`git.done`),life:4e3}),await N()})}async function I(e){await M(`rebase-${e}`,async()=>{let t=await D.git.rebase.mutate({...E.value,branch:e});i.add({severity:`success`,summary:c(`git.rebased`),detail:t.output||c(`git.done`),life:4e3}),await N()})}async function en(){Et.value.trim()&&await M(`create-branch`,async()=>{await D.git.checkout.mutate({...E.value,branch:Et.value,create:!0}),i.add({severity:`success`,summary:c(`git.branchCreated`),detail:Et.value,life:3e3}),Et.value=``,await N()})}let tn=g(()=>!!O.value&&O.value.staged.length+O.value.unstaged.length+O.value.untracked.length>0);async function L(){try{Pt.value=await D.git.stashList.query({...E.value})}catch{Pt.value=[]}}async function nn(){await M(`stash`,async()=>{let e=await D.git.stashPush.mutate({...E.value});i.add({severity:`success`,summary:c(`git.stashed`),detail:e.output||c(`git.done`),life:3e3}),await N(),await L()})}async function R(e){await M(`stash-pop-${e}`,async()=>{let t=await D.git.stashPop.mutate({...E.value,index:e});i.add({severity:`success`,summary:c(`git.stashPopped`),detail:t.output||c(`git.done`),life:3e3}),await N(),await L()})}async function z(e){await M(`stash-apply-${e}`,async()=>{let t=await D.git.stashApply.mutate({...E.value,index:e});i.add({severity:`success`,summary:c(`git.stashApplied`),detail:t.output||c(`git.done`),life:3e3}),await N(),await L()})}async function rn(e){await M(`stash-drop-${e}`,async()=>{await D.git.stashDrop.mutate({...E.value,index:e}),i.add({severity:`success`,summary:c(`git.stashDropped`),life:3e3}),await L()})}let an=null,on=he(N,1e4,`service-git:refresh`);function B(e){te.value=e>0,pe()&&console.log(`[git] AI providers:`,e,`→ selected:`,v.value)}return p(()=>{N(),an=D.git.onStatusChange.subscribe({...E.value},{onData(e){O.value=e,xt.value=!1},onError(e){let t=e?.message??``;t.includes(`PRECONDITION_FAILED`)||t.includes(`Unresolved variables`)}}),on.start()}),h(()=>{an?.unsubscribe(),an=null,on.stop()}),(t,n)=>(y(),d(`div`,xe,[xt.value?(y(),d(`div`,Se,[n[19]||=u(`i`,{class:`ti ti-server git-panel__unavailable-icon`},null,-1),u(`span`,Ce,S(e(c)(`git.agentUnavailable`)),1),u(`span`,we,S(e(c)(`git.agentUnavailableDetail`)),1),o(e(T),{label:e(c)(`git.retry`),icon:`ti ti-refresh`,size:`small`,onClick:N},null,8,[`label`])])):w(``,!0),xt.value?w(``,!0):(y(),d(`div`,Te,[u(`div`,Ee,[n[20]||=u(`i`,{class:`ti ti-brand-github`},null,-1),u(`span`,De,S(O.value?.branch??`…`),1),O.value&&O.value.ahead>0?(y(),C(e(se),{key:0,value:`↑${O.value.ahead}`,severity:`info`,class:`ahead-tag`},null,8,[`value`])):w(``,!0),O.value&&O.value.behind>0?(y(),C(e(se),{key:1,value:`↓${O.value.behind}`,severity:`warn`,class:`behind-tag`},null,8,[`value`])):w(``,!0),O.value?.upstream?(y(),d(`span`,Oe,`→ `+S(O.value.upstream),1)):w(``,!0)]),u(`div`,ke,[It.value.length?(y(),C(e(oe),{key:0,modelValue:jt.value,"onUpdate:modelValue":n[0]||=e=>jt.value=e,options:It.value,"option-label":`label`,"option-value":`value`,size:`small`,class:`remote-select`},null,8,[`modelValue`,`options`])):w(``,!0),o(e(T),{icon:`ti ti-refresh`,size:`small`,variant:`text`,title:e(c)(`git.refresh`),"aria-label":e(c)(`git.refresh`),loading:bt.value,onClick:N},null,8,[`title`,`aria-label`,`loading`]),o(e(T),{icon:`ti ti-chevron-down`,"icon-pos":`right`,label:e(c)(`git.actionsMenu`),size:`small`,variant:`outlined`,loading:!!j.value,"aria-haspopup":`menu`,onClick:n[1]||=e=>Mt.value?.toggle(e)},null,8,[`label`,`loading`]),o(e(re),{ref_key:`actionsMenu`,ref:Mt},{default:x(()=>[u(`div`,Ae,[u(`button`,{type:`button`,role:`menuitem`,class:`git-actions-menu__item`,onClick:n[2]||=e=>Nt(Zt)},[n[21]||=u(`i`,{class:`ti ti-download`,"aria-hidden":`true`},null,-1),u(`span`,null,S(e(c)(`git.pull`)),1)]),u(`button`,{type:`button`,role:`menuitem`,class:`git-actions-menu__item`,onClick:n[3]||=e=>Nt(Xt)},[n[22]||=u(`i`,{class:`ti ti-cloud-upload`,"aria-hidden":`true`},null,-1),u(`span`,null,S(e(c)(`git.push`)),1)]),u(`button`,{type:`button`,role:`menuitem`,class:`git-actions-menu__item`,onClick:n[4]||=e=>Nt(Qt)},[n[23]||=u(`i`,{class:`ti ti-refresh`,"aria-hidden":`true`},null,-1),u(`span`,null,S(e(c)(`git.fetch`)),1)]),u(`button`,{type:`button`,role:`menuitem`,class:`git-actions-menu__item`,disabled:!tn.value,onClick:n[5]||=e=>Nt(nn)},[n[24]||=u(`i`,{class:`ti ti-inbox`,"aria-hidden":`true`},null,-1),u(`span`,null,S(e(c)(`git.stash`)),1)],8,je)])]),_:1},512)])])),xt.value?w(``,!0):(y(),d(b,{key:2},[u(`div`,Me,[u(`button`,{class:m([`git-tab`,{active:A.value===`status`}]),onClick:n[6]||=e=>A.value=`status`},[n[25]||=u(`i`,{class:`ti ti-file-pencil`},null,-1),s(` `+S(e(c)(`git.tabChanges`))+` `,1),O.value?(y(),d(`span`,Ne,S(O.value.staged.length+O.value.unstaged.length+O.value.untracked.length),1)):w(``,!0)],2),u(`button`,{class:m([`git-tab`,{active:A.value===`log`}]),onClick:n[7]||=e=>{A.value=`log`,Bt()}},[n[26]||=u(`i`,{class:`ti ti-history`},null,-1),s(` `+S(e(c)(`git.tabHistory`)),1)],2),u(`button`,{class:m([`git-tab`,{active:A.value===`branches`}]),onClick:n[8]||=e=>A.value=`branches`},[n[27]||=u(`i`,{class:`ti ti-brand-github`},null,-1),s(` `+S(e(c)(`git.tabBranches`)),1)],2),u(`button`,{class:m([`git-tab`,{active:A.value===`stash`}]),onClick:n[9]||=e=>{A.value=`stash`,L()}},[n[28]||=u(`i`,{class:`ti ti-inbox`},null,-1),s(` `+S(e(c)(`git.tabStash`))+` `,1),Pt.value.length?(y(),d(`span`,Pe,S(Pt.value.length),1)):w(``,!0)],2)]),A.value===`status`?(y(),C(e(ce),{key:0,class:`git-panel__status-split`,"gutter-size":6},{default:x(()=>[o(e(de),{size:30,"min-size":15,class:`git-panel__file-list-panel`},{default:x(()=>[u(`div`,Fe,[u(`div`,Ie,[o(e(ue),{modelValue:Tt.value,"onUpdate:modelValue":n[10]||=e=>Tt.value=e,placeholder:e(c)(`git.commitPlaceholder`),rows:`3`,class:`commit-message`,"auto-resize":``},null,8,[`modelValue`,`placeholder`]),u(`div`,Le,[o(me,{modelValue:v.value,"onUpdate:modelValue":n[11]||=e=>v.value=e,model:ee.value,"onUpdate:model":n[12]||=e=>ee.value=e,"storage-key":`runeya.git.commitAi`,class:`commit-provider-select`,onLoaded:B},null,8,[`modelValue`,`model`]),o(e(T),{icon:`ti ti-sparkles`,label:e(c)(`git.generateMessage`),size:`small`,variant:`outlined`,disabled:!O.value?.staged.length||!te.value,loading:j.value===`generateCommit`,onClick:n[13]||=e=>te.value?Jt():void 0,onMouseenter:n[14]||=e=>te.value?void 0:_.value?.show(e),onMouseleave:n[15]||=e=>te.value?void 0:_.value?.hide()},null,8,[`label`,`disabled`,`loading`]),o(e(re),{ref_key:`generatePopover`,ref:_},{default:x(()=>[u(`div`,Re,[u(`p`,null,S(e(c)(`git.noProviderMessage`)),1),o(e(T),{label:e(c)(`git.goToSettings`),icon:`ti ti-settings`,size:`small`,variant:`text`,onClick:n[16]||=t=>{e(a).push({name:`settings`,query:{section:`ai`}}),_.value?.hide()}},null,8,[`label`])])]),_:1},512),o(e(T),{label:e(c)(`git.commit`),icon:`ti ti-check`,size:`small`,disabled:!Tt.value.trim()||!O.value?.staged.length,loading:j.value===`commit`,onClick:Yt},null,8,[`label`,`disabled`,`loading`])])]),O.value&&O.value.staged.length===0&&O.value.unstaged.length===0&&O.value.untracked.length===0?(y(),d(`div`,ze,[n[29]||=u(`i`,{class:`ti ti-circle-check`},null,-1),u(`span`,null,S(e(c)(`git.workingTreeClean`)),1)])):w(``,!0),O.value&&O.value.staged.length>0?(y(),d(b,{key:1},[u(`div`,Be,[u(`span`,null,S(e(c)(`git.staged`,{count:O.value.staged.length})),1),o(e(T),{size:`small`,variant:`text`,label:e(c)(`git.unstageAll`),onClick:Kt},null,8,[`label`])]),(y(!0),d(b,null,f(O.value.staged,t=>(y(),d(`div`,{key:`staged-`+t,class:m([`git-file staged`,{selected:k.value===t&&At.value}]),onClick:e=>P(t,!0)},[n[30]||=u(`i`,{class:`ti ti-plus file-icon`},null,-1),u(`span`,He,S(t),1),o(e(T),{icon:`ti ti-minus`,size:`small`,variant:`text`,severity:`secondary`,class:`file-action`,title:e(c)(`git.unstage`),onClick:ne(e=>Gt(t),[`stop`])},null,8,[`title`,`onClick`])],10,Ve))),128))],64)):w(``,!0),O.value&&O.value.unstaged.length>0?(y(),d(b,{key:2},[u(`div`,Ue,[u(`span`,null,S(e(c)(`git.unstaged`,{count:O.value.unstaged.length})),1),o(e(T),{size:`small`,variant:`text`,label:e(c)(`git.stageAll`),onClick:Wt},null,8,[`label`])]),(y(!0),d(b,null,f(O.value.unstaged,t=>(y(),d(`div`,{key:`unstaged-`+t,class:m([`git-file unstaged`,{selected:k.value===t&&!At.value}]),onClick:e=>P(t,!1)},[n[31]||=u(`i`,{class:`ti ti-pencil file-icon`},null,-1),u(`span`,Ge,S(t),1),u(`div`,Ke,[o(e(T),{icon:`ti ti-plus`,size:`small`,variant:`text`,title:e(c)(`git.stage`),class:`file-action`,onClick:ne(e=>Ut(t),[`stop`])},null,8,[`title`,`onClick`]),o(e(T),{icon:`ti ti-trash`,size:`small`,variant:`text`,severity:`danger`,title:e(c)(`git.discard`),class:`file-action`,onClick:ne(e=>qt(t),[`stop`])},null,8,[`title`,`onClick`])])],10,We))),128))],64)):w(``,!0),O.value&&O.value.untracked.length>0?(y(),d(b,{key:3},[u(`div`,qe,[u(`span`,null,S(e(c)(`git.untracked`,{count:O.value.untracked.length})),1)]),(y(!0),d(b,null,f(O.value.untracked,t=>(y(),d(`div`,{key:`untracked-`+t,class:`git-file untracked`,onClick:e=>P(t,!1,!0)},[n[32]||=u(`i`,{class:`ti ti-help-circle file-icon`},null,-1),u(`span`,Ye,S(t),1),o(e(T),{icon:`ti ti-plus`,size:`small`,variant:`text`,title:e(c)(`git.stage`),class:`file-action`,onClick:ne(e=>Ut(t),[`stop`])},null,8,[`title`,`onClick`])],8,Je))),128))],64)):w(``,!0)])]),_:1}),o(e(de),{size:70,"min-size":30,class:`git-panel__diff-pane-panel`},{default:x(()=>[u(`div`,Xe,[k.value?(y(),d(b,{key:0},[u(`div`,Ze,[u(`span`,null,S(e(c)(`git.diff`,{path:k.value||`all`})),1),u(`div`,Qe,[o(e(T),{icon:`ti ti-message`,size:`small`,variant:`text`,title:e(c)(`git.askAiAboutDiff`),onClick:vt},null,8,[`title`]),ge.value?(y(),C(e(T),{key:0,icon:`ti ti-external-link`,size:`small`,variant:`text`,title:e(c)(`git.openInEditor`,{editor:ge.value.name}),onClick:yt},null,8,[`title`])):w(``,!0),o(e(T),{icon:`ti ti-x`,size:`small`,variant:`text`,onClick:n[17]||=e=>{k.value=``,Dt.value=``,Ot.value=``,kt.value=``}})])]),(y(),C(be,{key:k.value+`:`+At.value,original:Ot.value,modified:kt.value,language:Ht.value,height:`100%`},null,8,[`original`,`modified`,`language`]))],64)):(y(),d(`div`,$e,[n[33]||=u(`i`,{class:`ti ti-code`},null,-1),u(`span`,null,S(e(c)(`git.selectFileForDiff`)),1)]))])]),_:1})]),_:1})):A.value===`log`?(y(),d(`div`,et,[St.value.length===0?(y(),d(`div`,tt,[n[34]||=u(`i`,{class:`ti ti-history`},null,-1),u(`span`,null,S(e(c)(`git.noCommits`)),1)])):w(``,!0),(y(!0),d(b,null,f(St.value,e=>(y(),d(`div`,{key:e.hash,class:`git-commit-entry`},[u(`div`,nt,S(e.shortHash),1),u(`div`,rt,[u(`div`,it,S(e.subject),1),u(`div`,at,S(e.author)+` · `+S(new Date(e.date).toLocaleString()),1)])]))),128))])):A.value===`branches`?(y(),d(`div`,ot,[u(`div`,st,S(e(c)(`git.newBranch`)),1),u(`div`,ct,[o(e(ie),{modelValue:Et.value,"onUpdate:modelValue":n[18]||=e=>Et.value=e,placeholder:e(c)(`git.branchNamePlaceholder`),size:`small`,class:`branch-input`},null,8,[`modelValue`,`placeholder`]),o(e(T),{label:e(c)(`git.createAndCheckout`),icon:`ti ti-plus`,size:`small`,disabled:!Et.value.trim(),loading:j.value===`create-branch`,onClick:en},null,8,[`label`,`disabled`,`loading`])]),u(`div`,lt,S(e(c)(`git.localBranches`,{count:Rt.value.length})),1),(y(!0),d(b,null,f(Rt.value,t=>(y(),d(`div`,{key:t.name,class:m([`git-branch-entry`,{current:t.current}])},[n[35]||=u(`i`,{class:`ti ti-brand-github branch-icon`},null,-1),u(`span`,ut,S(t.name),1),t.current?(y(),C(e(se),{key:0,value:e(c)(`git.current`),severity:`success`,class:`current-tag`},null,8,[`value`])):(y(),C(e(T),{key:1,label:e(c)(`git.checkout`),size:`small`,variant:`text`,loading:j.value===`checkout`,class:`checkout-btn`,onClick:e=>$t(t.name)},null,8,[`label`,`loading`,`onClick`])),t.current?w(``,!0):(y(),C(e(T),{key:2,label:e(c)(`git.merge`),size:`small`,variant:`text`,severity:`secondary`,loading:j.value===`merge-${t.name}`,class:`checkout-btn`,onClick:e=>F(t.name)},null,8,[`label`,`loading`,`onClick`])),t.current?w(``,!0):(y(),C(e(T),{key:3,label:e(c)(`git.rebase`),size:`small`,variant:`text`,severity:`secondary`,loading:j.value===`rebase-${t.name}`,class:`checkout-btn`,onClick:e=>I(t.name)},null,8,[`label`,`loading`,`onClick`]))],2))),128)),Ct.value.branches.filter(e=>e.remote).length?(y(),d(b,{key:0},[u(`div`,dt,S(e(c)(`git.remoteBranches`)),1),(y(!0),d(b,null,f(Ct.value.branches.filter(e=>e.remote),e=>(y(),d(`div`,{key:e.name,class:`git-branch-entry remote`},[n[36]||=u(`i`,{class:`ti ti-world branch-icon`},null,-1),u(`span`,ft,S(e.name.replace(/^remotes\//,``)),1)]))),128))],64)):w(``,!0)])):A.value===`stash`?(y(),d(`div`,pt,[u(`div`,mt,S(e(c)(`git.stashes`,{count:Pt.value.length})),1),Pt.value.length?w(``,!0):(y(),d(`div`,ht,S(e(c)(`git.noStashes`)),1)),(y(!0),d(b,null,f(Pt.value,t=>(y(),d(`div`,{key:t.ref,class:`git-stash-entry`},[n[37]||=u(`i`,{class:`ti ti-inbox stash-icon`},null,-1),u(`span`,{class:`stash-label`,title:t.message},[u(`span`,_t,`stash@`+S(`{`)+S(t.index)+S(`}`),1),s(` `+S(t.message),1)],8,gt),o(e(T),{label:e(c)(`git.stashPop`),size:`small`,variant:`text`,loading:j.value===`stash-pop-${t.index}`,class:`checkout-btn`,onClick:e=>R(t.index)},null,8,[`label`,`loading`,`onClick`]),o(e(T),{label:e(c)(`git.stashApply`),size:`small`,variant:`text`,severity:`secondary`,loading:j.value===`stash-apply-${t.index}`,class:`checkout-btn`,onClick:e=>z(t.index)},null,8,[`label`,`loading`,`onClick`]),o(e(T),{label:e(c)(`git.stashDrop`),size:`small`,variant:`text`,severity:`danger`,loading:j.value===`stash-drop-${t.index}`,class:`checkout-btn`,onClick:e=>rn(t.index)},null,8,[`label`,`loading`,`onClick`])]))),128))])):w(``,!0)],64))]))}}),[[`__scopeId`,`data-v-3eb1f17d`]]),yt=Object.defineProperty,bt=Object.getOwnPropertySymbols,xt=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,St=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ct=(e,t)=>{for(var n in t||={})xt.call(t,n)&&St(e,n,t[n]);if(bt)for(var n of bt(t))O.call(t,n)&&St(e,n,t[n]);return e},wt=(e,t)=>{var n={};for(var r in e)xt.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&bt)for(var r of bt(e))t.indexOf(r)<0&&O.call(e,r)&&(n[r]=e[r]);return n},Tt=`[vue-draggable-plus]: `;function Et(e){console.warn(Tt+e)}function Dt(e){console.error(Tt+e)}function Ot(e,t,n){return n>=0&&n<e.length&&e.splice(n,0,e.splice(t,1)[0]),e}function kt(e){return e.replace(/-(\w)/g,(e,t)=>t?t.toUpperCase():``)}function k(e){return Object.keys(e).reduce((t,n)=>(e[n]!==void 0&&(t[kt(n)]=e[n]),t),{})}function At(e,t){return Array.isArray(e)&&e.splice(t,1),e}function A(e,t,n){return Array.isArray(e)&&e.splice(t,0,n),e}function jt(e){return e===void 0}function j(e){return typeof e==`string`}function Mt(e,t,n){let r=e.children[n];e.insertBefore(t,r)}function Nt(e){e.parentNode&&e.parentNode.removeChild(e)}function Pt(e,t=document){let n=null;return n=typeof t?.querySelector==`function`?(t?.querySelector)?.call(t,e):document.querySelector(e),n||Et(`Element not found: ${e}`),n}function Ft(e,t,n=null){return function(...r){return e.apply(n,r),t.apply(n,r)}}function It(e,t){let n=Ct({},e);return Object.keys(t).forEach(r=>{n[r]?n[r]=Ft(e[r],t[r]):n[r]=t[r]}),n}function Lt(e){return e instanceof HTMLElement}function Rt(e,t){Object.keys(e).forEach(n=>{t(n,e[n])})}function M(e){return e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97)}var N=Object.assign;function zt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Bt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?zt(Object(n),!0).forEach(function(t){Ht(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Vt(e){"@babel/helpers - typeof";return Vt=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},Vt(e)}function Ht(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(){return P=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},P.apply(this,arguments)}function Ut(e,t){if(e==null)return{};for(var n={},r=Object.keys(e),i,a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function Wt(e,t){if(e==null)return{};var n=Ut(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var Gt=`1.15.2`;function Kt(e){if(typeof window<`u`&&window.navigator)return!!navigator.userAgent.match(e)}var qt=Kt(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Jt=Kt(/Edge/i),Yt=Kt(/firefox/i),Xt=Kt(/safari/i)&&!Kt(/chrome/i)&&!Kt(/android/i),Zt=Kt(/iP(ad|od|hone)/i),Qt=Kt(/chrome/i)&&Kt(/android/i),$t={capture:!1,passive:!1};function F(e,t,n){e.addEventListener(t,n,!qt&&$t)}function I(e,t,n){e.removeEventListener(t,n,!qt&&$t)}function en(e,t){if(t){if(t[0]===`>`&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function tn(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function L(e,t,n,r){if(e){n||=document;do{if(t!=null&&(t[0]===`>`?e.parentNode===n&&en(e,t):en(e,t))||r&&e===n)return e;if(e===n)break}while(e=tn(e))}return null}var nn=/\s+/g;function R(e,t,n){e&&t&&(e.classList?e.classList[n?`add`:`remove`](t):e.className=((` `+e.className+` `).replace(nn,` `).replace(` `+t+` `,` `)+(n?` `+t:``)).replace(nn,` `))}function z(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,``):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf(`webkit`)===-1&&(t=`-webkit-`+t),r[t]=n+(typeof n==`string`?``:`px`)}}function rn(e,t){var n=``;if(typeof e==`string`)n=e;else do{var r=z(e,`transform`);r&&r!==`none`&&(n=r+` `+n)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function an(e,t,n){if(e){var r=e.getElementsByTagName(t),i=0,a=r.length;if(n)for(;i<a;i++)n(r[i],i);return r}return[]}function on(){return document.scrollingElement||document.documentElement}function B(e,t,n,r,i){if(e.getBoundingClientRect||e===window){var a,o,s,c,l,u,d;if(e!==window&&e.parentNode&&e!==on()?(a=e.getBoundingClientRect(),o=a.top,s=a.left,c=a.bottom,l=a.right,u=a.height,d=a.width):(o=0,s=0,c=window.innerHeight,l=window.innerWidth,u=window.innerHeight,d=window.innerWidth),(t||n)&&e!==window&&(i||=e.parentNode,!qt))do if(i&&i.getBoundingClientRect&&(z(i,`transform`)!==`none`||n&&z(i,`position`)!==`static`)){var f=i.getBoundingClientRect();o-=f.top+parseInt(z(i,`border-top-width`)),s-=f.left+parseInt(z(i,`border-left-width`)),c=o+a.height,l=s+a.width;break}while(i=i.parentNode);if(r&&e!==window){var p=rn(i||e),m=p&&p.a,h=p&&p.d;p&&(o/=h,s/=m,d/=m,u/=h,c=o+u,l=s+d)}return{top:o,left:s,bottom:c,right:l,width:d,height:u}}}function sn(e,t,n){for(var r=pn(e,!0),i=B(e)[t];r;){var a=B(r)[n],o=void 0;if(o=i>=a,!o)return r;if(r===on())break;r=pn(r,!1)}return!1}function cn(e,t,n,r){for(var i=0,a=0,o=e.children;a<o.length;){if(o[a].style.display!==`none`&&o[a]!==Q.ghost&&(r||o[a]!==Q.dragged)&&L(o[a],n.draggable,e,!1)){if(i===t)return o[a];i++}a++}return null}function ln(e,t){for(var n=e.lastElementChild;n&&(n===Q.ghost||z(n,`display`)===`none`||t&&!en(n,t));)n=n.previousElementSibling;return n||null}function un(e,t){var n=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)e.nodeName.toUpperCase()!==`TEMPLATE`&&e!==Q.clone&&(!t||en(e,t))&&n++;return n}function dn(e){var t=0,n=0,r=on();if(e)do{var i=rn(e),a=i.a,o=i.d;t+=e.scrollLeft*a,n+=e.scrollTop*o}while(e!==r&&(e=e.parentNode));return[t,n]}function fn(e,t){for(var n in e)if(e.hasOwnProperty(n)){for(var r in t)if(t.hasOwnProperty(r)&&t[r]===e[n][r])return Number(n)}return-1}function pn(e,t){if(!e||!e.getBoundingClientRect)return on();var n=e,r=!1;do if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var i=z(n);if(n.clientWidth<n.scrollWidth&&(i.overflowX==`auto`||i.overflowX==`scroll`)||n.clientHeight<n.scrollHeight&&(i.overflowY==`auto`||i.overflowY==`scroll`)){if(!n.getBoundingClientRect||n===document.body)return on();if(r||t)return n;r=!0}}while(n=n.parentNode);return on()}function mn(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function hn(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}var gn;function _n(e,t){return function(){if(!gn){var n=arguments,r=this;n.length===1?e.call(r,n[0]):e.apply(r,n),gn=setTimeout(function(){gn=void 0},t)}}}function vn(){clearTimeout(gn),gn=void 0}function yn(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function bn(e){var t=window.Polymer,n=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(!0):n?n(e).clone(!0)[0]:e.cloneNode(!0)}function xn(e,t,n){var r={};return Array.from(e.children).forEach(function(i){if(L(i,t.draggable,e,!1)&&!i.animated&&i!==n){var a=B(i);r.left=Math.min(r.left??1/0,a.left),r.top=Math.min(r.top??1/0,a.top),r.right=Math.max(r.right??-1/0,a.right),r.bottom=Math.max(r.bottom??-1/0,a.bottom)}}),r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}var V=`Sortable`+new Date().getTime();function Sn(){var e=[],t;return{captureAnimationState:function(){e=[],this.options.animation&&[].slice.call(this.el.children).forEach(function(t){if(z(t,`display`)!==`none`&&t!==Q.ghost){e.push({target:t,rect:B(t)});var n=Bt({},e[e.length-1].rect);if(t.thisAnimationDuration){var r=rn(t,!0);r&&(n.top-=r.f,n.left-=r.e)}t.fromRect=n}})},addAnimationState:function(t){e.push(t)},removeAnimationState:function(t){e.splice(fn(e,{target:t}),1)},animateAll:function(n){var r=this;if(!this.options.animation){clearTimeout(t),typeof n==`function`&&n();return}var i=!1,a=0;e.forEach(function(e){var t=0,n=e.target,o=n.fromRect,s=B(n),c=n.prevFromRect,l=n.prevToRect,u=e.rect,d=rn(n,!0);d&&(s.top-=d.f,s.left-=d.e),n.toRect=s,n.thisAnimationDuration&&hn(c,s)&&!hn(o,s)&&(u.top-s.top)/(u.left-s.left)===(o.top-s.top)/(o.left-s.left)&&(t=wn(u,c,l,r.options)),hn(s,o)||(n.prevFromRect=o,n.prevToRect=s,t||=r.options.animation,r.animate(n,u,s,t)),t&&(i=!0,a=Math.max(a,t),clearTimeout(n.animationResetTimer),n.animationResetTimer=setTimeout(function(){n.animationTime=0,n.prevFromRect=null,n.fromRect=null,n.prevToRect=null,n.thisAnimationDuration=null},t),n.thisAnimationDuration=t)}),clearTimeout(t),i?t=setTimeout(function(){typeof n==`function`&&n()},a):typeof n==`function`&&n(),e=[]},animate:function(e,t,n,r){if(r){z(e,`transition`,``),z(e,`transform`,``);var i=rn(this.el),a=i&&i.a,o=i&&i.d,s=(t.left-n.left)/(a||1),c=(t.top-n.top)/(o||1);e.animatingX=!!s,e.animatingY=!!c,z(e,`transform`,`translate3d(`+s+`px,`+c+`px,0)`),this.forRepaintDummy=Cn(e),z(e,`transition`,`transform `+r+`ms`+(this.options.easing?` `+this.options.easing:``)),z(e,`transform`,`translate3d(0,0,0)`),typeof e.animated==`number`&&clearTimeout(e.animated),e.animated=setTimeout(function(){z(e,`transition`,``),z(e,`transform`,``),e.animated=!1,e.animatingX=!1,e.animatingY=!1},r)}}}}function Cn(e){return e.offsetWidth}function wn(e,t,n,r){return Math.sqrt((t.top-e.top)**2+(t.left-e.left)**2)/Math.sqrt((t.top-n.top)**2+(t.left-n.left)**2)*r.animation}var Tn=[],En={initializeByDefault:!0},Dn={mount:function(e){for(var t in En)En.hasOwnProperty(t)&&!(t in e)&&(e[t]=En[t]);Tn.forEach(function(t){if(t.pluginName===e.pluginName)throw`Sortable: Cannot mount plugin ${e.pluginName} more than once`}),Tn.push(e)},pluginEvent:function(e,t,n){var r=this;this.eventCanceled=!1,n.cancel=function(){r.eventCanceled=!0};var i=e+`Global`;Tn.forEach(function(r){t[r.pluginName]&&(t[r.pluginName][i]&&t[r.pluginName][i](Bt({sortable:t},n)),t.options[r.pluginName]&&t[r.pluginName][e]&&t[r.pluginName][e](Bt({sortable:t},n)))})},initializePlugins:function(e,t,n,r){for(var i in Tn.forEach(function(r){var i=r.pluginName;if(e.options[i]||r.initializeByDefault){var a=new r(e,t,e.options);a.sortable=e,a.options=e.options,e[i]=a,P(n,a.defaults)}}),e.options)if(e.options.hasOwnProperty(i)){var a=this.modifyOption(e,i,e.options[i]);a!==void 0&&(e.options[i]=a)}},getEventProperties:function(e,t){var n={};return Tn.forEach(function(r){typeof r.eventProperties==`function`&&P(n,r.eventProperties.call(t[r.pluginName],e))}),n},modifyOption:function(e,t,n){var r;return Tn.forEach(function(i){e[i.pluginName]&&i.optionListeners&&typeof i.optionListeners[t]==`function`&&(r=i.optionListeners[t].call(e[i.pluginName],n))}),r}};function On(e){var t=e.sortable,n=e.rootEl,r=e.name,i=e.targetEl,a=e.cloneEl,o=e.toEl,s=e.fromEl,c=e.oldIndex,l=e.newIndex,u=e.oldDraggableIndex,d=e.newDraggableIndex,f=e.originalEvent,p=e.putSortable,m=e.extraEventProperties;if(t||=n&&n[V],t){var h,g=t.options,_=`on`+r.charAt(0).toUpperCase()+r.substr(1);window.CustomEvent&&!qt&&!Jt?h=new CustomEvent(r,{bubbles:!0,cancelable:!0}):(h=document.createEvent(`Event`),h.initEvent(r,!0,!0)),h.to=o||n,h.from=s||n,h.item=i||n,h.clone=a,h.oldIndex=c,h.newIndex=l,h.oldDraggableIndex=u,h.newDraggableIndex=d,h.originalEvent=f,h.pullMode=p?p.lastPutMode:void 0;var v=Bt(Bt({},m),Dn.getEventProperties(r,t));for(var y in v)h[y]=v[y];n&&n.dispatchEvent(h),g[_]&&g[_].call(t,h)}}var kn=[`evt`],H=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.evt,i=Wt(n,kn);Dn.pluginEvent.bind(Q)(e,t,Bt({dragEl:W,parentEl:G,ghostEl:K,rootEl:q,nextEl:An,lastDownEl:jn,cloneEl:J,cloneHidden:Mn,dragStarted:Kn,putSortable:X,activeSortable:Q.active,originalEvent:r,oldIndex:Nn,oldDraggableIndex:Pn,newIndex:Y,newDraggableIndex:Fn,hideGhostForTarget:ur,unhideGhostForTarget:dr,cloneNowHidden:function(){Mn=!0},cloneNowShown:function(){Mn=!1},dispatchSortableEvent:function(e){U({sortable:t,name:e,originalEvent:r})}},i))};function U(e){On(Bt({putSortable:X,cloneEl:J,targetEl:W,rootEl:q,oldIndex:Nn,oldDraggableIndex:Pn,newIndex:Y,newDraggableIndex:Fn},e))}var W,G,K,q,An,jn,J,Mn,Nn,Y,Pn,Fn,In,X,Ln=!1,Rn=!1,zn=[],Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn=!1,Xn=!1,Zn,Z,Qn=[],$n=!1,er=[],tr=typeof document<`u`,nr=Zt,rr=Jt||qt?`cssFloat`:`float`,ir=tr&&!Qt&&!Zt&&`draggable`in document.createElement(`div`),ar=function(){if(tr){if(qt)return!1;var e=document.createElement(`x`);return e.style.cssText=`pointer-events:auto`,e.style.pointerEvents===`auto`}}(),or=function(e,t){var n=z(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),i=cn(e,0,t),a=cn(e,1,t),o=i&&z(i),s=a&&z(a),c=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+B(i).width,l=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(i&&o.float&&o.float!==`none`){var u=o.float===`left`?`left`:`right`;return a&&(s.clear===`both`||s.clear===u)?`vertical`:`horizontal`}return i&&(o.display===`block`||o.display===`flex`||o.display===`table`||o.display===`grid`||c>=r&&n[rr]===`none`||a&&n[rr]===`none`&&c+l>r)?`vertical`:`horizontal`},sr=function(e,t,n){var r=n?e.left:e.top,i=n?e.right:e.bottom,a=n?e.width:e.height,o=n?t.left:t.top,s=n?t.right:t.bottom,c=n?t.width:t.height;return r===o||i===s||r+a/2===o+c/2},cr=function(e,t){var n;return zn.some(function(r){var i=r[V].options.emptyInsertThreshold;if(i&&!ln(r)){var a=B(r),o=e>=a.left-i&&e<=a.right+i,s=t>=a.top-i&&t<=a.bottom+i;if(o&&s)return n=r}}),n},lr=function(e){function t(e,n){return function(r,i,a,o){var s=r.options.group.name&&i.options.group.name&&r.options.group.name===i.options.group.name;if(e==null&&(n||s))return!0;if(e==null||e===!1)return!1;if(n&&e===`clone`)return e;if(typeof e==`function`)return t(e(r,i,a,o),n)(r,i,a,o);var c=(n?r:i).options.group.name;return e===!0||typeof e==`string`&&e===c||e.join&&e.indexOf(c)>-1}}var n={},r=e.group;(!r||Vt(r)!=`object`)&&(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},ur=function(){!ar&&K&&z(K,`display`,`none`)},dr=function(){!ar&&K&&z(K,`display`,``)};tr&&!Qt&&document.addEventListener(`click`,function(e){if(Rn)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Rn=!1,!1},!0);var fr=function(e){if(W){e=e.touches?e.touches[0]:e;var t=cr(e.clientX,e.clientY);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[V]._onDragOver(n)}}},pr=function(e){W&&W.parentNode[V]._isOutsideThisEl(e.target)};function Q(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw`Sortable: \`el\` must be an HTMLElement, not ${{}.toString.call(e)}`;this.el=e,this.options=t=P({},t),e[V]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?`>li`:`>*`,swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return or(e,this.options)},ghostClass:`sortable-ghost`,chosenClass:`sortable-chosen`,dragClass:`sortable-drag`,ignore:`a, img`,filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData(`Text`,t.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:Q.supportPointer!==!1&&`PointerEvent`in window&&!Xt,emptyInsertThreshold:5};for(var r in Dn.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var i in lr(t),this)i.charAt(0)===`_`&&typeof this[i]==`function`&&(this[i]=this[i].bind(this));this.nativeDraggable=!t.forceFallback&&ir,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?F(e,`pointerdown`,this._onTapStart):(F(e,`mousedown`,this._onTapStart),F(e,`touchstart`,this._onTapStart)),this.nativeDraggable&&(F(e,`dragover`,this),F(e,`dragenter`,this)),zn.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),P(this,Sn())}Q.prototype={constructor:Q,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(qn=null)},_getDirection:function(e,t){return typeof this.options.direction==`function`?this.options.direction.call(this,e,t,W):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,i=r.preventOnFilter,a=e.type,o=e.touches&&e.touches[0]||e.pointerType&&e.pointerType===`touch`&&e,s=(o||e).target,c=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,l=r.filter;if(Cr(n),!W&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||r.disabled)&&!c.isContentEditable&&!(!this.nativeDraggable&&Xt&&s&&s.tagName.toUpperCase()===`SELECT`)&&(s=L(s,r.draggable,n,!1),!(s&&s.animated)&&jn!==s)){if(Nn=un(s),Pn=un(s,r.draggable),typeof l==`function`){if(l.call(this,e,s,this)){U({sortable:t,rootEl:c,name:`filter`,targetEl:s,toEl:n,fromEl:n}),H(`filter`,t,{evt:e}),i&&e.cancelable&&e.preventDefault();return}}else if(l&&(l=l.split(`,`).some(function(r){if(r=L(c,r.trim(),n,!1),r)return U({sortable:t,rootEl:r,name:`filter`,targetEl:s,fromEl:n,toEl:n}),H(`filter`,t,{evt:e}),!0}),l)){i&&e.cancelable&&e.preventDefault();return}r.handle&&!L(c,r.handle,n,!1)||this._prepareDragStart(e,o,s)}}},_prepareDragStart:function(e,t,n){var r=this,i=r.el,a=r.options,o=i.ownerDocument,s;if(n&&!W&&n.parentNode===i){var c=B(n);if(q=i,W=n,G=W.parentNode,An=W.nextSibling,jn=n,In=a.group,Q.dragged=W,Bn={target:W,clientX:(t||e).clientX,clientY:(t||e).clientY},Wn=Bn.clientX-c.left,Gn=Bn.clientY-c.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,W.style[`will-change`]=`all`,s=function(){if(H(`delayEnded`,r,{evt:e}),Q.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!Yt&&r.nativeDraggable&&(W.draggable=!0),r._triggerDragStart(e,t),U({sortable:r,name:`choose`,originalEvent:e}),R(W,a.chosenClass,!0)},a.ignore.split(`,`).forEach(function(e){an(W,e.trim(),gr)}),F(o,`dragover`,fr),F(o,`mousemove`,fr),F(o,`touchmove`,fr),F(o,`mouseup`,r._onDrop),F(o,`touchend`,r._onDrop),F(o,`touchcancel`,r._onDrop),Yt&&this.nativeDraggable&&(this.options.touchStartThreshold=4,W.draggable=!0),H(`delayStart`,this,{evt:e}),a.delay&&(!a.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(Jt||qt))){if(Q.eventCanceled){this._onDrop();return}F(o,`mouseup`,r._disableDelayedDrag),F(o,`touchend`,r._disableDelayedDrag),F(o,`touchcancel`,r._disableDelayedDrag),F(o,`mousemove`,r._delayedDragTouchMoveHandler),F(o,`touchmove`,r._delayedDragTouchMoveHandler),a.supportPointer&&F(o,`pointermove`,r._delayedDragTouchMoveHandler),r._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(){W&&gr(W),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,`mousemove`,this._delayedDragTouchMoveHandler),I(e,`touchmove`,this._delayedDragTouchMoveHandler),I(e,`pointermove`,this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t||=e.pointerType==`touch`&&e,!this.nativeDraggable||t?this.options.supportPointer?F(document,`pointermove`,this._onTouchMove):t?F(document,`touchmove`,this._onTouchMove):F(document,`mousemove`,this._onTouchMove):(F(W,`dragend`,this),F(q,`dragstart`,this._onDragStart));try{document.selection?wr(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(Ln=!1,q&&W){H(`dragStarted`,this,{evt:t}),this.nativeDraggable&&F(document,`dragover`,pr);var n=this.options;!e&&R(W,n.dragClass,!1),R(W,n.ghostClass,!0),Q.active=this,e&&this._appendGhost(),U({sortable:this,name:`start`,originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(Vn){this._lastX=Vn.clientX,this._lastY=Vn.clientY,ur();for(var e=document.elementFromPoint(Vn.clientX,Vn.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(Vn.clientX,Vn.clientY),e!==t);)t=e;if(W.parentNode[V]._isOutsideThisEl(e),t)do{if(t[V]){var n=void 0;if(n=t[V]._onDragOver({clientX:Vn.clientX,clientY:Vn.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);dr()}},_onTouchMove:function(e){if(Bn){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,i=e.touches?e.touches[0]:e,a=K&&rn(K,!0),o=K&&a&&a.a,s=K&&a&&a.d,c=nr&&Z&&dn(Z),l=(i.clientX-Bn.clientX+r.x)/(o||1)+(c?c[0]-Qn[0]:0)/(o||1),u=(i.clientY-Bn.clientY+r.y)/(s||1)+(c?c[1]-Qn[1]:0)/(s||1);if(!Q.active&&!Ln){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(K){a?(a.e+=l-(Hn||0),a.f+=u-(Un||0)):a={a:1,b:0,c:0,d:1,e:l,f:u};var d=`matrix(${a.a},${a.b},${a.c},${a.d},${a.e},${a.f})`;z(K,`webkitTransform`,d),z(K,`mozTransform`,d),z(K,`msTransform`,d),z(K,`transform`,d),Hn=l,Un=u,Vn=i}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!K){var e=this.options.fallbackOnBody?document.body:q,t=B(W,!0,nr,!0,e),n=this.options;if(nr){for(Z=e;z(Z,`position`)===`static`&&z(Z,`transform`)===`none`&&Z!==document;)Z=Z.parentNode;Z!==document.body&&Z!==document.documentElement?(Z===document&&(Z=on()),t.top+=Z.scrollTop,t.left+=Z.scrollLeft):Z=on(),Qn=dn(Z)}K=W.cloneNode(!0),R(K,n.ghostClass,!1),R(K,n.fallbackClass,!0),R(K,n.dragClass,!0),z(K,`transition`,``),z(K,`transform`,``),z(K,`box-sizing`,`border-box`),z(K,`margin`,0),z(K,`top`,t.top),z(K,`left`,t.left),z(K,`width`,t.width),z(K,`height`,t.height),z(K,`opacity`,`0.8`),z(K,`position`,nr?`absolute`:`fixed`),z(K,`zIndex`,`100000`),z(K,`pointerEvents`,`none`),Q.ghost=K,e.appendChild(K),z(K,`transform-origin`,Wn/parseInt(K.style.width)*100+`% `+Gn/parseInt(K.style.height)*100+`%`)}},_onDragStart:function(e,t){var n=this,r=e.dataTransfer,i=n.options;if(H(`dragStart`,this,{evt:e}),Q.eventCanceled){this._onDrop();return}H(`setupClone`,this),Q.eventCanceled||(J=bn(W),J.removeAttribute(`id`),J.draggable=!1,J.style[`will-change`]=``,this._hideClone(),R(J,this.options.chosenClass,!1),Q.clone=J),n.cloneId=wr(function(){H(`clone`,n),!Q.eventCanceled&&(n.options.removeCloneOnHide||q.insertBefore(J,W),n._hideClone(),U({sortable:n,name:`clone`}))}),!t&&R(W,i.dragClass,!0),t?(Rn=!0,n._loopId=setInterval(n._emulateDragOver,50)):(I(document,`mouseup`,n._onDrop),I(document,`touchend`,n._onDrop),I(document,`touchcancel`,n._onDrop),r&&(r.effectAllowed=`move`,i.setData&&i.setData.call(n,r,W)),F(document,`drop`,n),z(W,`transform`,`translateZ(0)`)),Ln=!0,n._dragStartId=wr(n._dragStarted.bind(n,t,e)),F(document,`selectstart`,n),Kn=!0,Xt&&z(document.body,`user-select`,`none`)},_onDragOver:function(e){var t=this.el,n=e.target,r,i,a,o=this.options,s=o.group,c=Q.active,l=In===s,u=o.sort,d=X||c,f,p=this,m=!1;if($n)return;function h(o,s){H(o,p,Bt({evt:e,isOwner:l,axis:f?`vertical`:`horizontal`,revert:a,dragRect:r,targetRect:i,canSort:u,fromSortable:d,target:n,completed:_,onMove:function(n,i){return hr(q,t,W,r,n,B(n),e,i)},changed:v},s))}function g(){h(`dragOverAnimationCapture`),p.captureAnimationState(),p!==d&&d.captureAnimationState()}function _(r){return h(`dragOverCompleted`,{insertion:r}),r&&(l?c._hideClone():c._showClone(p),p!==d&&(R(W,X?X.options.ghostClass:c.options.ghostClass,!1),R(W,o.ghostClass,!0)),X!==p&&p!==Q.active?X=p:p===Q.active&&X&&(X=null),d===p&&(p._ignoreWhileAnimating=n),p.animateAll(function(){h(`dragOverAnimationComplete`),p._ignoreWhileAnimating=null}),p!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(n===W&&!W.animated||n===t&&!n.animated)&&(qn=null),!o.dragoverBubble&&!e.rootEl&&n!==document&&(W.parentNode[V]._isOutsideThisEl(e.target),!r&&fr(e)),!o.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function v(){Y=un(W),Fn=un(W,o.draggable),U({sortable:p,name:`change`,toEl:t,newIndex:Y,newDraggableIndex:Fn,originalEvent:e})}if(e.preventDefault!==void 0&&e.cancelable&&e.preventDefault(),n=L(n,o.draggable,t,!0),h(`dragOver`),Q.eventCanceled)return m;if(W.contains(e.target)||n.animated&&n.animatingX&&n.animatingY||p._ignoreWhileAnimating===n)return _(!1);if(Rn=!1,c&&!o.disabled&&(l?u||(a=G!==q):X===this||(this.lastPutMode=In.checkPull(this,c,W,e))&&s.checkPut(this,c,W,e))){if(f=this._getDirection(e,n)===`vertical`,r=B(W),h(`dragOverValid`),Q.eventCanceled)return m;if(a)return G=q,g(),this._hideClone(),h(`revert`),Q.eventCanceled||(An?q.insertBefore(W,An):q.appendChild(W)),_(!0);var y=ln(t,o.draggable);if(!y||yr(e,f,this)&&!y.animated){if(y===W)return _(!1);if(y&&t===e.target&&(n=y),n&&(i=B(n)),hr(q,t,W,r,n,i,e,!!n)!==!1)return g(),y&&y.nextSibling?t.insertBefore(W,y.nextSibling):t.appendChild(W),G=t,v(),_(!0)}else if(y&&vr(e,f,this)){var ee=cn(t,0,o,!0);if(ee===W)return _(!1);if(n=ee,i=B(n),hr(q,t,W,r,n,i,e,!1)!==!1)return g(),t.insertBefore(W,ee),G=t,v(),_(!0)}else if(n.parentNode===t){i=B(n);var b=0,x,S=W.parentNode!==t,te=!sr(W.animated&&W.toRect||r,n.animated&&n.toRect||i,f),C=f?`top`:`left`,w=sn(n,`top`,`top`)||sn(W,`top`,`top`),ne=w?w.scrollTop:void 0;qn!==n&&(x=i[C],Yn=!1,Xn=!te&&o.invertSwap||S),b=br(e,n,i,f,te?1:o.swapThreshold,o.invertedSwapThreshold==null?o.swapThreshold:o.invertedSwapThreshold,Xn,qn===n);var re;if(b!==0){var ie=un(W);do ie-=b,re=G.children[ie];while(re&&(z(re,`display`)===`none`||re===K))}if(b===0||re===n)return _(!1);qn=n,Jn=b;var ae=n.nextElementSibling,oe=!1;oe=b===1;var se=hr(q,t,W,r,n,i,e,oe);if(se!==!1)return(se===1||se===-1)&&(oe=se===1),$n=!0,setTimeout(_r,30),g(),oe&&!ae?t.appendChild(W):n.parentNode.insertBefore(W,oe?ae:n),w&&yn(w,0,ne-w.scrollTop),G=W.parentNode,x!==void 0&&!Xn&&(Zn=Math.abs(x-B(n)[C])),v(),_(!0)}if(t.contains(W))return _(!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`,fr),I(document,`mousemove`,fr),I(document,`touchmove`,fr)},_offUpEvents:function(){var e=this.el.ownerDocument;I(e,`mouseup`,this._onDrop),I(e,`touchend`,this._onDrop),I(e,`pointerup`,this._onDrop),I(e,`touchcancel`,this._onDrop),I(document,`selectstart`,this)},_onDrop:function(e){var t=this.el,n=this.options;if(Y=un(W),Fn=un(W,n.draggable),H(`drop`,this,{evt:e}),G=W&&W.parentNode,Y=un(W),Fn=un(W,n.draggable),Q.eventCanceled){this._nulling();return}Ln=!1,Xn=!1,Yn=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Tr(this.cloneId),Tr(this._dragStartId),this.nativeDraggable&&(I(document,`drop`,this),I(t,`dragstart`,this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Xt&&z(document.body,`user-select`,``),z(W,`transform`,``),e&&(Kn&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),K&&K.parentNode&&K.parentNode.removeChild(K),(q===G||X&&X.lastPutMode!==`clone`)&&J&&J.parentNode&&J.parentNode.removeChild(J),W&&(this.nativeDraggable&&I(W,`dragend`,this),gr(W),W.style[`will-change`]=``,Kn&&!Ln&&R(W,X?X.options.ghostClass:this.options.ghostClass,!1),R(W,this.options.chosenClass,!1),U({sortable:this,name:`unchoose`,toEl:G,newIndex:null,newDraggableIndex:null,originalEvent:e}),q===G?Y!==Nn&&Y>=0&&(U({sortable:this,name:`update`,toEl:G,originalEvent:e}),U({sortable:this,name:`sort`,toEl:G,originalEvent:e})):(Y>=0&&(U({rootEl:G,name:`add`,toEl:G,fromEl:q,originalEvent:e}),U({sortable:this,name:`remove`,toEl:G,originalEvent:e}),U({rootEl:G,name:`sort`,toEl:G,fromEl:q,originalEvent:e}),U({sortable:this,name:`sort`,toEl:G,originalEvent:e})),X&&X.save()),Q.active&&((Y==null||Y===-1)&&(Y=Nn,Fn=Pn),U({sortable:this,name:`end`,toEl:G,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){H(`nulling`,this),q=W=G=K=An=J=jn=Mn=Bn=Vn=Kn=Y=Fn=Nn=Pn=qn=Jn=X=In=Q.dragged=Q.ghost=Q.clone=Q.active=null,er.forEach(function(e){e.checked=!0}),er.length=Hn=Un=0},handleEvent:function(e){switch(e.type){case`drop`:case`dragend`:this._onDrop(e);break;case`dragenter`:case`dragover`:W&&(this._onDragOver(e),mr(e));break;case`selectstart`:e.preventDefault()}},toArray:function(){for(var e=[],t,n=this.el.children,r=0,i=n.length,a=this.options;r<i;r++)t=n[r],L(t,a.draggable,this.el,!1)&&e.push(t.getAttribute(a.dataIdAttr)||Sr(t));return e},sort:function(e,t){var n={},r=this.el;this.toArray().forEach(function(e,t){var i=r.children[t];L(i,this.options.draggable,r,!1)&&(n[e]=i)},this),t&&this.captureAnimationState(),e.forEach(function(e){n[e]&&(r.removeChild(n[e]),r.appendChild(n[e]))}),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return L(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var n=this.options;if(t===void 0)return n[e];var r=Dn.modifyOption(this,e,t);n[e]=r===void 0?t:r,e===`group`&&lr(n)},destroy:function(){H(`destroy`,this);var e=this.el;e[V]=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(e){e.removeAttribute(`draggable`)}),this._onDrop(),this._disableDelayedDragEvents(),zn.splice(zn.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!Mn){if(H(`hideClone`,this),Q.eventCanceled)return;z(J,`display`,`none`),this.options.removeCloneOnHide&&J.parentNode&&J.parentNode.removeChild(J),Mn=!0}},_showClone:function(e){if(e.lastPutMode!==`clone`){this._hideClone();return}if(Mn){if(H(`showClone`,this),Q.eventCanceled)return;W.parentNode==q&&!this.options.group.revertClone?q.insertBefore(J,W):An?q.insertBefore(J,An):q.appendChild(J),this.options.group.revertClone&&this.animate(W,J),z(J,`display`,``),Mn=!1}}};function mr(e){e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),e.cancelable&&e.preventDefault()}function hr(e,t,n,r,i,a,o,s){var c,l=e[V],u=l.options.onMove,d;return window.CustomEvent&&!qt&&!Jt?c=new CustomEvent(`move`,{bubbles:!0,cancelable:!0}):(c=document.createEvent(`Event`),c.initEvent(`move`,!0,!0)),c.to=t,c.from=e,c.dragged=n,c.draggedRect=r,c.related=i||t,c.relatedRect=a||B(t),c.willInsertAfter=s,c.originalEvent=o,e.dispatchEvent(c),u&&(d=u.call(l,c,o)),d}function gr(e){e.draggable=!1}function _r(){$n=!1}function vr(e,t,n){var r=B(cn(n.el,0,n.options,!0)),i=xn(n.el,n.options,K),a=10;return t?e.clientX<i.left-a||e.clientY<r.top&&e.clientX<r.right:e.clientY<i.top-a||e.clientY<r.bottom&&e.clientX<r.left}function yr(e,t,n){var r=B(ln(n.el,n.options.draggable)),i=xn(n.el,n.options,K),a=10;return t?e.clientX>i.right+a||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>i.bottom+a||e.clientX>r.right&&e.clientY>r.top}function br(e,t,n,r,i,a,o,s){var c=r?e.clientY:e.clientX,l=r?n.height:n.width,u=r?n.top:n.left,d=r?n.bottom:n.right,f=!1;if(!o){if(s&&Zn<l*i){if(!Yn&&(Jn===1?c>u+l*a/2:c<d-l*a/2)&&(Yn=!0),Yn)f=!0;else if(Jn===1?c<u+Zn:c>d-Zn)return-Jn}else if(c>u+l*(1-i)/2&&c<d-l*(1-i)/2)return xr(t)}return f||=o,f&&(c<u+l*a/2||c>d-l*a/2)?c>u+l/2?1:-1:0}function xr(e){return un(W)<un(e)?1:-1}function Sr(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,r=0;n--;)r+=t.charCodeAt(n);return r.toString(36)}function Cr(e){er.length=0;for(var t=e.getElementsByTagName(`input`),n=t.length;n--;){var r=t[n];r.checked&&er.push(r)}}function wr(e){return setTimeout(e,0)}function Tr(e){return clearTimeout(e)}tr&&F(document,`touchmove`,function(e){(Q.active||Ln)&&e.cancelable&&e.preventDefault()}),Q.utils={on:F,off:I,css:z,find:an,is:function(e,t){return!!L(e,t,e,!1)},extend:mn,throttle:_n,closest:L,toggleClass:R,clone:bn,index:un,nextTick:wr,cancelNextTick:Tr,detectDirection:or,getChild:cn},Q.get=function(e){return e[V]},Q.mount=function(){var e=[...arguments];e[0].constructor===Array&&(e=e[0]),e.forEach(function(e){if(!e.prototype||!e.prototype.constructor)throw`Sortable: Mounted plugin must be a constructor function, not ${{}.toString.call(e)}`;e.utils&&(Q.utils=Bt(Bt({},Q.utils),e.utils)),Dn.mount(e)})},Q.create=function(e,t){return new Q(e,t)},Q.version=Gt;var $=[],Er,Dr,Or=!1,kr,Ar,jr,Mr;function Nr(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)e.charAt(0)===`_`&&typeof this[e]==`function`&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?F(document,`dragover`,this._handleAutoScroll):this.options.supportPointer?F(document,`pointermove`,this._handleFallbackAutoScroll):t.touches?F(document,`touchmove`,this._handleFallbackAutoScroll):F(document,`mousemove`,this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;!this.options.dragOverBubble&&!t.rootEl&&this._handleAutoScroll(t)},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)),Fr(),Pr(),vn()},nulling:function(){jr=Dr=Er=Or=Mr=kr=Ar=null,$.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var n=this,r=(e.touches?e.touches[0]:e).clientX,i=(e.touches?e.touches[0]:e).clientY,a=document.elementFromPoint(r,i);if(jr=e,t||this.options.forceAutoScrollFallback||Jt||qt||Xt){Ir(e,this.options,a,t);var o=pn(a,!0);Or&&(!Mr||r!==kr||i!==Ar)&&(Mr&&Fr(),Mr=setInterval(function(){var a=pn(document.elementFromPoint(r,i),!0);a!==o&&(o=a,Pr()),Ir(e,n.options,a,t)},10),kr=r,Ar=i)}else{if(!this.options.bubbleScroll||pn(a,!0)===on()){Pr();return}Ir(e,this.options,pn(a,!1),!1)}}},P(e,{pluginName:`scroll`,initializeByDefault:!0})}function Pr(){$.forEach(function(e){clearInterval(e.pid)}),$=[]}function Fr(){clearInterval(Mr)}var Ir=_n(function(e,t,n,r){if(t.scroll){var i=(e.touches?e.touches[0]:e).clientX,a=(e.touches?e.touches[0]:e).clientY,o=t.scrollSensitivity,s=t.scrollSpeed,c=on(),l=!1,u;Dr!==n&&(Dr=n,Pr(),Er=t.scroll,u=t.scrollFn,Er===!0&&(Er=pn(n,!0)));var d=0,f=Er;do{var p=f,m=B(p),h=m.top,g=m.bottom,_=m.left,v=m.right,y=m.width,ee=m.height,b=void 0,x=void 0,S=p.scrollWidth,te=p.scrollHeight,C=z(p),w=p.scrollLeft,ne=p.scrollTop;p===c?(b=y<S&&(C.overflowX===`auto`||C.overflowX===`scroll`||C.overflowX===`visible`),x=ee<te&&(C.overflowY===`auto`||C.overflowY===`scroll`||C.overflowY===`visible`)):(b=y<S&&(C.overflowX===`auto`||C.overflowX===`scroll`),x=ee<te&&(C.overflowY===`auto`||C.overflowY===`scroll`));var re=b&&(Math.abs(v-i)<=o&&w+y<S)-(Math.abs(_-i)<=o&&!!w),ie=x&&(Math.abs(g-a)<=o&&ne+ee<te)-(Math.abs(h-a)<=o&&!!ne);if(!$[d])for(var ae=0;ae<=d;ae++)$[ae]||($[ae]={});($[d].vx!=re||$[d].vy!=ie||$[d].el!==p)&&($[d].el=p,$[d].vx=re,$[d].vy=ie,clearInterval($[d].pid),(re!=0||ie!=0)&&(l=!0,$[d].pid=setInterval(function(){r&&this.layer===0&&Q.active._onTouchMove(jr);var t=$[this.layer].vy?$[this.layer].vy*s:0,n=$[this.layer].vx?$[this.layer].vx*s:0;typeof u==`function`&&u.call(Q.dragged.parentNode[V],n,t,e,jr,$[this.layer].el)!==`continue`||yn($[this.layer].el,n,t)}.bind({layer:d}),24))),d++}while(t.bubbleScroll&&f!==c&&(f=pn(f,!1)));Or=l}},30),Lr=function(e){var t=e.originalEvent,n=e.putSortable,r=e.dragEl,i=e.activeSortable,a=e.dispatchSortableEvent,o=e.hideGhostForTarget,s=e.unhideGhostForTarget;if(t){var c=n||i;o();var l=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,u=document.elementFromPoint(l.clientX,l.clientY);s(),c&&!c.el.contains(u)&&(a(`spill`),this.onSpill({dragEl:r,putSortable:n}))}};function Rr(){}Rr.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 r=cn(this.sortable.el,this.startIndex,this.options);r?this.sortable.el.insertBefore(t,r):this.sortable.el.appendChild(t),this.sortable.animateAll(),n&&n.animateAll()},drop:Lr},P(Rr,{pluginName:`revertOnSpill`});function zr(){}zr.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:Lr},P(zr,{pluginName:`removeOnSpill`}),Q.mount(new Nr),Q.mount(zr,Rr);function Br(e){return e==null?e:JSON.parse(JSON.stringify(e))}function Vr(e){l()&&h(e)}function Hr(e){l()?p(e):te(e)}var Ur=null,Wr=null;function Gr(e=null,t=null){Ur=e,Wr=t}function Kr(){return{data:Ur,clonedData:Wr}}var qr=Symbol(`cloneElement`);function Jr(...t){let n=l()?.proxy,i=null,a=t[0],[,o,s]=t;Array.isArray(e(o))||(s=o,o=null);let u=null,{immediate:d=!0,clone:f=Br,forceFallback:p,fallbackOnBody:m,customUpdate:h}=e(s)??{};function g(t){let{from:n,oldIndex:r,item:a}=t,s=Array.from(n.childNodes);i=p&&!m?s.slice(0,-1):s;let c=e(e(o)?.[r]),l=f(c);Gr(c,l),a[qr]=l}function _(t){let n=t.item[qr];if(!jt(n)){if(Nt(t.item),r(o)){let r=[...e(o)];o.value=A(r,t.newDraggableIndex,n);return}A(e(o),t.newDraggableIndex,n)}}function v(t){let{from:n,item:i,oldIndex:a,oldDraggableIndex:s,pullMode:c,clone:l}=t;if(Mt(n,i,a),c===`clone`){Nt(l);return}if(r(o)){let t=[...e(o)];o.value=At(t,s);return}At(e(o),s)}function y(t){if(h){h(t);return}let{from:n,item:i,oldIndex:a,oldDraggableIndex:s,newDraggableIndex:c}=t;if(Nt(i),Mt(n,i,a),r(o)){let t=[...e(o)];o.value=Ot(t,s,c);return}Ot(e(o),s,c)}function ee(e){let{newIndex:t,oldIndex:n,from:r,to:a}=e,o=null,s=t===n&&r===a;try{if(s){let e=null;i?.some((t,n)=>{if(e&&i?.length!==a.childNodes.length)return r.insertBefore(e,t.nextSibling),!0;let o=a.childNodes[n];e=a?.replaceChild(t,o)})}}catch(e){o=e}finally{i=null}te(()=>{if(Gr(),o)throw o})}let b={onUpdate:y,onStart:g,onAdd:_,onRemove:v,onEnd:ee};function x(t){let r=e(a);return t||=j(r)?Pt(r,n?.$el):r,t&&!Lt(t)&&(t=t.$el),t||Dt(`Root element not found`),t}function S(){let t=e(s)??{},{immediate:n,clone:r}=t,i=wt(t,[`immediate`,`clone`]);return Rt(i,(e,t)=>{M(e)&&(i[e]=(e,...n)=>(N(e,Kr()),t(e,...n)))}),It(o===null?{}:b,i)}let C=e=>{e=x(e),u&&w.destroy(),u=new Q(e,S())};c(()=>s,()=>{u&&Rt(S(),(e,t)=>{u?.option(e,t)})},{deep:!0});let w={option:(e,t)=>u?.option(e,t),destroy:()=>{u?.destroy(),u=null},save:()=>u?.save(),toArray:()=>u?.toArray(),closest:(...e)=>u?.closest(...e)};return Hr(()=>{d&&C()}),Vr(w.destroy),Ct({start:C,pause:()=>w?.option(`disabled`,!0),resume:()=>w?.option(`disabled`,!1)},w)}var Yr=[`update`,`start`,`add`,`remove`,`choose`,`unchoose`,`end`,`sort`,`filter`,`clone`,`move`,`change`],Xr=[`clone`,`animation`,`ghostClass`,`group`,`sort`,`disabled`,`store`,`handle`,`draggable`,`swapThreshold`,`invertSwap`,`invertedSwapThreshold`,`removeCloneOnHide`,`direction`,`chosenClass`,`dragClass`,`ignore`,`filter`,`preventOnFilter`,`easing`,`setData`,`dropBubble`,`dragoverBubble`,`dataIdAttr`,`delay`,`delayOnTouchOnly`,`touchStartThreshold`,`forceFallback`,`fallbackClass`,`fallbackOnBody`,`fallbackTolerance`,`fallbackOffset`,`supportPointer`,`emptyInsertThreshold`,`scroll`,`forceAutoScrollFallback`,`scrollSensitivity`,`scrollSpeed`,`bubbleScroll`,`modelValue`,`tag`,`target`,`customUpdate`,...Yr.map(e=>`on${e.replace(/^\S/,e=>e.toUpperCase())}`)],Zr=v({name:`VueDraggable`,model:{prop:`modelValue`,event:`update:modelValue`},props:Xr,emits:[`update:modelValue`,...Yr],setup(r,{slots:o,emit:s,expose:c,attrs:l}){let u=Yr.reduce((e,t)=>{let n=`on${t.replace(/^\S/,e=>e.toUpperCase())}`;return e[n]=(...e)=>s(t,...e),e},{}),d=g(()=>{let t=n(r),{modelValue:i}=t,a=wt(t,[`modelValue`]),o=Object.entries(a).reduce((t,[n,r])=>{let i=e(r);return i!==void 0&&(t[n]=i),t},{});return Ct(Ct({},u),k(Ct(Ct({},l),o)))}),f=g({get:()=>r.modelValue,set:e=>s(`update:modelValue`,e)}),p=t(),m=i(Jr(r.target||p,f,d));return c(m),()=>a(r.tag||`div`,{ref:p},(o?.default)?.call(o,m))}}),Qr={mounted:`mounted`,unmounted:`unmounted`};Qr.mounted,Qr.unmounted;export{vt as n,Zr as t};
|
package/web/index.html
CHANGED
|
@@ -15,39 +15,40 @@
|
|
|
15
15
|
content="width=device-width, initial-scale=1.0, interactive-widget=resizes-content"
|
|
16
16
|
/>
|
|
17
17
|
<title>Runeya</title>
|
|
18
|
-
<script type="module" crossorigin src="/assets/index-
|
|
18
|
+
<script type="module" crossorigin src="/assets/index-B9DJf2V0.js"></script>
|
|
19
19
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-Dd_uD5pT.js">
|
|
20
20
|
<link rel="modulepreload" crossorigin href="/assets/reactivity.esm-bundler-BQ9SB2vv.js">
|
|
21
21
|
<link rel="modulepreload" crossorigin href="/assets/runtime-core.esm-bundler-DujKY9QV.js">
|
|
22
22
|
<link rel="modulepreload" crossorigin href="/assets/floating-ui.dom-DWhsZyqT.js">
|
|
23
23
|
<link rel="modulepreload" crossorigin href="/assets/src--GO-VSJ0.js">
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-BZ1Pz5am.js">
|
|
25
|
-
<link rel="modulepreload" crossorigin href="/assets/auth-
|
|
26
|
-
<link rel="modulepreload" crossorigin href="/assets/trpc-
|
|
27
|
-
<link rel="modulepreload" crossorigin href="/assets/project-launch.store-
|
|
28
|
-
<link rel="modulepreload" crossorigin href="/assets/i18n-
|
|
25
|
+
<link rel="modulepreload" crossorigin href="/assets/auth-Bk1GP5sB.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/trpc-CfuFkKgp.js">
|
|
27
|
+
<link rel="modulepreload" crossorigin href="/assets/project-launch.store-B5nhdGdh.js">
|
|
28
|
+
<link rel="modulepreload" crossorigin href="/assets/i18n-8FjeJaKW.js">
|
|
29
29
|
<link rel="modulepreload" crossorigin href="/assets/useApi-s_02lHjl-DZYO2tHU.js">
|
|
30
30
|
<link rel="modulepreload" crossorigin href="/assets/vue-router-fin80h5W.js">
|
|
31
31
|
<link rel="modulepreload" crossorigin href="/assets/error-DpF7X5iu.js">
|
|
32
|
-
<link rel="modulepreload" crossorigin href="/assets/project.store-
|
|
32
|
+
<link rel="modulepreload" crossorigin href="/assets/project.store-Bm2JWNbd.js">
|
|
33
33
|
<link rel="modulepreload" crossorigin href="/assets/use-polling-CEkhIY_9.js">
|
|
34
34
|
<link rel="modulepreload" crossorigin href="/assets/useAiChatDrawer-D_ofn8Eo.js">
|
|
35
|
-
<link rel="modulepreload" crossorigin href="/assets/settings-scope-
|
|
35
|
+
<link rel="modulepreload" crossorigin href="/assets/settings-scope-CKPq86HZ.js">
|
|
36
36
|
<link rel="modulepreload" crossorigin href="/assets/schemas-68I2iCLF.js">
|
|
37
|
-
<link rel="modulepreload" crossorigin href="/assets/dist-
|
|
38
|
-
<link rel="modulepreload" crossorigin href="/assets/service.store-
|
|
39
|
-
<link rel="modulepreload" crossorigin href="/assets/scenario.store-
|
|
37
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-N4nrnbnA.js">
|
|
38
|
+
<link rel="modulepreload" crossorigin href="/assets/service.store-XS50iGKo.js">
|
|
39
|
+
<link rel="modulepreload" crossorigin href="/assets/scenario.store-88w6P6s2.js">
|
|
40
|
+
<link rel="modulepreload" crossorigin href="/assets/app-mode-BVpTuh0i.js">
|
|
40
41
|
<link rel="modulepreload" crossorigin href="/assets/cloud-auth-D_am4FlK.js">
|
|
41
|
-
<link rel="modulepreload" crossorigin href="/assets/cloud-session-
|
|
42
|
-
<link rel="modulepreload" crossorigin href="/assets/cloud-client-
|
|
43
|
-
<link rel="modulepreload" crossorigin href="/assets/useProjectCatalog-
|
|
42
|
+
<link rel="modulepreload" crossorigin href="/assets/cloud-session-Cjw54Y--.js">
|
|
43
|
+
<link rel="modulepreload" crossorigin href="/assets/cloud-client-0zD_NI6q.js">
|
|
44
|
+
<link rel="modulepreload" crossorigin href="/assets/useProjectCatalog-BB5IR6o8.js">
|
|
44
45
|
<link rel="modulepreload" crossorigin href="/assets/editor.api-Bef3xeth.js">
|
|
45
46
|
<link rel="modulepreload" crossorigin href="/assets/toggleHighContrast-Dqz1Qao1.js">
|
|
46
47
|
<link rel="modulepreload" crossorigin href="/assets/register-BLGIM2pN.js">
|
|
47
|
-
<link rel="modulepreload" crossorigin href="/assets/agent.store-
|
|
48
|
-
<link rel="modulepreload" crossorigin href="/assets/AiChatModals-
|
|
49
|
-
<link rel="modulepreload" crossorigin href="/assets/editor.store-
|
|
50
|
-
<link rel="modulepreload" crossorigin href="/assets/vue-draggable-plus-
|
|
48
|
+
<link rel="modulepreload" crossorigin href="/assets/agent.store-Co44dMZf.js">
|
|
49
|
+
<link rel="modulepreload" crossorigin href="/assets/AiChatModals-It9jnB26.js">
|
|
50
|
+
<link rel="modulepreload" crossorigin href="/assets/editor.store-DmM6ZlTm.js">
|
|
51
|
+
<link rel="modulepreload" crossorigin href="/assets/vue-draggable-plus-D5ni4jMk.js">
|
|
51
52
|
<link rel="modulepreload" crossorigin href="/assets/process-BWkHpZOM.js">
|
|
52
53
|
<link rel="modulepreload" crossorigin href="/assets/theme-BZCAxfJD.js">
|
|
53
54
|
<link rel="stylesheet" crossorigin href="/assets/src-CcvmgMAA.css">
|
|
@@ -56,7 +57,7 @@
|
|
|
56
57
|
<link rel="stylesheet" crossorigin href="/assets/toggleHighContrast--ixms01u.css">
|
|
57
58
|
<link rel="stylesheet" crossorigin href="/assets/AiChatModals-EfRuvId7.css">
|
|
58
59
|
<link rel="stylesheet" crossorigin href="/assets/vue-draggable-plus-BHsveB8w.css">
|
|
59
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
60
|
+
<link rel="stylesheet" crossorigin href="/assets/index-teBqdnuv.css">
|
|
60
61
|
</head>
|
|
61
62
|
<body>
|
|
62
63
|
<div id="app"></div>
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
agentManager
|
|
3
|
-
} from "./chunk-GXE5TLLJ.js";
|
|
4
|
-
import "./chunk-7L6AQUBR.js";
|
|
5
|
-
import "./chunk-XAFOP677.js";
|
|
6
|
-
import "./chunk-IXO5KIO5.js";
|
|
7
|
-
import "./chunk-OZBSOSAS.js";
|
|
8
|
-
export {
|
|
9
|
-
agentManager
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=agent-manager-M4NA5YFD.js.map
|
package/chunk-7HIPFSOA.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/desktop-launcher.ts"],"sourcesContent":["/**\n * Cross-platform desktop launcher (`runeya install-desktop`).\n *\n * Deliberately an explicit sub-command rather than a postinstall hook: npm 12\n * blocks lifecycle scripts by default, so a launcher created that way would be\n * silently missing. Here the user asks for it, and gets the paths back.\n *\n * Nothing is embedded — the launcher points at the Node binary and the CLI\n * entry point currently in use. If the user switches Node version manager,\n * re-running the command re-pins the paths.\n */\nimport { mkdir, writeFile, rm, copyFile, access, readdir, readFile } from 'node:fs/promises';\nimport { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport { homedir } from 'node:os';\nimport { join, dirname } from 'node:path';\n\nimport {\n slugifyLauncherName,\n launcherIdFromName,\n deriveLauncherIdentity,\n} from '@runeya/packages-shared';\n\nconst exec = promisify(execFile);\n\n/**\n * Le nommage d'un lanceur vit dans `packages/shared` : le serveur en a besoin\n * pour proposer le même nom depuis l'interface. Réexporté ici sous les noms\n * locaux, qui sont ceux que le reste du CLI appelle.\n */\nexport {\n slugifyLauncherName as slugify,\n launcherIdFromName as idFromName,\n deriveLauncherIdentity as deriveIdentity,\n};\n\nexport type InstallOptions = {\n /** Absolute path to the Node binary the launcher must use. */\n nodePath: string;\n /** Absolute path to the CLI entry point (dist/index.js). */\n cliEntry: string;\n /** Directory holding the CLI dist — used to find the bundled icons in assets/. */\n distDir: string;\n /** Working directory to pin, or null to let the desktop decide. */\n workingDir: string | null;\n /** Display name, e.g. \"Runeya\" or \"Runeya — my-stack\". */\n name: string;\n /** Filesystem-safe id derived from the name, e.g. \"runeya-my-stack\". */\n id: string;\n /** Port baked into the launcher, or null to follow Runeya's default. */\n port: number | null;\n /** Agent port, or null to let Runeya derive it from `port + 1`. */\n agentPort: number | null;\n};\n\n/**\n * Arguments the launcher passes to the CLI.\n *\n * `--agent-port` is omitted when it is exactly what Runeya would derive on its\n * own, so the command line stays readable and keeps following the derivation\n * if it ever changes.\n */\nexport function launcherArgs(opts: Pick<InstallOptions, 'port' | 'agentPort'>): string[] {\n const args = ['--from-desktop'];\n if (opts.port !== null) args.push('--port', String(opts.port));\n if (opts.agentPort !== null && opts.agentPort !== (opts.port ?? 4000) + 1) {\n args.push('--agent-port', String(opts.agentPort));\n }\n return args;\n}\n\nexport type LauncherResult = {\n /** Files created or removed, for reporting back to the user. */\n paths: string[];\n /** Non-fatal problems (missing icon, desktop database refresh failed…). */\n warnings: string[];\n};\n\n/**\n * Le dossier de travail d'un lanceur, avec un repli qui n'est jamais la racine.\n *\n * Sans dossier épinglé, un lanceur hérite du cwd du système — `/` pour le\n * Finder comme pour systemd — et Runeya y placerait son `.runeya`. La racine\n * est en lecture seule sous macOS et interdite d'écriture sous Linux : le home\n * est le seul repli toujours disponible. Le CLI applique la même garde à\n * l'exécution, pour les lanceurs posés avant ce correctif.\n */\nexport function launcherWorkingDir(workingDir: string | null): string {\n return workingDir ?? homedir();\n}\n\nasync function exists(path: string): Promise<boolean> {\n try {\n await access(path);\n return true;\n } catch {\n return false;\n }\n}\n\n/** Best-effort command: never fails the install, just reports a warning. */\nasync function tryExec(file: string, args: string[], warnings: string[]): Promise<void> {\n try {\n await exec(file, args);\n } catch {\n warnings.push(`Commande optionnelle échouée : ${file} (le lanceur est créé, le menu peut mettre un instant à l'afficher)`);\n }\n}\n\n// ─── Linux ───────────────────────────────────────────────────────────────────\n\n/**\n * Quote a value for the `Exec=` key of a .desktop file.\n * Per the Desktop Entry spec, inside a quoted argument the characters\n * `\"`, backtick, `$` and `\\` must each be preceded by a backslash.\n */\nexport function desktopExecQuote(value: string): string {\n return `\"${value.replace(/[\"`$\\\\]/g, (c) => `\\\\${c}`)}\"`;\n}\n\n/** Escape a value for a non-Exec .desktop key (only backslashes are special). */\nfunction desktopValue(value: string): string {\n return value.replace(/\\\\/g, '\\\\\\\\').replace(/\\n/g, ' ');\n}\n\nfunction xdgDataHome(): string {\n return process.env['XDG_DATA_HOME'] || join(homedir(), '.local/share');\n}\n\nfunction linuxPaths(id: string) {\n const dataHome = xdgDataHome();\n const appsDir = join(dataHome, 'applications');\n return {\n appsDir,\n entry: join(appsDir, `${id}.desktop`),\n iconDir: join(dataHome, 'icons/hicolor/scalable/apps'),\n icon: join(dataHome, `icons/hicolor/scalable/apps/${id}.svg`),\n };\n}\n\nasync function installLinux(opts: InstallOptions): Promise<LauncherResult> {\n const paths: string[] = [];\n const warnings: string[] = [];\n const p = linuxPaths(opts.id);\n\n // The icon is an SVG, which the scalable hicolor directory takes as-is.\n const sourceIcon = join(opts.distDir, 'assets/icon.svg');\n let iconName = 'application-x-executable';\n if (await exists(sourceIcon)) {\n await mkdir(p.iconDir, { recursive: true });\n await copyFile(sourceIcon, p.icon);\n paths.push(p.icon);\n iconName = opts.id;\n } else {\n warnings.push(`Icône introuvable (${sourceIcon}), icône générique utilisée`);\n }\n\n // --from-desktop: nobody is watching a terminal, so startup failures must be\n // reported in a browser window rather than written to a discarded stderr.\n const exec_ = [opts.nodePath, opts.cliEntry, ...launcherArgs(opts)]\n .map(desktopExecQuote)\n .join(' ');\n const lines = [\n '[Desktop Entry]',\n 'Type=Application',\n `Name=${desktopValue(opts.name)}`,\n 'Comment=Process and service manager',\n `Exec=${exec_}`,\n `Icon=${iconName}`,\n 'Terminal=false',\n 'Categories=Development;',\n 'StartupNotify=true',\n // Marker used by uninstall-desktop to refuse deleting a hand-written entry\n 'X-Runeya-Managed=true',\n ];\n lines.push(`Path=${desktopValue(launcherWorkingDir(opts.workingDir))}`);\n\n await mkdir(p.appsDir, { recursive: true });\n await writeFile(p.entry, lines.join('\\n') + '\\n', { mode: 0o755 });\n paths.push(p.entry);\n\n await tryExec('update-desktop-database', [p.appsDir], warnings);\n\n return { paths, warnings };\n}\n\nasync function uninstallLinux(id: string): Promise<LauncherResult> {\n const paths: string[] = [];\n const warnings: string[] = [];\n const p = linuxPaths(id);\n for (const target of [p.entry, p.icon]) {\n if (await exists(target)) {\n await rm(target, { force: true });\n paths.push(target);\n }\n }\n if (paths.length) await tryExec('update-desktop-database', [p.appsDir], warnings);\n return { paths, warnings };\n}\n\n// ─── macOS ───────────────────────────────────────────────────────────────────\n\n/** Escape a value destined for a <string> node of an Info.plist. */\nfunction plistString(value: string): string {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n}\n\n/** Single-quote a value for the POSIX shell inside the .app stub script. */\nfunction shQuote(value: string): string {\n return `'${value.replace(/'/g, `'\\\\''`)}'`;\n}\n\nfunction macAppPath(name: string): string {\n return join(homedir(), 'Applications', `${name}.app`);\n}\n\nasync function installMac(opts: InstallOptions): Promise<LauncherResult> {\n const warnings: string[] = [];\n const appPath = macAppPath(opts.name);\n const macosDir = join(appPath, 'Contents/MacOS');\n const resourcesDir = join(appPath, 'Contents/Resources');\n const execName = opts.id;\n\n await mkdir(macosDir, { recursive: true });\n await mkdir(resourcesDir, { recursive: true });\n\n // The bundle executable is a shell stub: no compiled code, no signing needed.\n // A locally generated .app carries no quarantine attribute, so Gatekeeper\n // lets it run even unsigned.\n const stub = [\n '#!/bin/sh',\n '# Generated by `runeya install-desktop` — safe to delete.',\n `cd ${shQuote(launcherWorkingDir(opts.workingDir))} || exit 1`,\n `exec ${[opts.nodePath, opts.cliEntry, ...launcherArgs(opts)].map(shQuote).join(' ')} \"$@\"`,\n '',\n ].filter(Boolean).join('\\n');\n await writeFile(join(macosDir, execName), stub, { mode: 0o755 });\n\n // CFBundleIconFile is only emitted when the .icns actually made it into the\n // bundle — a key pointing at a missing file makes Finder fall back silently,\n // which is harder to diagnose than no key at all.\n const sourceIcns = join(opts.distDir, 'assets/icon.icns');\n let iconKey = '';\n if (await exists(sourceIcns)) {\n await copyFile(sourceIcns, join(resourcesDir, `${execName}.icns`));\n iconKey = `\\n <key>CFBundleIconFile</key><string>${plistString(execName)}</string>`;\n } else {\n warnings.push(`Icône introuvable (${sourceIcns}), icône générique utilisée`);\n }\n\n const plist = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n <key>CFBundleName</key><string>${plistString(opts.name)}</string>\n <key>CFBundleDisplayName</key><string>${plistString(opts.name)}</string>\n <key>CFBundleExecutable</key><string>${plistString(execName)}</string>\n <key>CFBundleIdentifier</key><string>dev.runeya.launcher.${plistString(opts.id)}</string>\n <key>CFBundlePackageType</key><string>APPL</string>${iconKey}\n <key>CFBundleInfoDictionaryVersion</key><string>6.0</string>\n <key>CFBundleShortVersionString</key><string>1.0</string>\n <key>NSHighResolutionCapable</key><true/>\n</dict>\n</plist>\n`;\n await writeFile(join(appPath, 'Contents/Info.plist'), plist);\n\n // Ask LaunchServices to notice the new bundle so Spotlight finds it right away.\n await tryExec(\n '/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister',\n ['-f', appPath],\n warnings,\n );\n\n return { paths: [appPath], warnings };\n}\n\nasync function uninstallMac(name: string): Promise<LauncherResult> {\n const appPath = macAppPath(name);\n if (!(await exists(appPath))) return { paths: [], warnings: [] };\n await rm(appPath, { recursive: true, force: true });\n return { paths: [appPath], warnings: [] };\n}\n\n// ─── Windows ─────────────────────────────────────────────────────────────────\n\n/** Single-quote a value for a PowerShell literal string. */\nexport function psQuote(value: string): string {\n return `'${value.replace(/'/g, \"''\")}'`;\n}\n\nfunction windowsLnkPath(name: string): string {\n const appData = process.env['APPDATA'] || join(homedir(), 'AppData/Roaming');\n return join(appData, 'Microsoft/Windows/Start Menu/Programs', `${name}.lnk`);\n}\n\n/**\n * Où vit le script qui lance Runeya sans console.\n *\n * Hors du dossier du menu Démarrer — un `.vbs` posé là apparaîtrait dans la\n * recherche Windows à côté du raccourci — et hors du `dist` du paquet, qu'une\n * réinstallation npm remplace : le script y disparaîtrait sans que rien ne le\n * recrée, faute de postinstall (npm 12 les bloque).\n */\nfunction windowsVbsPath(id: string): string {\n const localAppData = process.env['LOCALAPPDATA'] || join(homedir(), 'AppData/Local');\n return join(localAppData, 'Runeya', `${id}.vbs`);\n}\n\n/** Double-quote a value for a VBScript string literal. */\nexport function vbsQuote(value: string): string {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n}\n\n/**\n * Le script qui lance Runeya **sans fenêtre**.\n *\n * `node.exe` est une application console : Windows lui alloue une console, et\n * un raccourci ne sait que la réduire (`WindowStyle = 7`) — d'où une fenêtre de\n * commande dans la barre des tâches pendant tout l'usage de l'application.\n *\n * `wscript.exe`, lui, est une application graphique : il n'ouvre aucune console\n * et lance sa cible en `SW_HIDE` (le `0` de `Run`). La console de Node existe\n * donc toujours — c'est ce qui compte : **elle est seulement cachée, pas\n * absente**, et tout ce que Runeya lance ensuite (l'agent, git, docker, les\n * services) l'hérite sans rien afficher. C'est la même intention que le\n * `windowsHide` des runners, posée une fois pour toute la descendance.\n *\n * Le `False` rend la main immédiatement : `wscript` sort, Runeya reste.\n */\nexport function windowsVbsScript(\n opts: Pick<InstallOptions, 'nodePath' | 'cliEntry' | 'port' | 'agentPort'> & { workingDir: string | null },\n): string {\n const command = [opts.nodePath, opts.cliEntry, ...launcherArgs(opts)]\n .map((part) => `\"${part}\"`)\n .join(' ');\n return [\n // Commentaires en ASCII : wscript lit un .vbs sans BOM comme de l'ANSI, et\n // des accents s'y afficheraient de travers à qui l'ouvre.\n \"' Runeya launcher - created by 'runeya install-desktop', do not edit.\",\n \"' wscript.exe opens no console; the 0 below starts Runeya hidden.\",\n 'Set sh = CreateObject(\"WScript.Shell\")',\n `sh.CurrentDirectory = ${vbsQuote(launcherWorkingDir(opts.workingDir))}`,\n `sh.Run ${vbsQuote(command)}, 0, False`,\n '',\n ].join('\\n');\n}\n\nasync function runPowerShell(script: string, warnings: string[]): Promise<void> {\n // -EncodedCommand avoids every layer of cmd.exe quoting.\n const encoded = Buffer.from(script, 'utf16le').toString('base64');\n try {\n await exec('powershell.exe', ['-NoProfile', '-NonInteractive', '-EncodedCommand', encoded]);\n } catch (err) {\n warnings.push(`PowerShell a échoué : ${(err as Error).message}`);\n throw err;\n }\n}\n\nasync function installWindows(opts: InstallOptions): Promise<LauncherResult> {\n const warnings: string[] = [];\n const lnk = windowsLnkPath(opts.name);\n\n // The .ico is referenced in place inside the installed dist rather than\n // copied: the shortcut already breaks if that dist moves, so a second copy\n // would only add a file to leave behind.\n const icoPath = join(opts.distDir, 'assets/icon.ico');\n const iconPath = (await exists(icoPath)) ? icoPath : null;\n if (!iconPath) warnings.push(`Icône introuvable (${icoPath}), icône de Node utilisée`);\n\n // Le raccourci ne lance pas Node : il lance `wscript.exe`, qui lance Node\n // sans console. Un raccourci pointant sur `node.exe` laissait une fenêtre de\n // commande dans la barre des tâches, `WindowStyle` ne sachant que la réduire.\n const vbs = windowsVbsPath(opts.id);\n await mkdir(dirname(vbs), { recursive: true });\n await writeFile(vbs, windowsVbsScript(opts), 'utf8');\n\n const wscript = join(process.env['SystemRoot'] || 'C:\\\\Windows', 'System32', 'wscript.exe');\n\n const script = [\n `$ws = New-Object -ComObject WScript.Shell`,\n `$sc = $ws.CreateShortcut(${psQuote(lnk)})`,\n `$sc.TargetPath = ${psQuote(wscript)}`,\n `$sc.Arguments = ${psQuote(`\"${vbs}\"`)}`,\n `$sc.WorkingDirectory = ${psQuote(launcherWorkingDir(opts.workingDir))}`,\n `$sc.Description = 'Runeya — process and service manager'`,\n // L'icône reste celle de Runeya : elle est déclarée à part de la cible.\n iconPath ? `$sc.IconLocation = ${psQuote(iconPath)}` : '',\n `$sc.Save()`,\n ].filter(Boolean).join('\\n');\n\n await mkdir(dirname(lnk), { recursive: true });\n await runPowerShell(script, warnings);\n\n return { paths: [lnk, vbs], warnings };\n}\n\nasync function uninstallWindows(name: string, id: string): Promise<LauncherResult> {\n // Les deux fichiers, et chacun pour lui-même : un raccourci posé avant que le\n // lanceur ne passe par `wscript` n'a pas de `.vbs` à côté de lui, et son\n // absence n'est pas une raison de laisser le raccourci en place.\n const removed: string[] = [];\n for (const path of [windowsLnkPath(name), windowsVbsPath(id)]) {\n if (!(await exists(path))) continue;\n await rm(path, { force: true });\n removed.push(path);\n }\n return { paths: removed, warnings: [] };\n}\n\n// ─── Reading back the launchers already installed ────────────────────────────\n\n/**\n * Un raccourci déjà posé, tel qu'on le relit sur le disque.\n *\n * Les fichiers écrits par `install-desktop` sont la seule source : pas de\n * registre à côté, qui dériverait dès qu'un raccourci est supprimé à la main.\n */\nexport type InstalledLauncher = {\n id: string;\n name: string;\n /** `null` : raccourci global (il démarre dans le dossier personnel). */\n workingDir: string | null;\n port: number | null;\n agentPort: number | null;\n nodePath: string;\n cliEntry: string;\n /** Les fichiers qui le composent — ceux qu'une suppression retirerait. */\n paths: string[];\n};\n\n/**\n * Les réglages d'un raccourci, relus dans la ligne de commande qu'il lance :\n * `node cli --from-desktop [--port N] [--agent-port M]`.\n *\n * `--agent-port` absent veut dire « port + 1 », comme le dérive Runeya — c'est\n * pour cela que `launcherArgs` l'omet.\n */\nexport function parseLauncherCommand(\n tokens: string[],\n): Pick<InstalledLauncher, 'nodePath' | 'cliEntry' | 'port' | 'agentPort'> | null {\n const [nodePath, cliEntry, ...args] = tokens;\n if (!nodePath || !cliEntry) return null;\n const flag = (name: string): number | null => {\n const i = args.indexOf(name);\n if (i === -1) return null;\n const value = Number(args[i + 1]);\n return Number.isInteger(value) && value >= 1 && value <= 65_535 ? value : null;\n };\n const port = flag('--port');\n const agentPort = flag('--agent-port') ?? (port === null ? null : port + 1);\n return { nodePath, cliEntry, port, agentPort };\n}\n\n/** Le dossier d'un raccourci, rendu à `null` quand il est le repli global. */\nfunction pinnedDir(dir: string): string | null {\n return dir === homedir() ? null : dir;\n}\n\n/**\n * Découper la clé `Exec=` d'un `.desktop` — l'inverse de `desktopExecQuote` :\n * arguments séparés par des espaces, entre guillemets doubles, où `\\x` vaut `x`.\n */\nexport function splitDesktopExec(exec: string): string[] {\n const tokens: string[] = [];\n let current = '';\n let quoted = false;\n let started = false;\n for (let i = 0; i < exec.length; i++) {\n const ch = exec[i]!;\n if (quoted && ch === '\\\\' && i + 1 < exec.length) { current += exec[++i]; continue; }\n if (ch === '\"') { quoted = !quoted; started = true; continue; }\n if (!quoted && ch === ' ') {\n if (started) tokens.push(current);\n current = ''; started = false;\n continue;\n }\n current += ch; started = true;\n }\n if (started) tokens.push(current);\n return tokens;\n}\n\n/** Relire un `.desktop` écrit par `installLinux`. `null` si ce n'en est pas un. */\nexport function parseDesktopEntry(id: string, text: string, path: string): InstalledLauncher | null {\n const keys = new Map<string, string>();\n for (const line of text.split('\\n')) {\n const eq = line.indexOf('=');\n if (eq > 0 && !keys.has(line.slice(0, eq))) keys.set(line.slice(0, eq), line.slice(eq + 1));\n }\n if (keys.get('X-Runeya-Managed') !== 'true') return null;\n const command = parseLauncherCommand(splitDesktopExec(keys.get('Exec') ?? ''));\n if (!command) return null;\n const unescape = (v: string) => v.replace(/\\\\\\\\/g, '\\\\');\n return {\n id,\n name: unescape(keys.get('Name') ?? id),\n workingDir: keys.has('Path') ? pinnedDir(unescape(keys.get('Path')!)) : null,\n ...command,\n paths: [path, linuxPaths(id).icon],\n };\n}\n\nasync function listLinux(): Promise<InstalledLauncher[]> {\n const { appsDir } = linuxPaths('');\n const found: InstalledLauncher[] = [];\n for (const file of await readdir(appsDir).catch(() => [] as string[])) {\n if (!file.endsWith('.desktop')) continue;\n const path = join(appsDir, file);\n const text = await readFile(path, 'utf8').catch(() => '');\n const launcher = parseDesktopEntry(file.slice(0, -'.desktop'.length), text, path);\n if (!launcher) continue;\n // L'icône n'est listée que si elle est là : c'est ce qu'on retirerait.\n if (!(await exists(launcher.paths[1]!))) launcher.paths.length = 1;\n found.push(launcher);\n }\n return found;\n}\n\n/** Découper une ligne shell faite d'arguments passés par `shQuote`. */\nfunction splitShQuoted(line: string): string[] {\n const tokens: string[] = [];\n for (const match of line.matchAll(/'((?:[^']|'\\\\'')*)'/g)) {\n tokens.push(match[1]!.replace(/'\\\\''/g, \"'\"));\n }\n return tokens;\n}\n\n/** Relire un `.app` écrit par `installMac` à partir de son plist et de son script. */\nexport function parseMacApp(plist: string, stub: string, path: string): InstalledLauncher | null {\n const key = (name: string): string | null => {\n const m = plist.match(new RegExp(`<key>${name}</key>\\\\s*<string>([^<]*)</string>`));\n return m ? m[1]!.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&') : null;\n };\n const identifier = key('CFBundleIdentifier');\n const prefix = 'dev.runeya.launcher.';\n if (!identifier?.startsWith(prefix)) return null;\n\n const lines = stub.split('\\n');\n const cd = lines.find((l) => l.startsWith('cd '));\n const execLine = lines.find((l) => l.startsWith('exec '));\n const command = execLine ? parseLauncherCommand(splitShQuoted(execLine)) : null;\n if (!command) return null;\n const dir = cd ? splitShQuoted(cd)[0] : undefined;\n return {\n id: identifier.slice(prefix.length),\n name: key('CFBundleName') ?? identifier.slice(prefix.length),\n workingDir: dir ? pinnedDir(dir) : null,\n ...command,\n paths: [path],\n };\n}\n\nasync function listMac(): Promise<InstalledLauncher[]> {\n const dir = join(homedir(), 'Applications');\n const found: InstalledLauncher[] = [];\n for (const entry of await readdir(dir).catch(() => [] as string[])) {\n if (!entry.endsWith('.app')) continue;\n const path = join(dir, entry);\n const plist = await readFile(join(path, 'Contents/Info.plist'), 'utf8').catch(() => '');\n const exe = plist.match(/<key>CFBundleExecutable<\\/key>\\s*<string>([^<]*)<\\/string>/)?.[1];\n if (!exe) continue;\n const stub = await readFile(join(path, 'Contents/MacOS', exe), 'utf8').catch(() => '');\n const launcher = parseMacApp(plist, stub, path);\n if (launcher) found.push(launcher);\n }\n return found;\n}\n\n/** Relire un `.vbs` écrit par `windowsVbsScript` : l'inverse de ses `vbsQuote`. */\nexport function parseVbs(id: string, text: string): Omit<InstalledLauncher, 'name' | 'paths'> | null {\n const literal = (prefix: string): string | null => {\n const line = text.split(/\\r?\\n/).find((l) => l.startsWith(prefix));\n const m = line?.slice(prefix.length).match(/^\"((?:[^\"]|\"\")*)\"/);\n return m ? m[1]!.replace(/\"\"/g, '\"') : null;\n };\n const dir = literal('sh.CurrentDirectory = ');\n const run = literal('sh.Run ');\n if (dir === null || run === null) return null;\n const tokens = [...run.matchAll(/\"([^\"]*)\"/g)].map((m) => m[1]!);\n const command = parseLauncherCommand(tokens);\n return command ? { id, workingDir: pinnedDir(dir), ...command } : null;\n}\n\nasync function listWindows(): Promise<InstalledLauncher[]> {\n const vbsDir = dirname(windowsVbsPath('x'));\n const lnkDir = dirname(windowsLnkPath('x'));\n // Le `.vbs` porte l'id, le raccourci du menu Démarrer le nom affiché. L'id\n // étant une fonction pure du nom, c'est lui qui les apparie — sans avoir à\n // demander à PowerShell ce que vise chaque raccourci.\n const lnkById = new Map<string, string>();\n for (const file of await readdir(lnkDir).catch(() => [] as string[])) {\n if (file.toLowerCase().endsWith('.lnk')) lnkById.set(launcherIdFromName(file.slice(0, -4)), file.slice(0, -4));\n }\n const found: InstalledLauncher[] = [];\n for (const file of await readdir(vbsDir).catch(() => [] as string[])) {\n if (!file.toLowerCase().endsWith('.vbs')) continue;\n const id = file.slice(0, -4);\n const parsed = parseVbs(id, await readFile(join(vbsDir, file), 'utf8').catch(() => ''));\n if (!parsed) continue;\n const name = lnkById.get(id);\n found.push({\n ...parsed,\n // Sans raccourci dans le menu, il ne reste que l'id pour le nommer.\n name: name ?? id,\n paths: [...(name ? [windowsLnkPath(name)] : []), join(vbsDir, file)],\n });\n }\n return found;\n}\n\n/** Ce qui empêcherait un raccourci de démarrer, en mots d'utilisateur. */\nexport async function launcherProblems(launcher: InstalledLauncher): Promise<string[]> {\n const problems: string[] = [];\n if (!(await exists(launcher.nodePath))) problems.push(`Node introuvable : ${launcher.nodePath}`);\n if (!(await exists(launcher.cliEntry))) problems.push(`Runeya introuvable : ${launcher.cliEntry}`);\n if (launcher.workingDir && !(await exists(launcher.workingDir))) problems.push(`Dossier introuvable : ${launcher.workingDir}`);\n return problems;\n}\n\n// ─── Entry points ────────────────────────────────────────────────────────────\n\nexport async function installDesktopLauncher(opts: InstallOptions): Promise<LauncherResult> {\n switch (process.platform) {\n case 'linux':\n case 'freebsd':\n case 'openbsd':\n return installLinux(opts);\n case 'darwin':\n return installMac(opts);\n case 'win32':\n return installWindows(opts);\n default:\n throw new Error(`Plateforme non supportée : ${process.platform}`);\n }\n}\n\nexport async function uninstallDesktopLauncher(name: string, id: string): Promise<LauncherResult> {\n switch (process.platform) {\n case 'linux':\n case 'freebsd':\n case 'openbsd':\n return uninstallLinux(id);\n case 'darwin':\n return uninstallMac(name);\n case 'win32':\n return uninstallWindows(name, id);\n default:\n throw new Error(`Plateforme non supportée : ${process.platform}`);\n }\n}\n\n/** Les raccourcis que `install-desktop` a posés sur cette machine. */\nexport async function listDesktopLaunchers(): Promise<InstalledLauncher[]> {\n switch (process.platform) {\n case 'linux':\n case 'freebsd':\n case 'openbsd':\n return listLinux();\n case 'darwin':\n return listMac();\n case 'win32':\n return listWindows();\n default:\n return [];\n }\n}\n"],"mappings":"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","names":["exec"]}
|