@loicngr/kobo 2.1.13 → 2.1.16

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.
Files changed (132) hide show
  1. package/AGENTS.md +38 -6
  2. package/CHANGELOG.md +12 -0
  3. package/CONFIGURATION.md +41 -5
  4. package/README.md +4 -2
  5. package/dist/mcp-server/kobo-tasks-server.js +62 -105
  6. package/dist/mcp-server/workspace-dialogue-client.js +15 -3
  7. package/dist/server/db/auto-loop-final-review-schema.js +18 -0
  8. package/dist/server/db/migrations.js +12 -1
  9. package/dist/server/db/review-return-schema.js +18 -1
  10. package/dist/server/db/schema.js +4 -0
  11. package/dist/server/db/workspace-message-batch-schema.js +9 -0
  12. package/dist/server/index.js +8 -1
  13. package/dist/server/routes/mcp.js +69 -3
  14. package/dist/server/routes/workspace-messages.js +22 -0
  15. package/dist/server/routes/workspaces.js +119 -4
  16. package/dist/server/services/agent/engines/claude-code/engine.js +37 -1
  17. package/dist/server/services/agent/orchestrator.js +159 -40
  18. package/dist/server/services/agent/session-controller.js +4 -1
  19. package/dist/server/services/auto-loop-final-review-service.js +329 -0
  20. package/dist/server/services/auto-loop-service.js +53 -10
  21. package/dist/server/services/pr-checkout-rollback-service.js +51 -0
  22. package/dist/server/services/pr-checkout-service.js +21 -1
  23. package/dist/server/services/review-launch-runtime.js +17 -0
  24. package/dist/server/services/review-return-service.js +58 -10
  25. package/dist/server/services/review-service.js +59 -11
  26. package/dist/server/services/workspace-creation-mcp-service.js +198 -0
  27. package/dist/server/services/workspace-group-message-mcp-service.js +58 -0
  28. package/dist/server/services/workspace-group-message-service.js +182 -0
  29. package/dist/server/services/workspace-lifecycle-mcp-service.js +72 -0
  30. package/dist/server/services/workspace-message-service.js +5 -0
  31. package/dist/server/services/workspace-service.js +11 -0
  32. package/dist/server/services/workspace-template-service.js +10 -0
  33. package/dist/shared/auto-loop-review.js +1 -0
  34. package/dist/shared/pr-checkout-steps.js +86 -0
  35. package/dist/shared/review-return.js +1 -0
  36. package/dist/shared/workspace-creation-tools.js +182 -0
  37. package/dist/shared/workspace-group-message-tools.js +134 -0
  38. package/dist/shared/workspace-group-messages.js +27 -0
  39. package/dist/shared/workspace-lifecycle-tools.js +112 -0
  40. package/package.json +1 -1
  41. package/src/client/dist/pwa/assets/ActivityFeed-tJmJhmtl.js +2 -0
  42. package/src/client/dist/pwa/assets/AutoLoopFinalReviewSettings-Bbrq02Xt.js +1 -0
  43. package/src/client/dist/pwa/assets/AutoLoopFinalReviewSettings-Q-OlSQ1c.css +1 -0
  44. package/src/client/dist/pwa/assets/{ChangelogPage-DD90Nl6c.js → ChangelogPage-BJfkAVYp.js} +1 -1
  45. package/src/client/dist/pwa/assets/{ComparisonPanel-D_BQFWiT.js → ComparisonPanel-BfP8APKY.js} +1 -1
  46. package/src/client/dist/pwa/assets/CreatePage-BbtNfo0x.js +2 -0
  47. package/src/client/dist/pwa/assets/CreatePage-DxOes_cF.css +1 -0
  48. package/src/client/dist/pwa/assets/{DashboardPage-DyvTdmBg.js → DashboardPage-DZYsAh5y.js} +1 -1
  49. package/src/client/dist/pwa/assets/DiffViewer-4Q-GJgyA.js +8 -0
  50. package/src/client/dist/pwa/assets/{DocumentsPanel-bm639sIu.js → DocumentsPanel-BfPlfiwU.js} +1 -1
  51. package/src/client/dist/pwa/assets/{DrawerToggleButton-KfwSzjeY.js → DrawerToggleButton-DG1Qjqk1.js} +1 -1
  52. package/src/client/dist/pwa/assets/GitPanel-ECnbb_rx.js +3 -0
  53. package/src/client/dist/pwa/assets/{HealthPage-37IHOIW-.js → HealthPage-_VXG1Zeo.js} +1 -1
  54. package/src/client/dist/pwa/assets/MainLayout-BH6grTuW.js +2 -0
  55. package/src/client/dist/pwa/assets/MainLayout-DnmUxNk7.css +1 -0
  56. package/src/client/dist/pwa/assets/{MemoryPanel-CucZMhjy.js → MemoryPanel-CVlvGZXZ.js} +1 -1
  57. package/src/client/dist/pwa/assets/{MemoryProposalList-CUQybzVR.js → MemoryProposalList-SJsnzUAM.js} +1 -1
  58. package/src/client/dist/pwa/assets/{QBtnDropdown-x6qPyl_7.js → QBtnDropdown-DBgGsN-D.js} +1 -1
  59. package/src/client/dist/pwa/assets/{QExpansionItem-D33aoRoG.js → QExpansionItem-DKgaMJ_l.js} +1 -1
  60. package/src/client/dist/pwa/assets/{QScrollArea-Di-D6t2u.js → QScrollArea-D3OCsq3g.js} +1 -1
  61. package/src/client/dist/pwa/assets/QSelect-Cb_s_nox.js +1 -0
  62. package/src/client/dist/pwa/assets/{QTooltip-BhwG7lp2.js → QTooltip-X5ps8Opw.js} +1 -1
  63. package/src/client/dist/pwa/assets/{SchedulePanel-qFi9Wxzh.js → SchedulePanel-Ww_FVlW5.js} +1 -1
  64. package/src/client/dist/pwa/assets/{SearchPage-DA9nRmsA.js → SearchPage-B87WEHf3.js} +1 -1
  65. package/src/client/dist/pwa/assets/SettingsPage-BAZLGUyg.js +9 -0
  66. package/src/client/dist/pwa/assets/{SplitWorkspacePage-Brw2XsYJ.js → SplitWorkspacePage-B99AJUbG.js} +1 -1
  67. package/src/client/dist/pwa/assets/{TerminalPanel-DVP18-nk.js → TerminalPanel-DnA1MXwu.js} +9 -9
  68. package/src/client/dist/pwa/assets/{ToolCallItem-cSHh3p_F.js → ToolCallItem-2vFggaur.js} +3 -3
  69. package/src/client/dist/pwa/assets/{TouchPan-C6LZZ3rw.js → TouchPan-BSU3z0aO.js} +1 -1
  70. package/src/client/dist/pwa/assets/{TourReplayButton-Czlqo18H.js → TourReplayButton-DQwS2xdD.js} +1 -1
  71. package/src/client/dist/pwa/assets/{WorkspaceAttentionLabels-BDYGq0pC.js → WorkspaceAttentionLabels-CM1tGDje.js} +1 -1
  72. package/src/client/dist/pwa/assets/WorkspacePage-B248nKIU.css +1 -0
  73. package/src/client/dist/pwa/assets/WorkspacePage-CQN6EKIn.js +4 -0
  74. package/src/client/dist/pwa/assets/{browser-ifCwUGpE.js → browser-DPsupI9Q.js} +1 -1
  75. package/src/client/dist/pwa/assets/{build-path-tree-BBkGq3lN.js → build-path-tree-CbIdt-p9.js} +1 -1
  76. package/src/client/dist/pwa/assets/custom-sounds-DR68eyF8.js +1 -0
  77. package/src/client/dist/pwa/assets/de-D3Ycvf_F.js +17 -0
  78. package/src/client/dist/pwa/assets/{editor.api-CV_seGJR.js → editor.api-DvgAtnOj.js} +1 -1
  79. package/src/client/dist/pwa/assets/{efforts-ttw0bL63.js → efforts-nmxfTVQD.js} +1 -1
  80. package/src/client/dist/pwa/assets/es-TgeS5898.js +17 -0
  81. package/src/client/dist/pwa/assets/{expand-template-C8biMRXo.js → expand-template-Brn5O4a1.js} +1 -1
  82. package/src/client/dist/pwa/assets/{format-Cu95dbxt.js → format-DfJ3Fv1i.js} +1 -1
  83. package/src/client/dist/pwa/assets/{formatters-C25D1RSd.js → formatters-B30bNFhq.js} +1 -1
  84. package/src/client/dist/pwa/assets/fr-CJafryNb.js +17 -0
  85. package/src/client/dist/pwa/assets/{freemarker2-DJEFr74q.js → freemarker2-DnZe74tc.js} +1 -1
  86. package/src/client/dist/pwa/assets/{handlebars-C_lzsMjX.js → handlebars-CmuMfxzO.js} +1 -1
  87. package/src/client/dist/pwa/assets/{html-CWmLFAmY.js → html-BD7OJFGX.js} +1 -1
  88. package/src/client/dist/pwa/assets/i18n-BY4JeBjk.js +1 -0
  89. package/src/client/dist/pwa/assets/index-C5fAw9ll.js +20 -0
  90. package/src/client/dist/pwa/assets/it-C5mN8Y61.js +17 -0
  91. package/src/client/dist/pwa/assets/{javascript-tsuiEUe-.js → javascript-Y-OrgcmW.js} +1 -1
  92. package/src/client/dist/pwa/assets/{liquid-BBr9BvUk.js → liquid-BqOkKePH.js} +1 -1
  93. package/src/client/dist/pwa/assets/{mdx-gjBH1cXG.js → mdx-D-58x2h0.js} +1 -1
  94. package/src/client/dist/pwa/assets/{monaco-contributions-CvGcBIsb.js → monaco-contributions-BW4ZMKO6.js} +1 -1
  95. package/src/client/dist/pwa/assets/{monaco.contribution-Uw-Lfb8Z.js → monaco.contribution-DJWqzNG-.js} +2 -2
  96. package/src/client/dist/pwa/assets/network-auth-BGPRhUa6.js +1 -0
  97. package/src/client/dist/pwa/assets/{notify-theme-PMSxqP6t.js → notify-theme-DZDzfxph.js} +1 -1
  98. package/src/client/dist/pwa/assets/{project-color-BDQa2TgU.js → project-color-gB5yeZPN.js} +1 -1
  99. package/src/client/dist/pwa/assets/{python-DlIgD1n6.js → python-BkBj1wDC.js} +1 -1
  100. package/src/client/dist/pwa/assets/{razor-AraFPlpM.js → razor-DOOJ_0b8.js} +1 -1
  101. package/src/client/dist/pwa/assets/{typescript-CB8UpXHM.js → typescript-Bheo43G5.js} +1 -1
  102. package/src/client/dist/pwa/assets/{use-search-index-status-CSREHQM4.js → use-search-index-status-CBpnyV-R.js} +1 -1
  103. package/src/client/dist/pwa/assets/use-tours-BHNasCvg.js +2 -0
  104. package/src/client/dist/pwa/assets/{use-worktree-restore-BM3Giig1.js → use-worktree-restore-CgABsWno.js} +1 -1
  105. package/src/client/dist/pwa/assets/{workspace-templates-BPMFvTnQ.js → workspace-templates-BnFkigYg.js} +1 -1
  106. package/src/client/dist/pwa/assets/{xml-uRjL1P43.js → xml-vHt2BD26.js} +1 -1
  107. package/src/client/dist/pwa/assets/{yaml-C9CFR4qV.js → yaml-BvhLPzP9.js} +1 -1
  108. package/src/client/dist/pwa/index.html +1 -1
  109. package/src/client/dist/pwa/sw.js +1 -1
  110. package/src/mcp-server/README.md +156 -12
  111. package/src/mcp-server/kobo-tasks-server.ts +73 -106
  112. package/src/mcp-server/workspace-dialogue-client.ts +18 -3
  113. package/src/client/dist/pwa/assets/ActivityFeed-BTRzc60o.js +0 -2
  114. package/src/client/dist/pwa/assets/CreatePage-BZAoCukb.js +0 -2
  115. package/src/client/dist/pwa/assets/CreatePage-CdCs8PRS.css +0 -1
  116. package/src/client/dist/pwa/assets/DiffViewer-D0K2PlZD.js +0 -8
  117. package/src/client/dist/pwa/assets/GitPanel-C-Ejlc9_.js +0 -3
  118. package/src/client/dist/pwa/assets/MainLayout-BQOOup9o.css +0 -1
  119. package/src/client/dist/pwa/assets/MainLayout-DXQ1ouYl.js +0 -2
  120. package/src/client/dist/pwa/assets/QSelect-MdPXvwm4.js +0 -1
  121. package/src/client/dist/pwa/assets/SettingsPage-DcV6apqE.js +0 -9
  122. package/src/client/dist/pwa/assets/WorkspacePage-BwUkijpS.js +0 -4
  123. package/src/client/dist/pwa/assets/WorkspacePage-Bwfv559o.css +0 -1
  124. package/src/client/dist/pwa/assets/custom-sounds-CeSgjIY7.js +0 -1
  125. package/src/client/dist/pwa/assets/de-CHY2BAfL.js +0 -17
  126. package/src/client/dist/pwa/assets/es-DbcSKp38.js +0 -17
  127. package/src/client/dist/pwa/assets/fr-CyyJ8S2c.js +0 -17
  128. package/src/client/dist/pwa/assets/i18n-CobVQiTM.js +0 -1
  129. package/src/client/dist/pwa/assets/index-ImUH7Bbt.js +0 -20
  130. package/src/client/dist/pwa/assets/it-XQJW2Xkr.js +0 -17
  131. package/src/client/dist/pwa/assets/network-auth-D0Vm6a09.js +0 -1
  132. package/src/client/dist/pwa/assets/use-tours-6yxNVmjH.js +0 -2
@@ -0,0 +1 @@
1
+ import{S as e,v as t}from"./reactivity.esm-bundler-DY1JkAEA.js";import{A as n,C as r,I as i,J as a,M as o,N as s,O as c,P as l,b as u,j as ee,k as d,l as f}from"./runtime-core.esm-bundler-Bqg71Vll.js";import{E as p,F as m,K as te,L as h,M as g,N as _,O as v,R as y,d as ne,f as b,m as x,s as S,t as C,z as w}from"./dom-BtYTvLeN.js";import{_ as T,l as re}from"./QBtn-BUSdPaf4.js";import{n as E,t as D}from"./use-dark-BHObfh0O.js";import{C as O,S as k,_ as ie,a as ae,b as A,c as j,f as M,g as oe,h as N,m as se,n as P,o as ce,r as F,s as le,v as ue,x as I,y as L}from"./detached-fullscreen-Du3TcYdX.js";import{i as de,r as fe}from"./private.use-form-DY1BkePL.js";import{Ft as pe,It as me,Lt as he,Mt as ge,Nt as _e,Pt as ve,en as ye,nn as be,pn as R,tn as xe,vn as Se}from"./index-C5fAw9ll.js";import{n as Ce,t as we}from"./QItemSection-MdJ1_ZK7.js";import{c as Te,d as Ee,l as De,o as Oe,s as ke,u as Ae}from"./use-tours-BHNasCvg.js";import{t as z}from"./QChip-Be16M4Ig.js";var B=1e3,V=[`start`,`center`,`end`,`start-force`,`center-force`,`end-force`],je=Array.prototype.filter,H=window.getComputedStyle(document.body).overflowAnchor===void 0?_:function(e,t){e!==null&&(e._qOverflowAnimationFrame!==void 0&&cancelAnimationFrame(e._qOverflowAnimationFrame),e._qOverflowAnimationFrame=requestAnimationFrame(()=>{if(e===null)return;e._qOverflowAnimationFrame=void 0;let n=e.children||[];je.call(n,e=>e.dataset&&e.dataset.qVsAnchor!==void 0).forEach(e=>{delete e.dataset.qVsAnchor});let r=n[t];r?.dataset&&(r.dataset.qVsAnchor=``)}))};function Me(e,t){return e+t}function Ne(e,t,n,r,i,a,o,s){let c=e===window?document.scrollingElement||document.documentElement:e,l=i?`width`:`height`,u={scrollStart:0,scrollViewSize:-o-s,scrollMaxSize:0,offsetStart:-o,offsetEnd:-s};if(i?(e===window?(u.scrollStart=window.scrollX,u.scrollViewSize+=document.documentElement.clientWidth):(u.scrollStart=c.scrollLeft,u.scrollViewSize+=c.clientWidth),u.scrollMaxSize=c.scrollWidth,a&&(u.scrollStart=-u.scrollStart)):(e===window?(u.scrollStart=window.scrollY,u.scrollViewSize+=document.documentElement.clientHeight):(u.scrollStart=c.scrollTop,u.scrollViewSize+=c.clientHeight),u.scrollMaxSize=c.scrollHeight),n!==null)for(let e=n.previousElementSibling;e!==null;e=e.previousElementSibling)e.classList.contains(`q-virtual-scroll--skip`)||(u.offsetStart+=e.getBoundingClientRect()[l]);if(r!==null)for(let e=r.nextElementSibling;e!==null;e=e.nextElementSibling)e.classList.contains(`q-virtual-scroll--skip`)||(u.offsetEnd+=e.getBoundingClientRect()[l]);if(t!==e){let n=c.getBoundingClientRect(),r=t.getBoundingClientRect();i?(u.offsetStart+=r.left-n.left,u.offsetEnd-=r.width):(u.offsetStart+=r.top-n.top,u.offsetEnd-=r.height),e!==window&&(u.offsetStart+=u.scrollStart),u.offsetEnd+=u.scrollMaxSize-u.offsetStart}return u}function Pe(e,t,n,r){if(t===`end`&&(t=(e===window?document.body:e)[n?`scrollWidth`:`scrollHeight`]),e===window){let e,i;n?(r&&(t=-t),e=t,i=window.scrollY):(e=window.scrollX,i=t),window.scrollTo({left:e,top:i,behavior:`instant`})}else n?(r&&(t=-t),e.scrollTo({left:t,behavior:`instant`})):e.scrollTo({top:t,behavior:`instant`})}function U(e,t,n,r){if(n>=r)return 0;let i=t.length,a=Math.floor(n/B),o=Math.floor((r-1)/B)+1,s=0;for(let t=a;t<o;t++)s+=e[t];if(n%B!==0)for(let e=a*B;e<n;e++)s-=t[e];if(r%B!==0&&r!==i){let e=Math.min(o*B,i);for(let n=r;n<e;n++)s-=t[n]}return s}var Fe={virtualScrollSliceSize:{type:[Number,String],default:10},virtualScrollSliceRatioBefore:{type:[Number,String],default:1},virtualScrollSliceRatioAfter:{type:[Number,String],default:1},virtualScrollItemSize:{type:[Number,String],default:24},virtualScrollStickySizeStart:{type:[Number,String],default:0},virtualScrollStickySizeEnd:{type:[Number,String],default:0},tableColspan:[Number,String]};Object.keys(Fe);var Ie={virtualScrollHorizontal:Boolean,onVirtualScroll:Function,...Fe};function Le({virtualScrollLength:i,getVirtualScrollTarget:o,getVirtualScrollEl:l,virtualScrollItemSizeComputed:p}){let{props:m,emit:te,proxy:h}=u(),g=ne(),_,v,y,b=[],x,S=t(0),C=t(0),w=t({}),re=e(null),E=e(null),D=e(null),O=t({from:0,to:0}),k=f(()=>m.tableColspan===void 0?100:m.tableColspan);p===void 0&&(p=f(()=>m.virtualScrollItemSize));let ie=f(()=>p.value+`;`+m.virtualScrollHorizontal),ae=f(()=>ie.value+`;`+m.virtualScrollSliceRatioBefore+`;`+m.virtualScrollSliceRatioAfter);a(ae,()=>{F()}),a(ie,A);function A(){ce(v,!0)}function j(e){ce(e===void 0?v:e)}function M(e,t){let n=o();if(n==null||n.nodeType===8)return;I.cancel();let r=Ne(n,l(),re.value,E.value,m.virtualScrollHorizontal,g.lang.rtl,m.virtualScrollStickySizeStart,m.virtualScrollStickySizeEnd);y!==r.scrollViewSize&&F(r.scrollViewSize),N(n,r,Math.min(i.value-1,Math.max(0,Number.parseInt(e,10)||0)),0,V.includes(t)?t:v!==-1&&e>v?`end`:`start`)}function oe(){let e=o();if(e==null||e.nodeType===8)return;let t=Ne(e,l(),re.value,E.value,m.virtualScrollHorizontal,g.lang.rtl,m.virtualScrollStickySizeStart,m.virtualScrollStickySizeEnd),n=i.value-1,r=t.scrollMaxSize-t.offsetStart-t.offsetEnd-C.value;if(_===t.scrollStart)return;if(t.scrollMaxSize<=0){N(e,t,0,0);return}y!==t.scrollViewSize&&F(t.scrollViewSize),se(O.value.from);let a=Math.floor(t.scrollMaxSize-Math.max(t.scrollViewSize,t.offsetEnd)-Math.min(x[n],t.scrollViewSize/2));if(a>0&&Math.ceil(t.scrollStart)>=a){N(e,t,n,t.scrollMaxSize-t.offsetEnd-b.reduce(Me,0));return}let s=0,c=t.scrollStart-t.offsetStart,u=c;if(c<=r&&c+t.scrollViewSize>=S.value)c-=S.value,s=O.value.from,u=c;else for(let e=0;c>=b[e]&&s<n;e++)c-=b[e],s+=B;for(;c>0&&s<n;)c-=x[s],c>-t.scrollViewSize?(s++,u=c):u=x[s]+c;N(e,t,s,u)}function N(e,t,n,r,a){let o=typeof a==`string`&&a.includes(`-force`),s=o?a.replace(`-force`,``):a,c=s===void 0?`start`:s,l=Math.max(0,n-w.value[c]),u=l+w.value.total;u>i.value&&(u=i.value,l=Math.max(0,u-w.value.total)),_=t.scrollStart;let ee=l!==O.value.from||u!==O.value.to;if(!ee&&s===void 0){ue(n);return}let{activeElement:d}=document,f=D.value;ee&&f!==null&&f!==d&&f.contains(d)&&(f.addEventListener(`focusout`,P),setTimeout(()=>{f?.removeEventListener(`focusout`,P)},0)),H(f,n-l);let p=s===void 0?0:x.slice(l,n).reduce(Me,0);if(ee){let e=u>=O.value.from&&l<=O.value.to?O.value.to:u;O.value={from:l,to:e},S.value=U(b,x,0,l),C.value=U(b,x,u,i.value),requestAnimationFrame(()=>{O.value.to!==u&&_===t.scrollStart&&(O.value={from:O.value.from,to:u},C.value=U(b,x,u,i.value))})}requestAnimationFrame(()=>{if(_!==t.scrollStart)return;ee&&se(l);let i=x.slice(l,n).reduce(Me,0),a=i+t.offsetStart+S.value,c=a+x[n],u=a+r;if(s!==void 0){let e=i-p,r=t.scrollStart+e;u=!o&&r<a&&c<r+t.scrollViewSize?r:s===`end`?c-t.scrollViewSize:a-(s===`start`?0:Math.round((t.scrollViewSize-x[n])/2))}_=u,Pe(e,u,m.virtualScrollHorizontal,g.lang.rtl),ue(n)})}function se(e){let t=D.value;if(t){let n=je.call(t.children,e=>e.classList&&!e.classList.contains(`q-virtual-scroll--skip`)),r=n.length,i=m.virtualScrollHorizontal?e=>e.getBoundingClientRect().width:e=>e.getBoundingClientRect().height,a=e,o,s;for(let e=0;e<r;){for(o=i(n[e]),e++;e<r&&n[e].classList.contains(`q-virtual-scroll--with-prev`);)o+=i(n[e]),e++;s=o-x[a],s!==0&&(x[a]+=s,b[Math.floor(a/B)]+=s),a++}}}function P(){D.value?.focus({preventScroll:!0})}function ce(e,t){let n=Number(p.value);(t||!Array.isArray(x))&&(x=[]);let r=x.length;x.length=i.value;for(let e=i.value-1;e>=r;e--)x[e]=n;let a=Math.floor((i.value-1)/B);b=[];for(let e=0;e<=a;e++){let t=0,n=Math.min((e+1)*B,i.value);for(let r=e*B;r<n;r++)t+=x[r];b.push(t)}v=-1,_=void 0,S.value=U(b,x,0,O.value.from),C.value=U(b,x,O.value.to,i.value),e>=0?(se(O.value.from),c(()=>{M(e)})):I()}function F(e){if(e===void 0&&typeof window<`u`){let t=o();t!=null&&t.nodeType!==8&&(e=Ne(t,l(),re.value,E.value,m.virtualScrollHorizontal,g.lang.rtl,m.virtualScrollStickySizeStart,m.virtualScrollStickySizeEnd).scrollViewSize)}y=e;let t=Number.parseFloat(m.virtualScrollSliceRatioBefore)||0,n=Number.parseFloat(m.virtualScrollSliceRatioAfter)||0,r=1+t+n,i=e===void 0||e<=0?1:Math.ceil(e/p.value),a=Math.max(1,i,Math.ceil((m.virtualScrollSliceSize>0?m.virtualScrollSliceSize:10)/r));w.value={total:Math.ceil(a*r),start:Math.ceil(a*t),center:Math.ceil(a*(.5+t)),end:Math.ceil(a*(1+t)),view:i}}function le(e,t,n){let i=m.virtualScrollHorizontal?`width`:`height`,a={[`--q-virtual-scroll-item-`+i]:p.value+`px`};return[e===`tbody`?r(e,{class:`q-virtual-scroll__padding`,key:`before`,ref:re,"aria-hidden":`true`},[r(`tr`,[r(`td`,{style:{[i]:`${S.value}px`,...a},colspan:k.value})])]):r(e,{class:`q-virtual-scroll__padding`,key:`before`,ref:re,"aria-hidden":`true`,style:{[i]:`${S.value}px`,...a}}),r(e,{class:`q-virtual-scroll__content`,key:`content`,ref:D,tabindex:-1,...n},t.flat()),e===`tbody`?r(e,{class:`q-virtual-scroll__padding`,key:`after`,ref:E,"aria-hidden":`true`},[r(`tr`,[r(`td`,{style:{[i]:`${C.value}px`,...a},colspan:k.value})])]):r(e,{class:`q-virtual-scroll__padding`,key:`after`,ref:E,"aria-hidden":`true`,style:{[i]:`${C.value}px`,...a}})]}function ue(e){v!==e&&(m.onVirtualScroll!==void 0&&te(`virtualScroll`,{index:e,from:O.value.from,to:O.value.to-1,direction:e<v?`decrease`:`increase`,ref:h}),v=e)}F();{let e=Math.min(i.value,w.value.total),t=Number(p.value);O.value={from:0,to:e},C.value=Number.isFinite(t)?Math.max(0,(i.value-e)*t):0}let I=T(oe,g.platform.is.ios?120:35);n(()=>{F()});let L=!1;return s(()=>{L=!0}),d(()=>{if(!L)return;let e=o();_!==void 0&&e!=null&&e.nodeType!==8?Pe(e,_,m.virtualScrollHorizontal,g.lang.rtl):M(v)}),ee(()=>{I.cancel()}),Object.assign(h,{scrollTo:M,reset:A,refresh:j}),{virtualScrollSliceRange:O,virtualScrollSliceSizeComputed:w,setVirtualScrollSize:F,onVirtualScrollEvt:I,localResetVirtualScroll:ce,padVirtualScroll:le,scrollTo:M,reset:A,refresh:j}}var Re=w({name:`QItemLabel`,props:{overline:Boolean,caption:Boolean,header:Boolean,lines:[Number,String]},setup(e,{slots:t}){let n=f(()=>Number.parseInt(e.lines,10)),i=f(()=>`q-item__label`+(e.overline?` q-item__label--overline text-overline`:``)+(e.caption?` q-item__label--caption text-caption`:``)+(e.header?` q-item__label--header`:``)+(n.value===1?` ellipsis`:``)),a=f(()=>e.lines!==void 0&&n.value>1?{overflow:`hidden`,display:`-webkit-box`,"-webkit-box-orient":`vertical`,"-webkit-line-clamp":n.value}:null);return()=>r(`div`,{style:a.value,class:i.value},x(t.default))}}),W={left:!0,right:!0,up:!0,down:!0,horizontal:!0,vertical:!0},ze=Object.keys(W);W.all=!0;function Be(e){let t={};for(let n of ze)e[n]&&(t[n]=!0);return Object.keys(t).length===0?W:(t.horizontal?t.left=t.right=!0:t.left&&t.right&&(t.horizontal=!0),t.vertical?t.up=t.down=!0:t.up&&t.down&&(t.vertical=!0),t.horizontal&&t.vertical&&(t.all=!0),t)}var Ve=[`INPUT`,`TEXTAREA`];function He(e,t){return t.event===void 0&&e.target!==void 0&&!e.target.draggable&&typeof t.handler==`function`&&!Ve.includes(e.target.nodeName.toUpperCase())&&(e.qClonedBy===void 0||!e.qClonedBy.includes(t.uid))}function Ue(e,t,n){return n<=t?t:Math.min(n,Math.max(t,e))}function We(e,t,n){if(n<=t)return t;let r=n-t+1,i=t+(e-t)%r;return i<t&&(i=r+i),i===0?0:i}var Ge={hover:Boolean,hoverDelay:{type:Number,default:0},hoverHideDelay:{type:Number,default:150}};function Ke({props:e,canShow:t,show:n,canHide:r,hide:i}){let{removeTimeout:a,registerTimeout:o}=O();function s(r){e.hover===!0&&r.pointerType!==`touch`&&(a(),t(r)&&(e.hoverDelay>0?o(()=>{n(r)},e.hoverDelay):n(r)))}function c(t){a(),r(t)&&o(()=>{i(t)},e.hoverHideDelay)}function l(t){e.hover===!0&&t.pointerType!==`touch`&&c(t)}function u(e){e.pointerType!==`touch`&&a()}return{clearHoverTimer:a,hoverShow:s,hoverHide:l,scheduleHoverHide:c,onHoverContentEnter:u}}var G=null,{notPassiveCapture:qe,passiveCapture:Je}=g,K=[];function q(e){G!==null&&(clearTimeout(G),G=null);let t=e.target;if(t===void 0||t.nodeType===8||t.classList.contains(`no-pointer-events`))return;let n=null,r=!1;for(let e=N.length-1;e>=0;e--){let t=N[e].$,i=t.type.name;if(i!==`QTooltip`){if(i===`QDialog`){if(t.props.seamless!==!0){if(r===!1)return;n=new Set(N.slice(e+1).map(e=>e.contentEl));break}continue}r=!0}}for(let r=K.length-1;r>=0;r--){let i=K[r];if(n!==null&&!n.has(i.innerRef.value))return;if((i.anchorEl.value===null||!i.anchorEl.value.contains(t)&&!P(i.anchorEl.value,t))&&(t===document.body||i.innerRef.value!==null&&!i.innerRef.value.contains(t)&&!P(i.innerRef.value,t)))e.qClickOutside=!0,i.onClickOutside(e);else return}}function J(e){e.pointerType!==`touch`&&(G!==null&&clearTimeout(G),G=setTimeout(()=>{G=null,q(e)},0))}function Y(e){K.push(e),K.length===1&&(document.addEventListener(`pointerdown`,J,Je),document.addEventListener(`mousedown`,q,qe),document.addEventListener(`touchstart`,q,qe))}function Ye(e){let t=K.indexOf(e);t!==-1&&(K.splice(t,1),K.length===0&&(G!==null&&(clearTimeout(G),G=null),document.removeEventListener(`pointerdown`,J,Je),document.removeEventListener(`mousedown`,q,qe),document.removeEventListener(`touchstart`,q,qe)))}var Xe=`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex^="-"])`,Ze=w({name:`QMenu`,inheritAttrs:!1,props:{...Ee,...A,...E,...ie,persistent:Boolean,autoClose:Boolean,separateClosePopup:Boolean,noEscDismiss:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,fit:Boolean,cover:Boolean,square:Boolean,anchor:{type:String,validator:De},self:{type:String,validator:De},offset:{type:Array,validator:Te},touchPosition:Boolean,...Ge,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null}},emits:[...L,`click`,`escapeKey`],setup(n,{slots:i,emit:o,attrs:s}){let c,l=!1,d=u(),{proxy:p}=d,m=ne(),h=e(null),g=t(!1),_=f(()=>!n.persistent&&!n.noRouteDismiss),v=D(n,m),{registerTick:b,removeTick:w}=I(),{registerTransitionEnd:T}=k(n),{transitionProps:re,transitionStyle:E}=oe(n),{anchorEl:O,canShow:ie,anchorEvents:A}=Ae({showing:g,getPopupRole:()=>s.role}),{show:N,hide:P}=ue({showing:g,canShow:ie,canHide(e){return l&&ge()?e?.type!==`click`:!0},handleShow:Pe,handleHide:U,handleRouteChange:Fe,hideOnRouteChange:_,processOnMount:!0}),{clearHoverTimer:L,hoverShow:de,scheduleHoverHide:fe,onHoverContentEnter:pe}=Ke({props:n,canShow:()=>!g.value,show:N,canHide:e=>g.value&&!Me(e.relatedTarget),hide:P});Object.assign(A,{hoverShow:de,hoverHide:Ne});let{showPortal:me,hidePortal:he,portalIsOpening:ge,renderPortal:_e}=le(d,h,Be,`menu`),{captureRefocusTarget:ve,clearRefocusTarget:ye,restoreFocus:Se,restoreFocusSync:Ce,adoptRefocusTarget:we}=R(n,()=>!n.noFocus&&!l&&ge()),Te={anchorEl:O,innerRef:h,onClickOutside(e){if(!n.persistent&&g.value)return P(e),(e.type===`touchstart`||e.target.classList.contains(`q-dialog__backdrop`))&&y(e),!0}},Ee=f(()=>ke(n.anchor||(n.cover?`center middle`:`bottom start`),m.lang.rtl)),De=f(()=>n.cover?Ee.value:ke(n.self||`top start`,m.lang.rtl)),z=Oe({props:n,$q:m,anchorEl:O,innerRef:h,showing:g,anchorOrigin:Ee,selfOrigin:De}),B=f(()=>`q-menu scroll`+(z.viaCssAnchor?``:` q-position-engine`)+(n.square?` q-menu--square`:``)+(v()?` q-menu--dark q-dark`:``)),V=f(()=>n.autoClose?{onClick:Le}:{}),je=f(()=>g.value&&!n.persistent);a(je,e=>{e?(ae(W),Y(Te)):(ce(W),Ye(Te))});function H(){j(()=>{let e=h.value;e&&e.contains!==void 0&&!e.contains(document.activeElement)&&(e=e.querySelector(`[autofocus][tabindex], [data-autofocus][tabindex]`)||e.querySelector(`[autofocus] [tabindex], [data-autofocus] [tabindex]`)||e.querySelector(`[autofocus], [data-autofocus]`)||e,e.focus({preventScroll:!0}))})}function Me(e){if(e==null)return!1;if(O.value!==null&&O.value.contains(e)||h.value!==null&&h.value.contains(e))return!0;let t=se(e);for(;t!=null;){if(t===p)return!0;t=S(t)}return!1}function Ne(e){if(e.pointerType===`touch`)return;fe(e);let t=S(p);for(;t!=null;)t.$options.name===`QMenu`&&t.$props.hover===!0&&t.__qHoverHide?.(e),t=S(t)}function Pe(e){l=n.hover&&e?.type===`pointerenter`,L(),ve(l),xe(Re),me(!1,l),z.handleShow(!l&&(n.touchPosition||n.contextMenu)?e:void 0),!n.noFocus&&!l&&document.activeElement.blur(),b(()=>{z.handleTick(),!n.noFocus&&!l&&H()}),T(()=>{m.platform.is.ios&&(c=n.autoClose,h.value.click()),z.viaCssAnchor||z.track(),me(!0),o(`show`,e)})}function U(e){l=!1,w(),he(),Ie(!0),e===void 0||!e.qClickOutside?Se(e):ye(),T(()=>{he(!0),z.releaseAnchor(!1),o(`hide`,e)})}function Fe(){ye()}function Ie(e){L(),z.releaseAnchor(e),(e||g.value)&&(be(Re),Ye(Te),ce(W)),e||ye()}function Le(e){c?c=!1:(M(p,e),o(`click`,e))}function Re(e){je.value&&!n.noFocus&&!l&&!C(h.value,e.target)&&!F(h.value,e.target)&&H()}function W(e){n.noEscDismiss||(o(`escapeKey`),P(e))}function ze(e){if(e.keyCode!==9||e.defaultPrevented||!je.value||h.value===null)return;let t=h.value,n=t.querySelectorAll(Xe),r=n.length===0?null:n[e.shiftKey?0:n.length-1];(r===null||document.activeElement===r||e.shiftKey&&document.activeElement===t)&&(be(Re),Ce(e),P(e))}function Be(){return r(te,re(),()=>g.value?r(`div`,{...s,ref:h,tabindex:-1,onKeydown:[].concat(s.onKeydown||[],ze),...n.hover?{onPointerenter:[].concat(s.onPointerenter||[],pe),onPointerleave:[].concat(s.onPointerleave||[],Ne)}:{},class:[B.value,s.class],style:[s.style,E(),z.positionStyle.value],...V.value},x(i.default)):null)}return ee(()=>{Ie(!1)}),Object.assign(p,{focus:H,updatePosition:z.updatePosition,__adoptRefocusTarget:we}),p.__qHoverHide=fe,_e}}),Qe=w({name:`QField`,inheritAttrs:!1,props:{...me,tag:{type:String,default:`label`}},emits:pe,setup(){return ve(he({tagProp:!0}))}}),$e=e=>[`add`,`add-unique`,`toggle`].includes(e),et=".*+?^${}()|[]\\",tt=Object.keys(me);function nt(e,t){if(typeof e==`function`)return e;let n=e===void 0?t:e;return e=>typeof e==`object`&&e&&n in e?e[n]:e}var rt=w({name:`QSelect`,inheritAttrs:!1,props:{...Ie,...de,...me,modelValue:{required:!0},multiple:Boolean,displayValue:[String,Number],displayValueHtml:Boolean,dropdownIcon:String,options:{type:Array,default:()=>[]},optionValue:[Function,String],optionLabel:[Function,String],optionDisable:[Function,String],hideSelected:Boolean,hideDropdownIcon:Boolean,hideDialogClose:Boolean,fillInput:Boolean,maxValues:[Number,String],optionsDense:Boolean,optionsDark:{type:Boolean,default:null},optionsSelectedClass:String,optionsHtml:Boolean,optionsCover:Boolean,noOptionLabel:String,menuShrink:Boolean,menuAnchor:String,menuSelf:String,menuOffset:Array,popupContentClass:String,popupContentStyle:[String,Array,Object],popupNoRouteDismiss:Boolean,useInput:Boolean,useChips:Boolean,noChipRemove:Boolean,newValueMode:{type:String,validator:$e},mapOptions:Boolean,emitValue:Boolean,noOptionPrefetch:Boolean,disableTabSelection:Boolean,inputDebounce:{type:[Number,String],default:500},inputClass:[Array,String,Object],inputStyle:[Array,String,Object],tabindex:{type:[String,Number],default:0},autocomplete:String,transitionShow:{},transitionHide:{},transitionDuration:{},behavior:{type:String,validator:e=>[`default`,`menu`,`dialog`].includes(e),default:`default`},...Ge,virtualScrollItemSize:Ie.virtualScrollItemSize.type,onNewValue:Function,onFilter:Function},emits:[...pe,`add`,`remove`,`inputValue`,`keyup`,`keypress`,`keydown`,`popupShow`,`popupHide`,`filterAbort`],setup(n,{slots:s,emit:d}){let{proxy:te}=u(),g=ne(),_=t(!1),x=t(!1),C=t(-1),w=t(``),T=t(!1),E=t(!1),D=null,O=null,k=!1,ie=0,ae,A=!1,j,M,oe=!1,N=null,P,ce,F,le,ue=e(null),I=e(null),L=e(null),de=e(null),pe=e(null),me=fe(n),be=ge(xt),R=f(()=>Array.isArray(n.options)?n.options.length:0),{virtualScrollSliceRange:xe,virtualScrollSliceSizeComputed:Te,localResetVirtualScroll:Ee,padVirtualScroll:De,onVirtualScrollEvt:Oe,scrollTo:ke,setVirtualScrollSize:Ae}=Le({virtualScrollLength:R,getVirtualScrollTarget:_t,getVirtualScrollEl:gt,virtualScrollItemSizeComputed:f(()=>n.virtualScrollItemSize===void 0?n.optionsDense?24:48:n.virtualScrollItemSize)}),B=he(),V=f(()=>{let e=n.mapOptions&&!n.multiple,t=n.modelValue!==void 0&&(n.modelValue!==null||e)?n.multiple&&Array.isArray(n.modelValue)?n.modelValue:[n.modelValue]:[];if(n.mapOptions&&Array.isArray(n.options)){let r=n.mapOptions&&ae!==void 0?ae:[],i=t.map(e=>lt(e,r));return n.modelValue===null&&e?i.filter(e=>e!==null):i}return t}),je=f(()=>{let e={};return tt.forEach(t=>{let r=n[t];r!==void 0&&(e[t]=r)}),e}),H=f(()=>n.optionsDark===null?B.isDark():n.optionsDark),Me=f(()=>_e(V.value)),Ne=f(()=>{let e=`q-field__input q-placeholder col`;return n.hideSelected||V.value.length===0?[e,n.inputClass]:(e+=` q-field__input--padding`,n.inputClass===void 0?e:[e,n.inputClass])}),Pe=f(()=>(n.virtualScrollHorizontal?`q-virtual-scroll--horizontal`:``)+(n.popupContentClass?` `+n.popupContentClass:``)),U=f(()=>R.value===0);function Fe(){return s[`no-option`]!==void 0||n.noOptionLabel!==void 0}let Ie=f(()=>V.value.map(e=>J.value(e)).join(`, `)),W=f(()=>n.displayValue===void 0?Ie.value:n.displayValue),ze=f(()=>n.optionsHtml?()=>!0:e=>e?.html===!0),Be=f(()=>n.displayValueHtml||n.displayValue===void 0&&(n.optionsHtml||V.value.some(ze.value))),Ve=f(()=>B.focused.value?n.tabindex:-1),He=f(()=>{let e={tabindex:n.disable===!0?void 0:n.tabindex,role:`combobox`,"aria-label":n.label,"aria-readonly":n.readonly?`true`:`false`,"aria-autocomplete":n.useInput?`list`:`none`,"aria-expanded":_.value?`true`:`false`};return _.value&&!U.value&&(e[`aria-controls`]=`${B.targetUid.value}_lb`),C.value>=0&&(e[`aria-activedescendant`]=`${B.targetUid.value}_${C.value}`),e}),Ue=f(()=>({id:`${B.targetUid.value}_lb`,role:`listbox`,"aria-multiselectable":n.multiple?`true`:`false`})),Ge=f(()=>V.value.map((e,t)=>({index:t,opt:e,html:ze.value(e),selected:!0,removeAtIndex:at,toggleOption:X,tabindex:Ve.value}))),G=f(()=>{if(R.value===0)return[];let{from:e,to:t}=xe.value;return n.options.slice(e,t).map((t,r)=>{let i=Y.value(t)===!0,a=ut(t),o=e+r,s={clickable:!0,active:a,activeClass:K.value,manualFocus:!0,focused:!1,disable:i,tabindex:-1,dense:n.optionsDense,dark:H.value,role:`option`,"aria-selected":a?`true`:`false`,"aria-setsize":R.value,"aria-posinset":o+1,id:`${B.targetUid.value}_${o}`,onClick:()=>{X(t)}};return i||(C.value===o&&(s.focused=!0),s.onPointermove=e=>{e.pointerType!==`touch`&&_.value&&st(o)}),{index:o,opt:t,html:ze.value(t),label:J.value(t),selected:s.active,focused:s.focused,toggleOption:X,setOptionIndex:st,itemProps:s}})}),qe=f(()=>n.dropdownIcon===void 0?g.iconSet.arrow.dropdown:n.dropdownIcon),Je=f(()=>!n.optionsCover&&!n.outlined&&!n.standout&&!n.borderless&&!n.rounded),K=f(()=>n.optionsSelectedClass===void 0?n.color===void 0?``:`text-${n.color}`:n.optionsSelectedClass),q=f(()=>nt(n.optionValue,`value`)),J=f(()=>nt(n.optionLabel,`label`)),Y=f(()=>nt(n.optionDisable,`disable`)),Ye=f(()=>V.value.map(q.value)),Xe=f(()=>{let e={onInput:xt,onChange:be,onKeydown:ht,onKeyup:pt,onKeypress:mt,onFocus:dt,onClick(e){j&&h(e)}};return e.onCompositionstart=e.onCompositionupdate=e.onCompositionend=be,e});a(V,e=>{ae=e,n.useInput&&n.fillInput&&!n.multiple&&!B.innerLoading.value&&(!x.value&&!_.value||!Me.value)&&(M||$(),(x.value||_.value)&&Z(``)),A&&wt()&&(A=!1)},{immediate:!0}),a(()=>n.fillInput,$),a(_,Ht),a(R,Ut);function rt(e){return n.emitValue?q.value(e):e}function it(e){if(e!==-1&&e<V.value.length){if(n.multiple){let t=[...n.modelValue];d(`remove`,{index:e,value:t.splice(e,1)[0]}),d(`update:modelValue`,t)}else d(`update:modelValue`,null)}}function at(e){it(e),B.focus()}function ot(e,t){let r=rt(e);if(!n.multiple){n.fillInput&&Ct(J.value(e),!0,!0),d(`update:modelValue`,r);return}if(V.value.length===0){d(`add`,{index:0,value:r}),d(`update:modelValue`,n.multiple?[r]:r);return}if(t&&ut(e)||n.maxValues!==void 0&&n.modelValue.length>=n.maxValues)return;let i=[...n.modelValue];d(`add`,{index:i.length,value:r}),i.push(r),d(`update:modelValue`,i)}function X(e,t){if(!B.editable.value||e===void 0||Y.value(e)===!0)return;let r=q.value(e);if(!n.multiple){let i=!t&&x.value;t||(Ct(n.fillInput?J.value(e):``,!0,!0),Q()),i||I.value?.focus(),(V.value.length===0||!Se(q.value(V.value[0]),r))&&d(`update:modelValue`,n.emitValue?r:e);return}if((!j||T.value)&&B.focus(),dt(),V.value.length===0){let t=n.emitValue?r:e;d(`add`,{index:0,value:t}),d(`update:modelValue`,n.multiple?[t]:t);return}let i=[...n.modelValue],a=Ye.value.findIndex(e=>Se(e,r));if(a!==-1)d(`remove`,{index:a,value:i.splice(a,1)[0]});else{if(n.maxValues!==void 0&&i.length>=n.maxValues)return;let t=n.emitValue?r:e;d(`add`,{index:i.length,value:t}),i.push(t)}d(`update:modelValue`,i)}function st(e){let t=e!==-1&&e<R.value?e:-1;C.value!==t&&(C.value=t,oe=!1)}function ct(e=1,t){if(_.value){let r=C.value;do r=We(r+e,-1,R.value-1);while(r!==-1&&r!==C.value&&Y.value(n.options[r])===!0);C.value!==r&&(st(r),ke(r),!t&&n.useInput&&n.fillInput&&St(r>=0?J.value(n.options[r]):P,!0))}}function lt(e,t){let r=t=>Se(q.value(t),e);return n.options.find(r)||t.find(r)||e}function ut(e){let t=q.value(e);return Ye.value.find(e=>Se(e,t))!==void 0}function dt(e){n.useInput&&I.value!==null&&(e===void 0||I.value===e.target&&e.target.value===Ie.value)&&I.value.select()}function ft(e){p(e,27)&&_.value&&(h(e),Q(e),$()),d(`keyup`,e)}function pt(e){let{value:t}=e.target;if(e.keyCode!==void 0){ft(e);return}if(e.target.value=``,D!==null&&(clearTimeout(D),D=null),O!==null&&(clearTimeout(O),O=null),$(),typeof t==`string`&&t.length!==0){let e=t.toLocaleLowerCase(),r=t=>{let r=n.options.find(n=>String(t.value(n)).toLocaleLowerCase()===e);return r!==void 0&&(V.value.includes(r)?Q():X(r),!0)},i=e=>{!r(q)&&!e&&!r(J)&&Z(t,!0,()=>i(!0))};i()}else B.clearValue(e)}function mt(e){d(`keypress`,e)}function ht(e){if(d(`keydown`,e),e.defaultPrevented||v(e))return;let t=w.value.length!==0&&(n.newValueMode!==void 0||n.onNewValue!==void 0),r=!e.shiftKey&&!n.disableTabSelection&&!n.multiple&&(C.value!==-1||t);if(e.keyCode===27){m(e);return}if(e.keyCode===9&&!r){Pt(e);return}if(e.target===void 0||e.target.id!==B.targetUid.value||!B.editable.value)return;if((e.keyCode===40||e.keyCode===38)&&!B.innerLoading.value&&!_.value){y(e),Vt(e);return}if(e.keyCode===8&&(n.useChips&&!n.noChipRemove||n.clearable)&&!n.hideSelected&&w.value.length===0){(n.clearable||Y.value(V.value.at(-1))!==!0)&&(n.multiple&&Array.isArray(n.modelValue)?it(n.modelValue.length-1):!n.multiple&&n.modelValue!==null&&d(`update:modelValue`,null));return}(e.keyCode===35||e.keyCode===36)&&(typeof w.value!=`string`||w.value.length===0)&&(y(e),C.value=-1,ct(e.keyCode===36?1:-1,n.multiple)),(e.keyCode===33||e.keyCode===34)&&Te.value!==void 0&&(y(e),C.value=Math.max(-1,Math.min(R.value,C.value+(e.keyCode===33?-1:1)*Te.value.view)),ct(e.keyCode===33?1:-1,n.multiple)),(e.keyCode===38||e.keyCode===40)&&(y(e),ct(e.keyCode===38?-1:1,n.multiple));let i=R.value;if((F===void 0||le<Date.now())&&(F=``),i>0&&!n.useInput&&e.key!==void 0&&e.key.length===1&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&(e.keyCode!==32||F.length!==0)){_.value||Vt(e);let t=e.key.toLocaleLowerCase(),r=F.length===1&&F[0]===t;le=Date.now()+1500,r||(y(e),F+=t);let a=RegExp(`^`+[...F].map(e=>et.includes(e)?`\\`+e:e).join(`.*`),`i`),o=C.value;if(r||o<0||!a.test(J.value(n.options[o])))do o=We(o+1,-1,i-1);while(o!==C.value&&(Y.value(n.options[o])===!0||!a.test(J.value(n.options[o]))));C.value!==o&&c(()=>{st(o),ke(o),o>=0&&n.useInput&&n.fillInput&&St(J.value(n.options[o]),!0)});return}if(e.keyCode===13||e.keyCode===32&&!n.useInput&&F===``||e.keyCode===9&&r){if(e.keyCode!==9&&y(e),C.value!==-1&&C.value<i&&!(t&&M&&oe)){X(n.options[C.value]);return}if(t){let e=(e,t)=>{if(t){if(!$e(t))return}else t=n.newValueMode;Ct(``,!n.multiple,!0),e!=null&&((t===`toggle`?X:ot)(e,t===`add-unique`),n.multiple||(I.value?.focus(),Q()))};if(n.onNewValue===void 0?e(w.value):d(`newValue`,w.value,e),!n.multiple)return}_.value?Pt(e):B.innerLoading.value||Vt(e)}}function gt(){return j?pe.value:L.value!==null&&L.value.contentEl!==null?L.value.contentEl:void 0}function _t(){return gt()}function vt(){return n.hideSelected?[]:s[`selected-item`]===void 0?s.selected===void 0?n.useChips?Ge.value.map((e,t)=>r(z,{key:`option-`+t,removable:!n.noChipRemove&&B.editable.value&&Y.value(e.opt)!==!0,dense:!0,textColor:n.color,tabindex:Ve.value,onRemove(){e.removeAtIndex(t)}},()=>r(`span`,{class:`ellipsis`,[e.html?`innerHTML`:`textContent`]:J.value(e.opt)}))):[r(`span`,{class:`q-select__selected-value ellipsis`,[Be.value?`innerHTML`:`textContent`]:W.value})]:[s.selected()].flat():Ge.value.map(e=>s[`selected-item`](e))}function yt(){if(U.value)return s[`no-option`]===void 0?n.noOptionLabel===void 0?void 0:[r(Ce,()=>r(we,{class:`text-grey`},()=>r(Re,()=>n.noOptionLabel)))]:s[`no-option`]({inputValue:w.value});let e=s.option===void 0?e=>r(Ce,{key:e.index,...e.itemProps},()=>r(we,()=>r(Re,()=>r(`span`,{[e.html?`innerHTML`:`textContent`]:e.label})))):s.option,t=De(`div`,G.value.map(e),Ue.value);return s[`before-options`]!==void 0&&(t=[s[`before-options`](),...t].flat()),b(s[`after-options`],t)}function bt(e,t){let i=t?{...He.value,...B.splitAttrs.attributes.value}:void 0,a={ref:t?I:void 0,key:`i_t`,class:Ne.value,style:n.inputStyle,value:w.value===void 0?``:w.value,type:`search`,...i,id:t?B.targetUid.value:void 0,maxlength:n.maxlength,autocomplete:n.autocomplete,"data-autofocus":e===!0||n.autofocus||void 0,disabled:n.disable,readonly:n.readonly,...Xe.value};return t&&Object.assign(a,B.getErrorAriaAttrs(a)),!e&&j&&(Array.isArray(a.class)?a.class=[...a.class,`no-pointer-events`]:a.class+=` no-pointer-events`),r(`input`,a)}function xt(e){D!==null&&(clearTimeout(D),D=null),O!==null&&(clearTimeout(O),O=null),!e?.target?.qComposing&&(St(e.target.value||``),M=!0,P=w.value,!B.focused.value&&(!j||T.value)&&B.focus(),n.onFilter!==void 0&&(j&&!x.value?Vt(e):D=setTimeout(()=>{D=null,Z(w.value)},n.inputDebounce)))}function St(e,t){w.value!==e&&(O!==null&&(clearTimeout(O),O=null),w.value=e,t||n.inputDebounce===0||n.inputDebounce===`0`?d(`inputValue`,e):O=setTimeout(()=>{O=null,d(`inputValue`,e)},n.inputDebounce))}function Ct(e,t,r){M=r!==!0,n.useInput&&(St(e,!0),(t||M)&&(P=e),t||Z(e))}function Z(e,t,r){if(n.onFilter===void 0||!t&&!B.focused.value&&!k)return;B.innerLoading.value?d(`filterAbort`):(B.innerLoading.value=!0,E.value=!0),e!==``&&!n.multiple&&V.value.length!==0&&!M&&e===J.value(V.value[0])&&(e=``);let i=setTimeout(()=>{_.value&&=!1},10);N!==null&&clearTimeout(N),N=i,d(`filter`,e,(e,n)=>{(t||B.focused.value||k)&&N===i&&(clearTimeout(N),typeof e==`function`&&e(),E.value=!1,c(()=>{B.innerLoading.value=!1,B.editable.value&&(t?_.value&&Q():_.value?Ht(!0):_.value=!0),typeof n==`function`&&c(()=>{n(te)}),typeof r==`function`&&c(()=>{r(te)})}))},()=>{(t||B.focused.value||k)&&N===i&&(clearTimeout(N),B.innerLoading.value=!1,E.value=!1),_.value&&=!1})}function wt(){return R.value!==0||V.value.every(e=>typeof e==`object`&&!!e)?!1:(Z(``,!0,$),!0)}function Tt(){return r(Ze,{ref:L,class:Pe.value,style:n.popupContentStyle,modelValue:_.value,fit:!n.menuShrink,cover:n.optionsCover&&!U.value&&!n.useInput,anchor:n.menuAnchor,self:n.menuSelf,offset:n.menuOffset,dark:H.value,noParentEvent:!0,noRefocus:!0,noFocus:!0,noRouteDismiss:n.popupNoRouteDismiss,square:Je.value,transitionShow:n.transitionShow,transitionHide:n.transitionHide,transitionDuration:n.transitionDuration,separateClosePopup:!0,onScrollPassive:Oe,onBeforeShow:Gt,onBeforeHide:Et,onShow:Dt,...n.hover?{onPointerenter:zt,onPointerleave:Rt}:{}},yt)}function Et(e){Kt(e),Pt()}function Dt(){Ae()}function Ot(e){h(e),I.value?.focus(),T.value=!0,g.platform.is.ios&&window.scrollTo(window.scrollX,0)}function kt(e){h(e),c(()=>{T.value=!1})}function At(){let e=[r(Qe,{class:`col-auto ${B.fieldClass.value}`,...je.value,for:B.targetUid.value,dark:H.value,square:!0,loading:E.value,itemAligned:!1,filled:!0,stackLabel:w.value.length!==0,...B.splitAttrs.listeners.value,onFocus:Ot,onBlur:kt},{...s,rawControl:()=>B.getControl(!0),before:void 0,after:void 0,append:n.hideDialogClose?s.append:()=>{let e=r(`button`,{class:`q-select__dialog-close`+(n.color===void 0?``:` text-${n.color}`),type:`button`,tabindex:0,onClick:Q},g.lang.label.close);return s.append===void 0?[e]:[...s.append(),e]}})];return _.value&&e.push(r(`div`,{ref:pe,class:Pe.value+` scroll`,style:n.popupContentStyle,onClick:m,onScrollPassive:Oe},yt())),r(ye,{ref:de,modelValue:x.value,position:n.useInput?`top`:void 0,noFocus:!0,transitionShow:ce,transitionHide:n.transitionHide,transitionDuration:n.transitionDuration,noRouteDismiss:n.popupNoRouteDismiss,onBeforeShow:Gt,onBeforeHide:jt,onHide:Mt,onShow:Nt},()=>r(`div`,{class:`q-select__dialog`+(H.value?` q-select__dialog--dark q-dark`:``)+(T.value?` q-select__dialog--focused`:``)},e))}function jt(e){if(Kt(e),de.value!==null){let t=!g.platform.is.mobile||!n.useInput||e!==void 0&&(e.type.indexOf(`key`)===0||e.type===`click`&&e.detail===0)?B.rootRef.value.querySelector(`.q-field__native > .q-select__focus-target, .q-field__native > .q-field__input`):null;de.value.__updateRefocusTarget(t)}B.focused.value=!1}function Mt(e){Q(),B.focused.value||d(`blur`,e),$()}function Nt(){let e=document.activeElement;(e===null||e.id!==B.targetUid.value)&&I.value!==null&&I.value!==e&&I.value.focus(),Ae()}function Pt(e){x.value||(It(),k=!1,C.value=-1,_.value&&(e!==void 0&&(e.qSelectHandled=!0),_.value=!1,L.value?.hide(e)),B.focused.value||(N!==null&&(clearTimeout(N),N=null),B.innerLoading.value&&(d(`filterAbort`),B.innerLoading.value=!1,E.value=!1)))}function Ft(e){if(e==null)return!1;let t=L.value===null?null:L.value.contentEl;if(B.controlRef.value!==null&&B.controlRef.value.contains(e)||t!==null&&t.contains(e))return!0;let n=se(e);for(;n!=null;){if(n===te)return!0;n=S(n)}return!1}let{clearHoverTimer:It,hoverShow:Lt,hoverHide:Rt,onHoverContentEnter:zt}=Ke({props:n,canShow:()=>!j&&!k&&!_.value&&B.editable.value,show:Bt,canHide:e=>k&&!Ft(e.relatedTarget),hide:Q});function Bt(e){(n.onFilter!==void 0||!U.value||Fe())&&(k=!0,ie=Date.now(),e.qSelectHandled=!0,n.onFilter===void 0?(_.value=!0,L.value?.show(e)):Z(w.value))}function Vt(e){B.editable.value&&(It(),k=!1,e!==void 0&&(e.qSelectHandled=!0),j?(B.onControlFocusin(e),B.focus(),x.value=!0,de.value?.show(e),c(()=>{B.focus()})):B.focus(),n.onFilter===void 0?(!U.value||Fe())&&(_.value=!0,L.value?.show(e)):Z(w.value))}function Q(e){x.value&&(e!==void 0&&(e.qSelectHandled=!0),x.value=!1,de.value?.hide(e)),Pt(e)}function $(){n.useInput&&Ct(!n.multiple&&n.fillInput&&V.value.length!==0?J.value(V.value[0])??``:``,!0,!0)}function Ht(e){let t=-1;if(e){if(V.value.length!==0){let e=q.value(V.value[0]);t=n.options.findIndex(t=>Se(q.value(t),e))}Ee(t)}st(t),oe=t!==-1}function Ut(e,t){_.value&&!B.innerLoading.value&&(Ee(-1,!0),c(()=>{_.value&&!B.innerLoading.value&&(e>t?Ee():Ht(!0))}))}function Wt(){x.value||L.value?.updatePosition()}function Gt(e){e!==void 0&&e.qSelectHandled!==!0&&h(e),d(`popupShow`,e),B.hasPopupOpen=!0,k||B.onControlFocusin(e)}function Kt(e){e!==void 0&&e.qSelectHandled!==!0&&h(e),d(`popupHide`,e),B.hasPopupOpen=!1,B.onControlFocusout(e,$)}function qt(){j=!g.platform.is.mobile&&n.behavior!==`dialog`?!1:n.behavior!==`menu`&&(!n.useInput||Fe()||n.onFilter!==void 0||!U.value),ce=g.platform.is.ios&&j&&n.useInput?`fade`:n.transitionShow}return o(qt),i(Wt),!n.noOptionPrefetch&&n.mapOptions&&n.onFilter!==void 0&&l(()=>{A=!wt()}),qt(),ee(()=>{D!==null&&clearTimeout(D),O!==null&&clearTimeout(O)}),Object.assign(te,{showPopup:Vt,hidePopup:Q,removeAtIndex:it,add:ot,toggleOption:X,getOptionIndex:()=>C.value,setOptionIndex:st,moveOptionSelection:ct,filter:Z,updateMenuPosition:Wt,updateInputValue:Ct,isOptionSelected:ut,getEmittingOptionValue:rt,isOptionDisabled:(...e)=>Y.value(...e)===!0,getOptionValue:(...e)=>q.value(...e),getOptionLabel:(...e)=>J.value(...e)}),Object.assign(B,{innerValue:V,fieldClass:f(()=>`q-select q-field--auto-height q-select--with${n.useInput?``:`out`}-input q-select--with${n.useChips?``:`out`}-chips q-select--${n.multiple?`multiple`:`single`}`),inputRef:ue,targetRef:I,hasValue:Me,showPopup:Vt,floatingLabel:f(()=>!n.hideSelected&&Me.value||typeof w.value==`number`||w.value.length!==0||_e(n.displayValue)),getControlChild:()=>{if(B.editable.value&&(x.value||!U.value||Fe()))return j?At():Tt();B.hasPopupOpen&&=!1},controlEvents:{onFocusin(e){It(),k=!1,B.onControlFocusin(e)},onFocusout(e){B.onControlFocusout(e,()=>{$(),Pt(e)})},onClick(e){if(m(e),!j&&_.value){if(k&&Date.now()-ie<(n.transitionDuration===void 0?300:Number(n.transitionDuration))){k=!1,B.focus();return}Pt(e),I.value?.focus();return}Vt(e)},onPointerenter:Lt,onPointerleave:Rt},getControl:e=>{let t=vt(),i=e===!0||!x.value||!j;if(n.useInput)t.push(bt(e,i));else{let a=i?{...He.value,...B.splitAttrs.attributes.value}:void 0,o={ref:i?I:void 0,key:`d_t`,class:`q-select__focus-target`,value:W.value,readonly:!0,"data-autofocus":e===!0||n.autofocus||void 0,...a,disabled:n.disable,id:i?B.targetUid.value:void 0,onKeydown:ht,onKeyup:ft,onKeypress:mt};i&&Object.assign(o,B.getErrorAriaAttrs(o)),t.push(r(`input`,o)),i&&B.editable.value&&typeof n.autocomplete==`string`&&n.autocomplete.length!==0&&t.push(r(`input`,{class:`q-select__autocomplete-input`,autocomplete:n.autocomplete,tabindex:-1,onKeyup:pt}))}if(!n.disable){let e=me();if(e!==void 0){let i=Ye.value.map(e=>r(`option`,{value:e,selected:!0}));t.push(r(`select`,{class:`hidden`,name:e,multiple:n.multiple},i))}}return r(`div`,{class:`q-field__native row items-center`,...B.splitAttrs.listeners.value},t)},shouldHideLoadingIndicator:()=>n.hideDropdownIcon===!0,getInnerAppend:()=>!n.loading&&!E.value&&!n.hideDropdownIcon?[r(re,{class:`q-select__dropdown-icon`+(_.value?` rotate-180`:``),name:qe.value})]:null}),ve(B)}});export{Be as a,Le as c,Ue as i,Ie as l,Qe as n,He as o,Ze as r,Re as s,rt as t};
@@ -1 +1 @@
1
- import{S as e,v as t}from"./reactivity.esm-bundler-DY1JkAEA.js";import{C as n,J as ee,b as te,j as r,l as i}from"./runtime-core.esm-bundler-Bqg71Vll.js";import{A as a,K as ne,P as o,d as re,k as s,m as ie,z as c}from"./dom-BtYTvLeN.js";import{S as ae,_ as l,a as oe,b as u,g as d,l as f,o as p,s as m,v as se,x as ce,y as h}from"./detached-fullscreen-Du3TcYdX.js";import{t as le}from"./use-id-BrdYXce0.js";import{c as g,f as _,l as v,o as y,p as b,s as x,u as S}from"./use-tours-6yxNVmjH.js";var C=0,ue=100,w=4;function de(e){return e.pointerType===`touch`||e.pointerType===`pen`&&e.buttons!==0}var T=c({name:`QTooltip`,inheritAttrs:!1,props:{..._,...u,...l,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null},transitionShow:{...l.transitionShow,default:`jump-down`},transitionHide:{...l.transitionHide,default:`jump-up`},anchor:{type:String,default:`bottom middle`,validator:v},self:{type:String,default:`top middle`,validator:v},offset:{type:Array,default:()=>[14,14],validator:g},cursorPosition:Boolean,delay:{type:Number,default:0},hideDelay:{type:Number,default:0},persistent:Boolean},emits:[...h],setup(c,{slots:l,emit:u,attrs:h}){let g,_=!1,v=null,T=null,E,D=te(),O=re(),k=e(null),A=t(!1),j=le();function M(){return h.id||j.value}let N=i(()=>x(c.anchor,O.lang.rtl)),P=i(()=>x(c.self,O.lang.rtl)),F=i(()=>!c.persistent),{registerTimeout:I,registerTransitionEnd:L}=ae(c),{transitionProps:R,transitionStyle:z}=d(c),{anchorEl:B,canShow:V,anchorEvents:H}=S({showing:A,configureAnchorEl:xe}),{show:U,hide:W}=se({showing:A,canShow:V,handleShow:he,handleHide:ge,hideOnRouteChange:F,processOnMount:!0});Object.assign(H,{delayShow:Y,delayHide:ye,onFocusin:be,onPointerdown:ve,onCursorMove:_e});let{showPortal:G,hidePortal:K,renderPortal:fe}=m(D,k,Te,`tooltip`),{registerTick:pe,removeTick:me}=ce(),q=y({props:c,$q:O,anchorEl:B,innerRef:k,showing:A,anchorOrigin:N,selfOrigin:P,trackContent:!0});ee(()=>(c.modelValue===null||c[`onUpdate:modelValue`])&&A.value===!0&&c.persistent!==!0,e=>{(e===!0?oe:p)(Q)});function he(e){a(H,`cursorTemp`),G(),Se(),q.handleShow(c.cursorPosition?e:void 0),pe(q.handleTick),L(()=>{G(!0),u(`show`,e)})}function ge(e){me(),K(),J(!0),L(()=>{K(!0),q.releaseAnchor(!1),u(`hide`,e)})}function J(e){q.releaseAnchor(e),p(Q),v=null,a(H,`tooltipTemp`),a(H,`cursorTemp`),Ce(),$(!1)}function Y(e){if(e.pointerType===`touch`&&e.isPrimary===!1)return;let t=de(e);if(t&&Z(e),c.cursorPosition&&!t){let t=o(e);if(t.left!==void 0){T=t,s(H,`cursorTemp`,[[B.value,`pointermove`,`onCursorMove`,`passive`]]),X(e);return}}I(()=>{U(e)},c.delay)}function X(e){I(()=>{U(e)},Math.max(c.delay,ue))}function _e(e){let t=o(e);Math.abs(t.left-T.left)<=w&&Math.abs(t.top-T.top)<=w||(T=t,X(e))}function Z(e){v=e.pointerType,g!==void 0&&(clearTimeout(g),g=void 0),b(),$(!0);let t=B.value,n=[`touchmove`,`touchcancel`,`touchend`,`click`].map(e=>[t,e,`delayHide`,`passiveCapture`]);s(H,`tooltipTemp`,n)}function ve(e){e.pointerType===`pen`&&v===null&&Z(e)}function ye(e){if((e.pointerType!==`touch`||e.isPrimary!==!1)&&!(e.type===`focusout`&&B.value!==null&&B.value.contains(e.relatedTarget))){if(a(H,`cursorTemp`),v!==null){let t=v===`pen`&&(e.type===`click`||e.type===`touchend`);if(v=null,a(H,`tooltipTemp`),b(),g=setTimeout(()=>{g=void 0,$(!1)},10),t)return}I(()=>{W(e)},c.hideDelay)}}function be(e){let t=e.target;t&&!f()&&t.matches(`:focus-visible`)&&Y(e)}function Q(e){W(e)}function xe(){if(c.noParentEvent||B.value===null)return;let e=[[B.value,`pointerenter`,`delayShow`,`passive`],[B.value,`pointerdown`,`onPointerdown`,`passive`],[B.value,`pointerleave`,`delayHide`,`passive`],[B.value,`focusin`,`onFocusin`,`passive`],[B.value,`focusout`,`delayHide`,`passive`]];s(H,`anchor`,e)}function $(e){_!==e&&(_=e,C+=e?1:-1,document.body.classList.toggle(`non-selectable`,C>0),!e&&g!==void 0&&(clearTimeout(g),g=void 0))}function Se(){let e=B.value,t=M();if(e===null||t===void 0)return;let n=(e.getAttribute(`aria-describedby`)||``).split(/\s+/).filter(Boolean);E={el:e,id:t,added:!n.includes(t)},E.added&&(n.push(t),e.setAttribute(`aria-describedby`,n.join(` `)))}function Ce(){if(E?.added===!0){let{el:e,id:t}=E,n=(e.getAttribute(`aria-describedby`)||``).split(/\s+/).filter(e=>e!==``&&e!==t);n.length===0?e.removeAttribute(`aria-describedby`):e.setAttribute(`aria-describedby`,n.join(` `))}E=void 0}function we(){return A.value?n(`div`,{...h,id:M(),ref:k,class:[`q-tooltip q-tooltip--style no-pointer-events`+(q.viaCssAnchor?``:` q-position-engine`),h.class],style:[h.style,z(),q.positionStyle.value],role:`tooltip`},ie(l.default)):null}function Te(){return n(ne,R(),we)}return r(()=>{J(!1)}),Object.assign(D.proxy,{updatePosition:q.updatePosition}),fe}});export{T as t};
1
+ import{S as e,v as t}from"./reactivity.esm-bundler-DY1JkAEA.js";import{C as n,J as ee,b as te,j as r,l as i}from"./runtime-core.esm-bundler-Bqg71Vll.js";import{A as a,K as ne,P as o,d as re,k as s,m as ie,z as c}from"./dom-BtYTvLeN.js";import{S as ae,_ as l,a as oe,b as u,g as d,l as f,o as p,s as m,v as se,x as ce,y as h}from"./detached-fullscreen-Du3TcYdX.js";import{t as le}from"./use-id-BrdYXce0.js";import{c as g,f as _,l as v,o as y,p as b,s as x,u as S}from"./use-tours-BHNasCvg.js";var C=0,ue=100,w=4;function de(e){return e.pointerType===`touch`||e.pointerType===`pen`&&e.buttons!==0}var T=c({name:`QTooltip`,inheritAttrs:!1,props:{..._,...u,...l,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null},transitionShow:{...l.transitionShow,default:`jump-down`},transitionHide:{...l.transitionHide,default:`jump-up`},anchor:{type:String,default:`bottom middle`,validator:v},self:{type:String,default:`top middle`,validator:v},offset:{type:Array,default:()=>[14,14],validator:g},cursorPosition:Boolean,delay:{type:Number,default:0},hideDelay:{type:Number,default:0},persistent:Boolean},emits:[...h],setup(c,{slots:l,emit:u,attrs:h}){let g,_=!1,v=null,T=null,E,D=te(),O=re(),k=e(null),A=t(!1),j=le();function M(){return h.id||j.value}let N=i(()=>x(c.anchor,O.lang.rtl)),P=i(()=>x(c.self,O.lang.rtl)),F=i(()=>!c.persistent),{registerTimeout:I,registerTransitionEnd:L}=ae(c),{transitionProps:R,transitionStyle:z}=d(c),{anchorEl:B,canShow:V,anchorEvents:H}=S({showing:A,configureAnchorEl:xe}),{show:U,hide:W}=se({showing:A,canShow:V,handleShow:he,handleHide:ge,hideOnRouteChange:F,processOnMount:!0});Object.assign(H,{delayShow:Y,delayHide:ye,onFocusin:be,onPointerdown:ve,onCursorMove:_e});let{showPortal:G,hidePortal:K,renderPortal:fe}=m(D,k,Te,`tooltip`),{registerTick:pe,removeTick:me}=ce(),q=y({props:c,$q:O,anchorEl:B,innerRef:k,showing:A,anchorOrigin:N,selfOrigin:P,trackContent:!0});ee(()=>(c.modelValue===null||c[`onUpdate:modelValue`])&&A.value===!0&&c.persistent!==!0,e=>{(e===!0?oe:p)(Q)});function he(e){a(H,`cursorTemp`),G(),Se(),q.handleShow(c.cursorPosition?e:void 0),pe(q.handleTick),L(()=>{G(!0),u(`show`,e)})}function ge(e){me(),K(),J(!0),L(()=>{K(!0),q.releaseAnchor(!1),u(`hide`,e)})}function J(e){q.releaseAnchor(e),p(Q),v=null,a(H,`tooltipTemp`),a(H,`cursorTemp`),Ce(),$(!1)}function Y(e){if(e.pointerType===`touch`&&e.isPrimary===!1)return;let t=de(e);if(t&&Z(e),c.cursorPosition&&!t){let t=o(e);if(t.left!==void 0){T=t,s(H,`cursorTemp`,[[B.value,`pointermove`,`onCursorMove`,`passive`]]),X(e);return}}I(()=>{U(e)},c.delay)}function X(e){I(()=>{U(e)},Math.max(c.delay,ue))}function _e(e){let t=o(e);Math.abs(t.left-T.left)<=w&&Math.abs(t.top-T.top)<=w||(T=t,X(e))}function Z(e){v=e.pointerType,g!==void 0&&(clearTimeout(g),g=void 0),b(),$(!0);let t=B.value,n=[`touchmove`,`touchcancel`,`touchend`,`click`].map(e=>[t,e,`delayHide`,`passiveCapture`]);s(H,`tooltipTemp`,n)}function ve(e){e.pointerType===`pen`&&v===null&&Z(e)}function ye(e){if((e.pointerType!==`touch`||e.isPrimary!==!1)&&!(e.type===`focusout`&&B.value!==null&&B.value.contains(e.relatedTarget))){if(a(H,`cursorTemp`),v!==null){let t=v===`pen`&&(e.type===`click`||e.type===`touchend`);if(v=null,a(H,`tooltipTemp`),b(),g=setTimeout(()=>{g=void 0,$(!1)},10),t)return}I(()=>{W(e)},c.hideDelay)}}function be(e){let t=e.target;t&&!f()&&t.matches(`:focus-visible`)&&Y(e)}function Q(e){W(e)}function xe(){if(c.noParentEvent||B.value===null)return;let e=[[B.value,`pointerenter`,`delayShow`,`passive`],[B.value,`pointerdown`,`onPointerdown`,`passive`],[B.value,`pointerleave`,`delayHide`,`passive`],[B.value,`focusin`,`onFocusin`,`passive`],[B.value,`focusout`,`delayHide`,`passive`]];s(H,`anchor`,e)}function $(e){_!==e&&(_=e,C+=e?1:-1,document.body.classList.toggle(`non-selectable`,C>0),!e&&g!==void 0&&(clearTimeout(g),g=void 0))}function Se(){let e=B.value,t=M();if(e===null||t===void 0)return;let n=(e.getAttribute(`aria-describedby`)||``).split(/\s+/).filter(Boolean);E={el:e,id:t,added:!n.includes(t)},E.added&&(n.push(t),e.setAttribute(`aria-describedby`,n.join(` `)))}function Ce(){if(E?.added===!0){let{el:e,id:t}=E,n=(e.getAttribute(`aria-describedby`)||``).split(/\s+/).filter(e=>e!==``&&e!==t);n.length===0?e.removeAttribute(`aria-describedby`):e.setAttribute(`aria-describedby`,n.join(` `))}E=void 0}function we(){return A.value?n(`div`,{...h,id:M(),ref:k,class:[`q-tooltip q-tooltip--style no-pointer-events`+(q.viaCssAnchor?``:` q-position-engine`),h.class],style:[h.style,z(),q.positionStyle.value],role:`tooltip`},ie(l.default)):null}function Te(){return n(ne,R(),we)}return r(()=>{J(!1)}),Object.assign(D.proxy,{updatePosition:q.updatePosition}),fe}});export{T as t};
@@ -1 +1 @@
1
- import{M as e,pt as t,v as n}from"./reactivity.esm-bundler-DY1JkAEA.js";import{F as r,J as i,L as a,Y as o,_ as s,d as c,f as l,g as u,l as d,p as f,r as ee,u as p,y as m,z as te}from"./runtime-core.esm-bundler-Bqg71Vll.js";import{d as ne}from"./dom-BtYTvLeN.js";import{l as h,t as g}from"./QBtn-BUSdPaf4.js";import{Rt as re,Yt as ie,at as ae,hn as _,kt as v,l as oe,pn as y,zt as se}from"./index-ImUH7Bbt.js";import{t as ce}from"./QSelect-MdPXvwm4.js";import{t as le}from"./QExpansionItem-D33aoRoG.js";import{a as b}from"./use-tours-6yxNVmjH.js";import{t as ue}from"./QBadge-CW3Lw-kL.js";import{t as de}from"./QChip-Be16M4Ig.js";import{t as x}from"./QBtnToggle-DccOOtbh.js";function fe(e,t){let n=Math.max(1,Math.floor(t));switch(e){case`minutes`:return`*/${n} * * * *`;case`hours`:return`0 */${n} * * *`;case`days`:return`0 0 */${n} * *`}}function pe(e){return Math.max(1,Math.floor(e))>1}var me={class:`column q-pa-md q-gutter-lg`},he={class:`row items-center no-wrap q-gutter-sm`},ge={class:`schedule-header__icon`},_e={class:`text-subtitle1 text-weight-medium`},ve={class:`text-caption text-kobo-3`},ye={key:0,role:`status`,class:`text-caption q-pa-sm bg-blue-grey-9 rounded-borders`,"data-test":`admission-status`},be={class:`row items-center justify-between q-mb-sm`},xe={class:`text-subtitle2`},Se={class:`text-body2 text-weight-medium`},Ce={class:`text-caption text-kobo-3`},we={key:1,class:`column q-gutter-sm`},Te={class:`row items-start no-wrap q-gutter-sm`},S={class:`schedule-item__icon schedule-item__icon--wakeup`},C={class:`col min-width-zero`},w={class:`text-caption text-kobo-3`},T={class:`text-body2 text-weight-medium`},E={key:0,class:`prompt-preview schedule-item__prompt`},D={class:`row items-start no-wrap q-gutter-sm`},O={class:`schedule-item__icon schedule-item__icon--cron`},Ee={class:`col min-width-zero`},De={class:`text-body2 text-weight-medium ellipsis`},Oe=[`title`],ke={key:1,class:`text-caption text-kobo-3`},Ae={class:`row items-center q-gutter-xs q-mt-sm`},je={key:0,class:`text-caption text-kobo-3`},Me={class:`prompt-preview schedule-item__prompt`},Ne={class:`row items-center justify-between q-mb-sm`},Pe={class:`text-subtitle2`},Fe={class:`text-caption text-kobo-3`},Ie={class:`text-body2 text-weight-medium`},Le={class:`text-caption text-kobo-3`},Re={class:`column q-gutter-y-xs`},ze={class:`field-label`},Be={class:`text-body2 text-weight-medium`},Ve={class:`text-caption text-kobo-3`},He={class:`column q-gutter-y-xs`},Ue={class:`field-label`},We={class:`row items-center no-wrap q-gutter-sm`},Ge={class:`text-body2 text-kobo-2`},Ke={key:0,class:`text-caption text-warning`},k={class:`column q-gutter-y-xs`},qe={class:`field-label`},Je={class:`one-shot-option row items-center justify-between no-wrap q-pa-sm`},Ye={class:`text-body2`},Xe={class:`text-caption text-kobo-3`},A=b(m({__name:`SchedulePanel`,props:{workspaceId:{}},setup(m){let b=m,{t:A}=ie(),j=ne(),M=ae(),N=d(()=>M.pendingWakeups[b.workspaceId]??null),P=d(()=>M.crons[b.workspaceId]??[]),F=d(()=>P.value.filter(e=>!e.validationError).length+ +!!N.value);i(()=>b.workspaceId,e=>{e&&M.fetchCrons(e)},{immediate:!0});let I=n(null),L,R=0;i(()=>b.workspaceId,e=>{L&&clearInterval(L),I.value=null;let t=++R,n=!1;async function r(){if(e&&!n){n=!0;try{let n=await re(`/api/workspaces/${encodeURIComponent(e)}/automatic-admission`);t===R&&(I.value=n)}catch{t===R&&(I.value=null)}finally{n=!1}}}r(),L=setInterval(()=>{r()},5e3)},{immediate:!0}),r(()=>{R++,L&&clearInterval(L)});function z(e){return new Date(e).toLocaleString(void 0,{weekday:`short`,day:`numeric`,month:`short`,hour:`2-digit`,minute:`2-digit`})}function Ze(e){let t=Date.now()-new Date(e).getTime();if(Number.isNaN(t)||t<0)return`—`;let n=new Intl.RelativeTimeFormat(void 0,{numeric:`auto`}),r=Math.floor(t/1e3);if(r<60)return n.format(-r,`second`);let i=Math.floor(r/60);if(i<60)return n.format(-i,`minute`);let a=Math.floor(i/60);return a<24?n.format(-a,`hour`):n.format(-Math.floor(a/24),`day`)}async function Qe(){try{await se(`/api/workspaces/${b.workspaceId}/pending-wakeup`,{method:`DELETE`})}catch(e){j.notify({type:`negative`,message:String(e),position:`top`,timeout:0})}}async function $e(e){try{await M.cancelCron(b.workspaceId,e)}catch(e){j.notify({type:`negative`,message:String(e),position:`top`,timeout:0})}}let B=n(`wakeup`),V=n(15),H=n(`minutes`),U=n(``),W=n(``),G=n(``),K=n(`fresh`),q=n(!1),J=n(!1),et=d(()=>[{label:A(`schedule.typeWakeup`),value:`wakeup`,icon:`alarm`},{label:A(`schedule.typeRecurring`),value:`cron`,icon:`event_repeat`}]),Y=d(()=>[{label:A(`schedule.modeFresh`),value:`fresh`,icon:`add_comment`},{label:A(`schedule.modeResume`),value:`resume`,icon:`history`}]),tt=d(()=>[{label:A(`schedule.unitMinutes`),value:`minutes`},{label:A(`schedule.unitHours`),value:`hours`},{label:A(`schedule.unitDays`),value:`days`}]);async function nt(){if(W.value.trim()&&!J.value){J.value=!0;try{let e=U.value.trim()||fe(H.value,V.value);await M.createCron(b.workspaceId,{expression:e,prompt:W.value,label:G.value.trim()||void 0,mode:K.value,oneShot:q.value}),W.value=``,G.value=``,U.value=``,j.notify({type:`positive`,message:A(`schedule.cronCreated`),position:`top`,timeout:2500})}catch(e){j.notify({type:`negative`,message:String(e instanceof Error?e.message:e),position:`top`,timeout:0})}finally{J.value=!1}}}let X=n(15),Z=n(``),Q=n(`fresh`),$=n(!1);async function rt(){if(Z.value.trim()&&X.value>0&&!$.value){$.value=!0;try{await M.scheduleManualWakeup(b.workspaceId,{delaySeconds:Math.round(X.value*60),prompt:Z.value,mode:Q.value}),Z.value=``,j.notify({type:`positive`,message:A(`schedule.wakeupCreated`),position:`top`,timeout:2500})}catch(e){j.notify({type:`negative`,message:String(e instanceof Error?e.message:e),position:`top`,timeout:0})}finally{$.value=!1}}}return(n,r)=>(a(),f(`div`,me,[p(`header`,he,[p(`div`,ge,[s(h,{name:`calendar_month`,size:`22px`})]),p(`div`,null,[p(`div`,_e,t(n.$t(`schedule.panelTitle`)),1),p(`div`,ve,t(n.$t(`schedule.panelDescription`)),1)])]),F.value>0&&I.value&&!I.value.allowed?(a(),f(`div`,ye,[u(t(n.$t(`schedule.admissionTitle`))+` `+t(n.$t(`schedule.admission.${I.value.reason}`,{running:I.value.running,limit:I.value.limit}))+` `,1),p(`div`,null,t(n.$t(`schedule.admissionHint`)),1)])):l(``,!0),p(`section`,null,[p(`div`,be,[p(`div`,xe,t(n.$t(`schedule.activeTitle`)),1),F.value>0?(a(),c(ue,{key:0,rounded:``,color:`primary`,label:F.value},null,8,[`label`])):l(``,!0)]),P.value.length===0&&!N.value?(a(),c(y,{key:0,dark:``,flat:``,bordered:``,class:`empty-state row items-center q-gutter-sm q-pa-md`},{default:o(()=>[s(h,{name:`event_available`,size:`24px`,color:`kobo-3`}),p(`div`,null,[p(`div`,Se,t(n.$t(`schedule.emptyTitle`)),1),p(`div`,Ce,t(n.$t(`schedule.emptyDescription`)),1)])]),_:1})):(a(),f(`div`,we,[N.value?(a(),c(y,{key:0,dark:``,flat:``,bordered:``,class:`schedule-item schedule-item--wakeup`},{default:o(()=>[s(_,null,{default:o(()=>[p(`div`,Te,[p(`div`,S,[s(h,{name:`alarm`,size:`18px`})]),p(`div`,C,[p(`div`,w,t(n.$t(`schedule.wakeupTitle`)),1),p(`div`,T,t(z(N.value.targetAt)),1)]),s(g,{flat:``,dense:``,round:``,icon:`delete_outline`,size:`sm`,color:`kobo-2`,title:n.$t(`schedule.cancelWakeup`),onClick:Qe},null,8,[`title`])]),N.value.reason?(a(),f(`div`,E,t(N.value.reason),1)):l(``,!0)]),_:1})]),_:1})):l(``,!0),(a(!0),f(ee,null,te(P.value,e=>(a(),c(y,{key:e.id,dark:``,flat:``,bordered:``,class:`schedule-item`},{default:o(()=>[s(_,null,{default:o(()=>[p(`div`,D,[p(`div`,O,[s(h,{name:`event_repeat`,size:`18px`})]),p(`div`,Ee,[p(`div`,De,t(e.label||e.expression),1),e.validationError?(a(),f(`div`,{key:0,class:`text-caption text-negative`,title:e.validationError},t(n.$t(`schedule.invalidCron`)),9,Oe)):(a(),f(`div`,ke,t(n.$t(`schedule.nextFireAt`,{time:z(e.nextFireAt)})),1))]),s(g,{flat:``,dense:``,round:``,icon:`delete_outline`,size:`sm`,color:`kobo-2`,title:n.$t(`schedule.cancelCron`),onClick:t=>$e(e.id)},null,8,[`title`,`onClick`])]),p(`div`,Ae,[s(de,{dense:``,square:``,color:`blue-grey-9`,"text-color":`kobo-2`,size:`sm`},{default:o(()=>[u(t(e.expression),1)]),_:2},1024),e.lastFiredAt?(a(),f(`span`,je,t(n.$t(`schedule.lastFiredAt`,{time:Ze(e.lastFiredAt)})),1)):l(``,!0)]),p(`div`,Me,t(e.prompt),1)]),_:2},1024)]),_:2},1024))),128))]))]),p(`section`,null,[p(`div`,Ne,[p(`div`,null,[p(`div`,Pe,t(n.$t(`schedule.createTitle`)),1),p(`div`,Fe,t(n.$t(`schedule.createDescription`)),1)])]),s(y,{dark:``,flat:``,bordered:``,class:`create-card`},{default:o(()=>[s(x,{modelValue:B.value,"onUpdate:modelValue":r[0]||=e=>B.value=e,spread:``,"no-caps":``,unelevated:``,"toggle-color":`primary`,color:`blue-grey-10`,"text-color":`kobo-2`,options:et.value,class:`type-toggle`},null,8,[`modelValue`,`options`]),B.value===`wakeup`?(a(),c(_,{key:0,class:`column q-gutter-y-md`},{default:o(()=>[p(`div`,null,[p(`div`,Ie,t(n.$t(`schedule.addWakeupTitle`)),1),p(`div`,Le,t(n.$t(`schedule.wakeupDescription`)),1)]),s(v,{modelValue:X.value,"onUpdate:modelValue":r[1]||=e=>X.value=e,modelModifiers:{number:!0},type:`number`,dense:``,dark:``,outlined:``,min:`1`,label:n.$t(`schedule.delayMinutes`)},{prepend:o(()=>[s(h,{name:`timer`,size:`18px`})]),_:1},8,[`modelValue`,`label`]),s(v,{modelValue:Z.value,"onUpdate:modelValue":r[2]||=e=>Z.value=e,type:`textarea`,autogrow:``,dense:``,dark:``,outlined:``,label:n.$t(`schedule.promptLabel`),hint:n.$t(`schedule.promptHint`)},null,8,[`modelValue`,`label`,`hint`]),p(`div`,Re,[p(`div`,ze,t(n.$t(`schedule.sessionModeTitle`)),1),s(x,{modelValue:Q.value,"onUpdate:modelValue":r[3]||=e=>Q.value=e,spread:``,"no-caps":``,unelevated:``,"toggle-color":`blue-grey-7`,color:`transparent`,"text-color":`kobo-2`,options:Y.value,class:`session-toggle`},null,8,[`modelValue`,`options`])]),s(g,{"no-caps":``,unelevated:``,color:`primary`,icon:`alarm_add`,loading:$.value,disable:!Z.value.trim()||!(X.value>0),label:n.$t(`schedule.addWakeupBtn`),class:`full-width action-button`,onClick:rt},null,8,[`loading`,`disable`,`label`])]),_:1})):(a(),c(_,{key:1,class:`column q-gutter-y-md`},{default:o(()=>[p(`div`,null,[p(`div`,Be,t(n.$t(`schedule.addCronTitle`)),1),p(`div`,Ve,t(n.$t(`schedule.cronDescription`)),1)]),s(v,{modelValue:G.value,"onUpdate:modelValue":r[4]||=e=>G.value=e,dense:``,dark:``,outlined:``,label:n.$t(`schedule.labelOptional`)},null,8,[`modelValue`,`label`]),p(`div`,He,[p(`div`,Ue,t(n.$t(`schedule.frequencyTitle`)),1),p(`div`,We,[p(`span`,Ge,t(n.$t(`schedule.every`)),1),s(v,{modelValue:V.value,"onUpdate:modelValue":r[5]||=e=>V.value=e,modelModifiers:{number:!0},type:`number`,dense:``,dark:``,outlined:``,min:`1`,class:`frequency-value`},null,8,[`modelValue`]),s(ce,{modelValue:H.value,"onUpdate:modelValue":r[6]||=e=>H.value=e,options:tt.value,dense:``,dark:``,outlined:``,"options-dense":``,"emit-value":``,"map-options":``,class:`col min-width-zero`},null,8,[`modelValue`,`options`])]),H.value===`days`&&e(pe)(V.value)?(a(),f(`div`,Ke,t(n.$t(`schedule.daysDriftWarning`)),1)):l(``,!0)]),s(v,{modelValue:W.value,"onUpdate:modelValue":r[7]||=e=>W.value=e,type:`textarea`,autogrow:``,dense:``,dark:``,outlined:``,label:n.$t(`schedule.promptLabel`),hint:n.$t(`schedule.promptHint`)},null,8,[`modelValue`,`label`,`hint`]),s(le,{dense:``,"dense-toggle":``,"switch-toggle-side":``,icon:`code`,label:n.$t(`schedule.advancedExpression`),caption:n.$t(`schedule.advancedDescription`),class:`advanced-section`},{default:o(()=>[s(v,{modelValue:U.value,"onUpdate:modelValue":r[8]||=e=>U.value=e,dense:``,dark:``,outlined:``,label:n.$t(`schedule.cronExpressionLabel`),hint:n.$t(`schedule.advancedHint`),class:`q-mt-sm`},null,8,[`modelValue`,`label`,`hint`])]),_:1},8,[`label`,`caption`]),p(`div`,k,[p(`div`,qe,t(n.$t(`schedule.sessionModeTitle`)),1),s(x,{modelValue:K.value,"onUpdate:modelValue":r[9]||=e=>K.value=e,spread:``,"no-caps":``,unelevated:``,"toggle-color":`blue-grey-7`,color:`transparent`,"text-color":`kobo-2`,options:Y.value,class:`session-toggle`},null,8,[`modelValue`,`options`])]),p(`div`,Je,[p(`div`,null,[p(`div`,Ye,t(n.$t(`schedule.oneShot`)),1),p(`div`,Xe,t(n.$t(`schedule.oneShotHint`)),1)]),s(oe,{modelValue:q.value,"onUpdate:modelValue":r[10]||=e=>q.value=e,dense:``},null,8,[`modelValue`])]),s(g,{"no-caps":``,unelevated:``,color:`primary`,icon:`add_task`,loading:J.value,disable:!W.value.trim(),label:n.$t(`schedule.addCronBtn`),class:`full-width action-button`,onClick:nt},null,8,[`loading`,`disable`,`label`])]),_:1}))]),_:1})])]))}}),[[`__scopeId`,`data-v-bddde2d9`]]);export{A as default};
1
+ import{M as e,pt as t,v as n}from"./reactivity.esm-bundler-DY1JkAEA.js";import{F as r,J as i,L as a,Y as o,_ as s,d as c,f as l,g as u,l as d,p as f,r as ee,u as p,y as m,z as te}from"./runtime-core.esm-bundler-Bqg71Vll.js";import{d as ne}from"./dom-BtYTvLeN.js";import{l as h,t as g}from"./QBtn-BUSdPaf4.js";import{Bt as re,Vt as ie,Zt as ae,_n as _,at as oe,hn as v,jt as y,l as se}from"./index-C5fAw9ll.js";import{t as ce}from"./QSelect-Cb_s_nox.js";import{t as le}from"./QExpansionItem-DKgaMJ_l.js";import{a as b}from"./use-tours-BHNasCvg.js";import{t as ue}from"./QBadge-CW3Lw-kL.js";import{t as de}from"./QChip-Be16M4Ig.js";import{t as x}from"./QBtnToggle-DccOOtbh.js";function fe(e,t){let n=Math.max(1,Math.floor(t));switch(e){case`minutes`:return`*/${n} * * * *`;case`hours`:return`0 */${n} * * *`;case`days`:return`0 0 */${n} * *`}}function pe(e){return Math.max(1,Math.floor(e))>1}var me={class:`column q-pa-md q-gutter-lg`},he={class:`row items-center no-wrap q-gutter-sm`},ge={class:`schedule-header__icon`},_e={class:`text-subtitle1 text-weight-medium`},ve={class:`text-caption text-kobo-3`},ye={key:0,role:`status`,class:`text-caption q-pa-sm bg-blue-grey-9 rounded-borders`,"data-test":`admission-status`},be={class:`row items-center justify-between q-mb-sm`},xe={class:`text-subtitle2`},Se={class:`text-body2 text-weight-medium`},Ce={class:`text-caption text-kobo-3`},we={key:1,class:`column q-gutter-sm`},Te={class:`row items-start no-wrap q-gutter-sm`},S={class:`schedule-item__icon schedule-item__icon--wakeup`},C={class:`col min-width-zero`},w={class:`text-caption text-kobo-3`},T={class:`text-body2 text-weight-medium`},E={key:0,class:`prompt-preview schedule-item__prompt`},D={class:`row items-start no-wrap q-gutter-sm`},O={class:`schedule-item__icon schedule-item__icon--cron`},Ee={class:`col min-width-zero`},De={class:`text-body2 text-weight-medium ellipsis`},Oe=[`title`],ke={key:1,class:`text-caption text-kobo-3`},Ae={class:`row items-center q-gutter-xs q-mt-sm`},je={key:0,class:`text-caption text-kobo-3`},Me={class:`prompt-preview schedule-item__prompt`},Ne={class:`row items-center justify-between q-mb-sm`},Pe={class:`text-subtitle2`},Fe={class:`text-caption text-kobo-3`},Ie={class:`text-body2 text-weight-medium`},Le={class:`text-caption text-kobo-3`},Re={class:`column q-gutter-y-xs`},ze={class:`field-label`},Be={class:`text-body2 text-weight-medium`},Ve={class:`text-caption text-kobo-3`},He={class:`column q-gutter-y-xs`},Ue={class:`field-label`},We={class:`row items-center no-wrap q-gutter-sm`},Ge={class:`text-body2 text-kobo-2`},Ke={key:0,class:`text-caption text-warning`},qe={class:`column q-gutter-y-xs`},Je={class:`field-label`},Ye={class:`one-shot-option row items-center justify-between no-wrap q-pa-sm`},k={class:`text-body2`},Xe={class:`text-caption text-kobo-3`},A=b(m({__name:`SchedulePanel`,props:{workspaceId:{}},setup(m){let b=m,{t:A}=ae(),j=ne(),M=oe(),N=d(()=>M.pendingWakeups[b.workspaceId]??null),P=d(()=>M.crons[b.workspaceId]??[]),F=d(()=>P.value.filter(e=>!e.validationError).length+ +!!N.value);i(()=>b.workspaceId,e=>{e&&M.fetchCrons(e)},{immediate:!0});let I=n(null),L,R=0;i(()=>b.workspaceId,e=>{L&&clearInterval(L),I.value=null;let t=++R,n=!1;async function r(){if(e&&!n){n=!0;try{let n=await re(`/api/workspaces/${encodeURIComponent(e)}/automatic-admission`);t===R&&(I.value=n)}catch{t===R&&(I.value=null)}finally{n=!1}}}r(),L=setInterval(()=>{r()},5e3)},{immediate:!0}),r(()=>{R++,L&&clearInterval(L)});function z(e){return new Date(e).toLocaleString(void 0,{weekday:`short`,day:`numeric`,month:`short`,hour:`2-digit`,minute:`2-digit`})}function Ze(e){let t=Date.now()-new Date(e).getTime();if(Number.isNaN(t)||t<0)return`—`;let n=new Intl.RelativeTimeFormat(void 0,{numeric:`auto`}),r=Math.floor(t/1e3);if(r<60)return n.format(-r,`second`);let i=Math.floor(r/60);if(i<60)return n.format(-i,`minute`);let a=Math.floor(i/60);return a<24?n.format(-a,`hour`):n.format(-Math.floor(a/24),`day`)}async function Qe(){try{await ie(`/api/workspaces/${b.workspaceId}/pending-wakeup`,{method:`DELETE`})}catch(e){j.notify({type:`negative`,message:String(e),position:`top`,timeout:0})}}async function $e(e){try{await M.cancelCron(b.workspaceId,e)}catch(e){j.notify({type:`negative`,message:String(e),position:`top`,timeout:0})}}let B=n(`wakeup`),V=n(15),H=n(`minutes`),U=n(``),W=n(``),G=n(``),K=n(`fresh`),q=n(!1),J=n(!1),et=d(()=>[{label:A(`schedule.typeWakeup`),value:`wakeup`,icon:`alarm`},{label:A(`schedule.typeRecurring`),value:`cron`,icon:`event_repeat`}]),Y=d(()=>[{label:A(`schedule.modeFresh`),value:`fresh`,icon:`add_comment`},{label:A(`schedule.modeResume`),value:`resume`,icon:`history`}]),tt=d(()=>[{label:A(`schedule.unitMinutes`),value:`minutes`},{label:A(`schedule.unitHours`),value:`hours`},{label:A(`schedule.unitDays`),value:`days`}]);async function nt(){if(W.value.trim()&&!J.value){J.value=!0;try{let e=U.value.trim()||fe(H.value,V.value);await M.createCron(b.workspaceId,{expression:e,prompt:W.value,label:G.value.trim()||void 0,mode:K.value,oneShot:q.value}),W.value=``,G.value=``,U.value=``,j.notify({type:`positive`,message:A(`schedule.cronCreated`),position:`top`,timeout:2500})}catch(e){j.notify({type:`negative`,message:String(e instanceof Error?e.message:e),position:`top`,timeout:0})}finally{J.value=!1}}}let X=n(15),Z=n(``),Q=n(`fresh`),$=n(!1);async function rt(){if(Z.value.trim()&&X.value>0&&!$.value){$.value=!0;try{await M.scheduleManualWakeup(b.workspaceId,{delaySeconds:Math.round(X.value*60),prompt:Z.value,mode:Q.value}),Z.value=``,j.notify({type:`positive`,message:A(`schedule.wakeupCreated`),position:`top`,timeout:2500})}catch(e){j.notify({type:`negative`,message:String(e instanceof Error?e.message:e),position:`top`,timeout:0})}finally{$.value=!1}}}return(n,r)=>(a(),f(`div`,me,[p(`header`,he,[p(`div`,ge,[s(h,{name:`calendar_month`,size:`22px`})]),p(`div`,null,[p(`div`,_e,t(n.$t(`schedule.panelTitle`)),1),p(`div`,ve,t(n.$t(`schedule.panelDescription`)),1)])]),F.value>0&&I.value&&!I.value.allowed?(a(),f(`div`,ye,[u(t(n.$t(`schedule.admissionTitle`))+` `+t(n.$t(`schedule.admission.${I.value.reason}`,{running:I.value.running,limit:I.value.limit}))+` `,1),p(`div`,null,t(n.$t(`schedule.admissionHint`)),1)])):l(``,!0),p(`section`,null,[p(`div`,be,[p(`div`,xe,t(n.$t(`schedule.activeTitle`)),1),F.value>0?(a(),c(ue,{key:0,rounded:``,color:`primary`,label:F.value},null,8,[`label`])):l(``,!0)]),P.value.length===0&&!N.value?(a(),c(v,{key:0,dark:``,flat:``,bordered:``,class:`empty-state row items-center q-gutter-sm q-pa-md`},{default:o(()=>[s(h,{name:`event_available`,size:`24px`,color:`kobo-3`}),p(`div`,null,[p(`div`,Se,t(n.$t(`schedule.emptyTitle`)),1),p(`div`,Ce,t(n.$t(`schedule.emptyDescription`)),1)])]),_:1})):(a(),f(`div`,we,[N.value?(a(),c(v,{key:0,dark:``,flat:``,bordered:``,class:`schedule-item schedule-item--wakeup`},{default:o(()=>[s(_,null,{default:o(()=>[p(`div`,Te,[p(`div`,S,[s(h,{name:`alarm`,size:`18px`})]),p(`div`,C,[p(`div`,w,t(n.$t(`schedule.wakeupTitle`)),1),p(`div`,T,t(z(N.value.targetAt)),1)]),s(g,{flat:``,dense:``,round:``,icon:`delete_outline`,size:`sm`,color:`kobo-2`,title:n.$t(`schedule.cancelWakeup`),onClick:Qe},null,8,[`title`])]),N.value.reason?(a(),f(`div`,E,t(N.value.reason),1)):l(``,!0)]),_:1})]),_:1})):l(``,!0),(a(!0),f(ee,null,te(P.value,e=>(a(),c(v,{key:e.id,dark:``,flat:``,bordered:``,class:`schedule-item`},{default:o(()=>[s(_,null,{default:o(()=>[p(`div`,D,[p(`div`,O,[s(h,{name:`event_repeat`,size:`18px`})]),p(`div`,Ee,[p(`div`,De,t(e.label||e.expression),1),e.validationError?(a(),f(`div`,{key:0,class:`text-caption text-negative`,title:e.validationError},t(n.$t(`schedule.invalidCron`)),9,Oe)):(a(),f(`div`,ke,t(n.$t(`schedule.nextFireAt`,{time:z(e.nextFireAt)})),1))]),s(g,{flat:``,dense:``,round:``,icon:`delete_outline`,size:`sm`,color:`kobo-2`,title:n.$t(`schedule.cancelCron`),onClick:t=>$e(e.id)},null,8,[`title`,`onClick`])]),p(`div`,Ae,[s(de,{dense:``,square:``,color:`blue-grey-9`,"text-color":`kobo-2`,size:`sm`},{default:o(()=>[u(t(e.expression),1)]),_:2},1024),e.lastFiredAt?(a(),f(`span`,je,t(n.$t(`schedule.lastFiredAt`,{time:Ze(e.lastFiredAt)})),1)):l(``,!0)]),p(`div`,Me,t(e.prompt),1)]),_:2},1024)]),_:2},1024))),128))]))]),p(`section`,null,[p(`div`,Ne,[p(`div`,null,[p(`div`,Pe,t(n.$t(`schedule.createTitle`)),1),p(`div`,Fe,t(n.$t(`schedule.createDescription`)),1)])]),s(v,{dark:``,flat:``,bordered:``,class:`create-card`},{default:o(()=>[s(x,{modelValue:B.value,"onUpdate:modelValue":r[0]||=e=>B.value=e,spread:``,"no-caps":``,unelevated:``,"toggle-color":`primary`,color:`blue-grey-10`,"text-color":`kobo-2`,options:et.value,class:`type-toggle`},null,8,[`modelValue`,`options`]),B.value===`wakeup`?(a(),c(_,{key:0,class:`column q-gutter-y-md`},{default:o(()=>[p(`div`,null,[p(`div`,Ie,t(n.$t(`schedule.addWakeupTitle`)),1),p(`div`,Le,t(n.$t(`schedule.wakeupDescription`)),1)]),s(y,{modelValue:X.value,"onUpdate:modelValue":r[1]||=e=>X.value=e,modelModifiers:{number:!0},type:`number`,dense:``,dark:``,outlined:``,min:`1`,label:n.$t(`schedule.delayMinutes`)},{prepend:o(()=>[s(h,{name:`timer`,size:`18px`})]),_:1},8,[`modelValue`,`label`]),s(y,{modelValue:Z.value,"onUpdate:modelValue":r[2]||=e=>Z.value=e,type:`textarea`,autogrow:``,dense:``,dark:``,outlined:``,label:n.$t(`schedule.promptLabel`),hint:n.$t(`schedule.promptHint`)},null,8,[`modelValue`,`label`,`hint`]),p(`div`,Re,[p(`div`,ze,t(n.$t(`schedule.sessionModeTitle`)),1),s(x,{modelValue:Q.value,"onUpdate:modelValue":r[3]||=e=>Q.value=e,spread:``,"no-caps":``,unelevated:``,"toggle-color":`blue-grey-7`,color:`transparent`,"text-color":`kobo-2`,options:Y.value,class:`session-toggle`},null,8,[`modelValue`,`options`])]),s(g,{"no-caps":``,unelevated:``,color:`primary`,icon:`alarm_add`,loading:$.value,disable:!Z.value.trim()||!(X.value>0),label:n.$t(`schedule.addWakeupBtn`),class:`full-width action-button`,onClick:rt},null,8,[`loading`,`disable`,`label`])]),_:1})):(a(),c(_,{key:1,class:`column q-gutter-y-md`},{default:o(()=>[p(`div`,null,[p(`div`,Be,t(n.$t(`schedule.addCronTitle`)),1),p(`div`,Ve,t(n.$t(`schedule.cronDescription`)),1)]),s(y,{modelValue:G.value,"onUpdate:modelValue":r[4]||=e=>G.value=e,dense:``,dark:``,outlined:``,label:n.$t(`schedule.labelOptional`)},null,8,[`modelValue`,`label`]),p(`div`,He,[p(`div`,Ue,t(n.$t(`schedule.frequencyTitle`)),1),p(`div`,We,[p(`span`,Ge,t(n.$t(`schedule.every`)),1),s(y,{modelValue:V.value,"onUpdate:modelValue":r[5]||=e=>V.value=e,modelModifiers:{number:!0},type:`number`,dense:``,dark:``,outlined:``,min:`1`,class:`frequency-value`},null,8,[`modelValue`]),s(ce,{modelValue:H.value,"onUpdate:modelValue":r[6]||=e=>H.value=e,options:tt.value,dense:``,dark:``,outlined:``,"options-dense":``,"emit-value":``,"map-options":``,class:`col min-width-zero`},null,8,[`modelValue`,`options`])]),H.value===`days`&&e(pe)(V.value)?(a(),f(`div`,Ke,t(n.$t(`schedule.daysDriftWarning`)),1)):l(``,!0)]),s(y,{modelValue:W.value,"onUpdate:modelValue":r[7]||=e=>W.value=e,type:`textarea`,autogrow:``,dense:``,dark:``,outlined:``,label:n.$t(`schedule.promptLabel`),hint:n.$t(`schedule.promptHint`)},null,8,[`modelValue`,`label`,`hint`]),s(le,{dense:``,"dense-toggle":``,"switch-toggle-side":``,icon:`code`,label:n.$t(`schedule.advancedExpression`),caption:n.$t(`schedule.advancedDescription`),class:`advanced-section`},{default:o(()=>[s(y,{modelValue:U.value,"onUpdate:modelValue":r[8]||=e=>U.value=e,dense:``,dark:``,outlined:``,label:n.$t(`schedule.cronExpressionLabel`),hint:n.$t(`schedule.advancedHint`),class:`q-mt-sm`},null,8,[`modelValue`,`label`,`hint`])]),_:1},8,[`label`,`caption`]),p(`div`,qe,[p(`div`,Je,t(n.$t(`schedule.sessionModeTitle`)),1),s(x,{modelValue:K.value,"onUpdate:modelValue":r[9]||=e=>K.value=e,spread:``,"no-caps":``,unelevated:``,"toggle-color":`blue-grey-7`,color:`transparent`,"text-color":`kobo-2`,options:Y.value,class:`session-toggle`},null,8,[`modelValue`,`options`])]),p(`div`,Ye,[p(`div`,null,[p(`div`,k,t(n.$t(`schedule.oneShot`)),1),p(`div`,Xe,t(n.$t(`schedule.oneShotHint`)),1)]),s(se,{modelValue:q.value,"onUpdate:modelValue":r[10]||=e=>q.value=e,dense:``},null,8,[`modelValue`])]),s(g,{"no-caps":``,unelevated:``,color:`primary`,icon:`add_task`,loading:J.value,disable:!W.value.trim(),label:n.$t(`schedule.addCronBtn`),class:`full-width action-button`,onClick:nt},null,8,[`loading`,`disable`,`label`])]),_:1}))]),_:1})])]))}}),[[`__scopeId`,`data-v-bddde2d9`]]);export{A as default};
@@ -1 +1 @@
1
- import{M as e,pt as t,v as n}from"./reactivity.esm-bundler-DY1JkAEA.js";import{F as r,J as i,L as a,P as o,Y as s,_ as c,d as l,f as u,p as d,r as f,u as p,y as m,z as h}from"./runtime-core.esm-bundler-Bqg71Vll.js";import{l as g}from"./QBtn-BUSdPaf4.js";import{Yt as _,a as v,f as y,kt as b,l as x}from"./index-ImUH7Bbt.js";import{a as S,i as C,n as w}from"./use-tours-6yxNVmjH.js";import{t as T}from"./QBadge-CW3Lw-kL.js";import{t as E}from"./formatters-C25D1RSd.js";import{t as D}from"./QPage-CqkGHokx.js";import{t as O}from"./DrawerToggleButton-KfwSzjeY.js";import{t as k}from"./TourReplayButton-Czlqo18H.js";import{n as A,t as j}from"./use-search-index-status-CSREHQM4.js";var M={class:`search-header`},N={class:`row items-center q-mb-md`},P={class:`text-h5`},ee={"data-tour":`search-input`},F={class:`row items-center q-mt-sm q-gutter-sm`},I={key:0,class:`text-caption text-kobo-3`},L={key:0,class:`text-caption text-kobo-3 q-mt-sm`,role:`status`},R={key:1,class:`text-caption text-negative q-mt-sm`,role:`status`},z={key:2,class:`text-kobo-3 text-caption`},B={key:3,class:`text-negative text-caption`},V={key:4,class:`text-kobo-3 text-caption`},H={key:5,class:`search-results`},U=[`onClick`],W={class:`row items-center q-mb-xs text-caption`},G={class:`text-kobo-2 text-weight-medium`},K={class:`text-kobo-3`},q={class:`search-snippet text-body2 text-kobo-2`},J=S(m({__name:`SearchPage`,setup(m){let S=A();j(()=>S.search(!0));let J=v(),{t:Y}=_(),{timeAgo:X}=E(),{scheduleAutoRun:Z}=w();o(()=>{Z(`search`)});let Q=n(null),$=null;r(()=>{$&&clearTimeout($),S.cancel()});function te(){$&&clearTimeout($),$=setTimeout(()=>{S.search()},250)}i(()=>S.includeArchived,()=>{S.query.trim().length>0&&S.search()});function ne(e){J.push({name:`workspace`,params:{id:e.workspaceId},query:{eventId:e.eventId,...e.sessionId?{session:e.sessionId}:{}}})}function re(e){return e===`user:message`?Y(`search.eventType.userMessage`):e===`agent:output`||e===`agent:event`?Y(`search.eventType.agentOutput`):e}return(n,r)=>(a(),l(D,{class:`q-pa-md search-page`},{default:s(()=>[p(`div`,M,[p(`div`,N,[c(O,{class:`q-mr-sm`}),p(`h2`,P,t(n.$t(`search.title`)),1),c(C),c(k,{"tour-id":`search`})]),p(`div`,ee,[c(b,{ref_key:`inputEl`,ref:Q,modelValue:e(S).query,"onUpdate:modelValue":[r[0]||=t=>e(S).query=t,te],dense:``,dark:``,outlined:``,clearable:``,autofocus:``,placeholder:n.$t(`search.placeholder`),onClear:r[1]||=t=>e(S).clear()},{prepend:s(()=>[c(g,{name:`search`})]),_:1},8,[`modelValue`,`placeholder`])]),p(`div`,F,[c(x,{modelValue:e(S).includeArchived,"onUpdate:modelValue":r[2]||=t=>e(S).includeArchived=t,"data-tour":`search-archived`,label:n.$t(`search.includeArchived`),dense:``,dark:``,color:`primary`,size:`sm`},null,8,[`modelValue`,`label`]),c(C),e(S).results.length>0?(a(),d(`span`,I,t(n.$t(`search.resultCount`,{n:e(S).results.length})),1)):u(``,!0)])]),e(S).indexStatus.state===`building`?(a(),d(`div`,L,t(n.$t(`search.indexing`,{processed:e(S).indexStatus.processed,total:e(S).indexStatus.total})),1)):e(S).indexStatus.state===`error`?(a(),d(`div`,R,t(n.$t(`search.indexUnavailable`)),1)):u(``,!0),c(y,{dark:``,class:`q-my-md`}),e(S).loading?(a(),d(`div`,z,t(n.$t(`search.loading`)),1)):e(S).error?(a(),d(`div`,B,t(n.$t(`search.error`,{message:e(S).error})),1)):e(S).query.trim().length>0&&e(S).results.length===0?(a(),d(`div`,V,t(n.$t(`search.noResults`)),1)):e(S).results.length>0?(a(),d(`div`,H,[(a(!0),d(f,null,h(e(S).results,(r,i)=>(a(),d(`div`,{key:`${r.workspaceId}-${r.timestamp}-${i}`,class:`search-result q-pa-sm q-mb-sm cursor-pointer`,onClick:e=>ne(r)},[p(`div`,W,[p(`span`,G,t(r.workspaceName),1),r.archived?(a(),l(T,{key:0,color:`kobo-3`,class:`q-ml-xs`,label:n.$t(`common.archive`)},null,8,[`label`])):u(``,!0),c(C),c(T,{color:r.type===`user:message`?`blue-grey-7`:`primary`,class:`q-mr-sm`,label:re(r.type)},null,8,[`color`,`label`]),p(`span`,K,t(e(X)(r.timestamp)),1)]),p(`div`,q,t(r.snippet),1)],8,U))),128))])):u(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-2ac4f1d8`]]);export{J as default};
1
+ import{M as e,pt as t,v as n}from"./reactivity.esm-bundler-DY1JkAEA.js";import{F as r,J as i,L as a,P as o,Y as s,_ as c,d as l,f as u,p as d,r as f,u as p,y as m,z as h}from"./runtime-core.esm-bundler-Bqg71Vll.js";import{l as g}from"./QBtn-BUSdPaf4.js";import{Zt as _,a as v,f as y,jt as b,l as x}from"./index-C5fAw9ll.js";import{a as S,i as C,n as w}from"./use-tours-BHNasCvg.js";import{t as T}from"./QBadge-CW3Lw-kL.js";import{t as E}from"./formatters-B30bNFhq.js";import{t as D}from"./QPage-CqkGHokx.js";import{t as O}from"./DrawerToggleButton-DG1Qjqk1.js";import{t as k}from"./TourReplayButton-DQwS2xdD.js";import{n as A,t as j}from"./use-search-index-status-CBpnyV-R.js";var M={class:`search-header`},N={class:`row items-center q-mb-md`},P={class:`text-h5`},ee={"data-tour":`search-input`},F={class:`row items-center q-mt-sm q-gutter-sm`},I={key:0,class:`text-caption text-kobo-3`},L={key:0,class:`text-caption text-kobo-3 q-mt-sm`,role:`status`},R={key:1,class:`text-caption text-negative q-mt-sm`,role:`status`},z={key:2,class:`text-kobo-3 text-caption`},B={key:3,class:`text-negative text-caption`},V={key:4,class:`text-kobo-3 text-caption`},H={key:5,class:`search-results`},U=[`onClick`],W={class:`row items-center q-mb-xs text-caption`},G={class:`text-kobo-2 text-weight-medium`},K={class:`text-kobo-3`},q={class:`search-snippet text-body2 text-kobo-2`},J=S(m({__name:`SearchPage`,setup(m){let S=A();j(()=>S.search(!0));let J=v(),{t:Y}=_(),{timeAgo:X}=E(),{scheduleAutoRun:Z}=w();o(()=>{Z(`search`)});let Q=n(null),$=null;r(()=>{$&&clearTimeout($),S.cancel()});function te(){$&&clearTimeout($),$=setTimeout(()=>{S.search()},250)}i(()=>S.includeArchived,()=>{S.query.trim().length>0&&S.search()});function ne(e){J.push({name:`workspace`,params:{id:e.workspaceId},query:{eventId:e.eventId,...e.sessionId?{session:e.sessionId}:{}}})}function re(e){return e===`user:message`?Y(`search.eventType.userMessage`):e===`agent:output`||e===`agent:event`?Y(`search.eventType.agentOutput`):e}return(n,r)=>(a(),l(D,{class:`q-pa-md search-page`},{default:s(()=>[p(`div`,M,[p(`div`,N,[c(O,{class:`q-mr-sm`}),p(`h2`,P,t(n.$t(`search.title`)),1),c(C),c(k,{"tour-id":`search`})]),p(`div`,ee,[c(b,{ref_key:`inputEl`,ref:Q,modelValue:e(S).query,"onUpdate:modelValue":[r[0]||=t=>e(S).query=t,te],dense:``,dark:``,outlined:``,clearable:``,autofocus:``,placeholder:n.$t(`search.placeholder`),onClear:r[1]||=t=>e(S).clear()},{prepend:s(()=>[c(g,{name:`search`})]),_:1},8,[`modelValue`,`placeholder`])]),p(`div`,F,[c(x,{modelValue:e(S).includeArchived,"onUpdate:modelValue":r[2]||=t=>e(S).includeArchived=t,"data-tour":`search-archived`,label:n.$t(`search.includeArchived`),dense:``,dark:``,color:`primary`,size:`sm`},null,8,[`modelValue`,`label`]),c(C),e(S).results.length>0?(a(),d(`span`,I,t(n.$t(`search.resultCount`,{n:e(S).results.length})),1)):u(``,!0)])]),e(S).indexStatus.state===`building`?(a(),d(`div`,L,t(n.$t(`search.indexing`,{processed:e(S).indexStatus.processed,total:e(S).indexStatus.total})),1)):e(S).indexStatus.state===`error`?(a(),d(`div`,R,t(n.$t(`search.indexUnavailable`)),1)):u(``,!0),c(y,{dark:``,class:`q-my-md`}),e(S).loading?(a(),d(`div`,z,t(n.$t(`search.loading`)),1)):e(S).error?(a(),d(`div`,B,t(n.$t(`search.error`,{message:e(S).error})),1)):e(S).query.trim().length>0&&e(S).results.length===0?(a(),d(`div`,V,t(n.$t(`search.noResults`)),1)):e(S).results.length>0?(a(),d(`div`,H,[(a(!0),d(f,null,h(e(S).results,(r,i)=>(a(),d(`div`,{key:`${r.workspaceId}-${r.timestamp}-${i}`,class:`search-result q-pa-sm q-mb-sm cursor-pointer`,onClick:e=>ne(r)},[p(`div`,W,[p(`span`,G,t(r.workspaceName),1),r.archived?(a(),l(T,{key:0,color:`kobo-3`,class:`q-ml-xs`,label:n.$t(`common.archive`)},null,8,[`label`])):u(``,!0),c(C),c(T,{color:r.type===`user:message`?`blue-grey-7`:`primary`,class:`q-mr-sm`,label:re(r.type)},null,8,[`color`,`label`]),p(`span`,K,t(e(X)(r.timestamp)),1)]),p(`div`,q,t(r.snippet),1)],8,U))),128))])):u(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-2ac4f1d8`]]);export{J as default};