planche 0.7.6 → 0.7.7

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 (59) hide show
  1. package/LICENSE +66 -0
  2. package/THIRD-PARTY-NOTICES.md +3668 -0
  3. package/app/assets/AboutDialog-CwxQS9-3.js +1 -0
  4. package/app/assets/{ConnectDialog-Bu2hPwDR.js → ConnectDialog-BNJnQcBX.js} +1 -1
  5. package/app/assets/{CopyDatabaseDialog-ChOc_aHQ.js → CopyDatabaseDialog-Gsai81KV.js} +1 -1
  6. package/app/assets/{CopyTableDialog-DnuH4LY7.js → CopyTableDialog-Bk8AC6tJ.js} +1 -1
  7. package/app/assets/{CreateDatabaseDialog-DxJWfyxB.js → CreateDatabaseDialog-Bzm0FfTH.js} +1 -1
  8. package/app/assets/{DataDiffDialog-Cn-eGt63.js → DataDiffDialog-PJeuNu0W.js} +1 -1
  9. package/app/assets/{DownloadToCSVDialog-DOj_AAnH.js → DownloadToCSVDialog-Bqw6Rhd1.js} +1 -1
  10. package/app/assets/{EditSchemaDialog-UhHglHzS.js → EditSchemaDialog-u5dIJ2gT.js} +1 -1
  11. package/app/assets/{FindReplaceDialog-DYEerBXx.js → FindReplaceDialog-BlS9158P.js} +1 -1
  12. package/app/assets/{FlushDialog-Dddl8R1h.js → FlushDialog-BJ7t14hx.js} +1 -1
  13. package/app/assets/{LinkColumnDialog-DbBY5TGQ.js → LinkColumnDialog-BhyQve5r.js} +1 -1
  14. package/app/assets/{LocalHistoryDialog-Nojvlhmz.js → LocalHistoryDialog-B0ytB5Y-.js} +1 -1
  15. package/app/assets/{ProcessListDialog-C460XY2M.js → ProcessListDialog-BKF1MRZ-.js} +1 -1
  16. package/app/assets/{QuickCommandPalette-Crdl1lBX.js → QuickCommandPalette-DzyPCRTc.js} +1 -1
  17. package/app/assets/{RowFormDialog-A8wtwTwI.js → RowFormDialog-DpqKxTg4.js} +1 -1
  18. package/app/assets/{SafetySettingsDialog-Mny69ZOZ.js → SafetySettingsDialog-BSB29OYt.js} +1 -1
  19. package/app/assets/{SchemaDiffDialog-Bv_hurif.js → SchemaDiffDialog-CW7Db6W_.js} +1 -1
  20. package/app/assets/{SchemaToHTMLDialog-BBskyW7d.js → SchemaToHTMLDialog-BZWaSeWl.js} +1 -1
  21. package/app/assets/{StatusDialog-C46oDW7W.js → StatusDialog-DYctXfMc.js} +1 -1
  22. package/app/assets/{TermsDialog-CSYNiNpB.js → TermsDialog-Bj_qh6sW.js} +1 -1
  23. package/app/assets/{UserAddDialog-DeXw9R9S.js → UserAddDialog-CbHCH74s.js} +1 -1
  24. package/app/assets/{UserManagerDialog-DVESBSWa.js → UserManagerDialog-DD-EVqkB.js} +1 -1
  25. package/app/assets/{VariablesDialog-BrHFb0LI.js → VariablesDialog-BG6lVLna.js} +1 -1
  26. package/app/assets/{button-BGQhw-yz.js → button-BRD_vJ8s.js} +1 -1
  27. package/app/assets/chevron-up-DVdt2433.js +1 -0
  28. package/app/assets/{connection-store-B9-4NAfR.js → connection-store-Cn79Ey1H.js} +1 -1
  29. package/app/assets/{database-DUBVz1in.js → database-DT05D7dO.js} +1 -1
  30. package/app/assets/de-CC5Txb37.js +2 -0
  31. package/app/assets/{dialog-z_ZHxAMN.js → dialog-1MXGAorC.js} +1 -1
  32. package/app/assets/{dist-R-HWeP5h.js → dist-BnghYOTd.js} +1 -1
  33. package/app/assets/{dist-Dfw8x01G.js → dist-Bo6CxCQ0.js} +1 -1
  34. package/app/assets/{dist-eK8CwLw8.js → dist-DGLzi2V0.js} +1 -1
  35. package/app/assets/{engine-DRzYxvTs.js → engine-tGsnPQEm.js} +1 -1
  36. package/app/assets/fr-DuwjnnAw.js +2 -0
  37. package/app/assets/{i18n-DyTdEJ5X.js → i18n-BBZ4HyyF.js} +2 -2
  38. package/app/assets/ja-B8MYtGo3.js +2 -0
  39. package/app/assets/ko-lJaJ15rE.js +2 -0
  40. package/app/assets/{main-DEK4mnDt.js → main-kdBvc1j0.js} +3 -3
  41. package/app/assets/{query-execution-DItl2TUQ.js → query-execution-COPkS7hB.js} +3 -3
  42. package/app/assets/{query-store-fCiE0iiG.js → query-store-Cu277RoH.js} +1 -1
  43. package/app/assets/{select-BoGTNqvN.js → select-CY6U-FwY.js} +1 -1
  44. package/app/assets/{settings-store-MJead_iM.js → settings-store-hXzC7s8K.js} +1 -1
  45. package/app/assets/{table-copy-DXLY7yKq.js → table-copy-DxuAqxW1.js} +1 -1
  46. package/app/assets/{ui-store-DWSBgCoR.js → ui-store-VGM_km-l.js} +1 -1
  47. package/app/assets/{use-engine-5vf18JRu.js → use-engine-CkfCgSB4.js} +1 -1
  48. package/app/assets/{user-store-D_BMKTT2.js → user-store-dpr5Uk1B.js} +1 -1
  49. package/app/assets/zh-DXC_ymYM.js +2 -0
  50. package/app/index.html +15 -15
  51. package/app/third-party-notices.txt +3668 -0
  52. package/package.json +4 -2
  53. package/app/assets/AboutDialog-DNnLylHg.js +0 -1
  54. package/app/assets/chevron-up-C8Exvnh_.js +0 -1
  55. package/app/assets/de-BqVlEtp8.js +0 -2
  56. package/app/assets/fr-BPECqiBp.js +0 -2
  57. package/app/assets/ja-DF-AzUTw.js +0 -2
  58. package/app/assets/ko-DqL1zlOi.js +0 -2
  59. package/app/assets/zh-GURsrn7-.js +0 -2
@@ -1,7 +1,7 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-DEK4mnDt.js","assets/ui-store-DWSBgCoR.js","assets/button-BGQhw-yz.js","assets/i18n-DyTdEJ5X.js","assets/dist-R-HWeP5h.js","assets/dist-eK8CwLw8.js","assets/dist-Dfw8x01G.js","assets/app-storage-B6v72zLH.js","assets/connection-store-B9-4NAfR.js","assets/query-store-fCiE0iiG.js","assets/settings-store-MJead_iM.js","assets/database-DUBVz1in.js","assets/dbms-Bsjvyvsp.js","assets/engine-DRzYxvTs.js","assets/schema-nodes-D3-cz2Xk.js","assets/use-engine-5vf18JRu.js","assets/table-copy-DXLY7yKq.js","assets/table-definition-Bs5VSn0X.js","assets/main-DCJnT21X.css"])))=>i.map(i=>d[i]);
2
- import{_ as e,c as t,m as n,n as r}from"./ui-store-DWSBgCoR.js";import{a as i,i as a}from"./i18n-DyTdEJ5X.js";import{t as o}from"./connection-store-B9-4NAfR.js";import{n as s}from"./query-store-fCiE0iiG.js";import{n as c}from"./settings-store-MJead_iM.js";import{A as l,M as u,b as d,o as f,r as p}from"./database-DUBVz1in.js";import{a as m,o as h}from"./dbms-Bsjvyvsp.js";import{n as g,r as ee}from"./engine-DRzYxvTs.js";import{n as te,t as ne}from"./schema-nodes-D3-cz2Xk.js";var _=u(`editors`,()=>new Map),v=(e,t)=>`${e}:${t}`;function re(e,t,n){return _.set(v(e,t),n),()=>{_.get(v(e,t))===n&&_.delete(v(e,t))}}function y(e,t){return _.get(v(e,t))}function ie(e,t){let n=y(e,t),r=n?.getModel();if(!n||!r)return null;let i=n.getSelection();if(i&&!i.isEmpty())return{selection:r.getValueInRange(i)};let a=n.getPosition();return{cursorOffset:a?r.getOffsetAt(a):0}}var ae={undo:`undo`,redo:`redo`,cut:`editor.action.clipboardCutAction`,copy:`editor.action.clipboardCopyAction`,paste:`editor.action.clipboardPasteAction`,selectAll:`editor.action.selectAll`};function oe(e,t,n){let r=y(e,t);return r?(r.focus(),r.trigger(`menu`,ae[n],null),!0):!1}var se=[`<=>`,`->>`,`->`,`<>`,`!=`,`<=`,`>=`,`<<`,`>>`,`:=`,`||`,`&&`];function b(e){return/[A-Za-z_$\u0080-\uFFFF]/.test(e)}function x(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function S(e){return e>=`0`&&e<=`9`}function C(e){return e===` `||e===` `||e===`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-kdBvc1j0.js","assets/ui-store-VGM_km-l.js","assets/button-BRD_vJ8s.js","assets/i18n-BBZ4HyyF.js","assets/dist-BnghYOTd.js","assets/dist-DGLzi2V0.js","assets/dist-Bo6CxCQ0.js","assets/app-storage-B6v72zLH.js","assets/connection-store-Cn79Ey1H.js","assets/query-store-Cu277RoH.js","assets/settings-store-hXzC7s8K.js","assets/database-DT05D7dO.js","assets/dbms-Bsjvyvsp.js","assets/engine-tGsnPQEm.js","assets/schema-nodes-D3-cz2Xk.js","assets/use-engine-CkfCgSB4.js","assets/table-copy-DxuAqxW1.js","assets/table-definition-Bs5VSn0X.js","assets/main-DCJnT21X.css"])))=>i.map(i=>d[i]);
2
+ import{_ as e,c as t,m as n,n as r}from"./ui-store-VGM_km-l.js";import{a as i,i as a}from"./i18n-BBZ4HyyF.js";import{t as o}from"./connection-store-Cn79Ey1H.js";import{n as s}from"./query-store-Cu277RoH.js";import{n as c}from"./settings-store-hXzC7s8K.js";import{A as l,M as u,b as d,o as f,r as p}from"./database-DT05D7dO.js";import{a as m,o as h}from"./dbms-Bsjvyvsp.js";import{n as g,r as ee}from"./engine-tGsnPQEm.js";import{n as te,t as ne}from"./schema-nodes-D3-cz2Xk.js";var _=u(`editors`,()=>new Map),v=(e,t)=>`${e}:${t}`;function re(e,t,n){return _.set(v(e,t),n),()=>{_.get(v(e,t))===n&&_.delete(v(e,t))}}function y(e,t){return _.get(v(e,t))}function ie(e,t){let n=y(e,t),r=n?.getModel();if(!n||!r)return null;let i=n.getSelection();if(i&&!i.isEmpty())return{selection:r.getValueInRange(i)};let a=n.getPosition();return{cursorOffset:a?r.getOffsetAt(a):0}}var ae={undo:`undo`,redo:`redo`,cut:`editor.action.clipboardCutAction`,copy:`editor.action.clipboardCopyAction`,paste:`editor.action.clipboardPasteAction`,selectAll:`editor.action.selectAll`};function oe(e,t,n){let r=y(e,t);return r?(r.focus(),r.trigger(`menu`,ae[n],null),!0):!1}var se=[`<=>`,`->>`,`->`,`<>`,`!=`,`<=`,`>=`,`<<`,`>>`,`:=`,`||`,`&&`];function b(e){return/[A-Za-z_$\u0080-\uFFFF]/.test(e)}function x(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function S(e){return e>=`0`&&e<=`9`}function C(e){return e===` `||e===` `||e===`
3
3
  `||e===`\r`||e===`\f`||e===`\v`}var ce=class{input;syntax;pos=0;delimiter;significantInStatement=0;constructor(e,t,n=`;`){this.input=e,this.syntax=t,this.delimiter=n}tokenize(){let e=[];for(;this.pos<this.input.length;){let t=this.next();t.kind===`terminator`||t.kind===`delimiter_command`?this.significantInStatement=0:t.kind!==`space`&&t.kind!==`comment`&&this.significantInStatement++,e.push(t)}return e}atLineStart(e){let t=e-1;for(;t>=0&&(this.input[t]===` `||this.input[t]===` `);)t--;return t<0||this.input[t]===`
4
4
  `}make(e,t,n){let r=this.input.slice(t,n),i={kind:e,value:r,start:t,end:n};return e===`identifier`&&(i.upper=r.toUpperCase()),i}next(){let e=this.input,t=this.pos,n=e[t];if(C(n)){let n=t+1;for(;n<e.length&&C(e[n]);)n++;return this.pos=n,this.make(`space`,t,n)}if(e.startsWith(this.delimiter,t))return this.pos=t+this.delimiter.length,this.make(`terminator`,t,this.pos);if(n===`#`&&this.syntax.hashComments)return this.lineComment(t);if(n===`-`&&e[t+1]===`-`){let n=e[t+2];if(!this.syntax.dashCommentNeedsSpace||n===void 0||C(n))return this.lineComment(t)}if(n===`/`&&e[t+1]===`*`){let n=e.indexOf(`*/`,t+2);return this.pos=n===-1?e.length:n+2,this.make(`comment`,t,this.pos)}if(n===`$`&&this.syntax.dollarQuotes){let n=/^\$([A-Za-z_\u0080-\uFFFF][A-Za-z0-9_\u0080-\uFFFF]*)?\$/.exec(e.slice(t,t+64));if(n){let r=e.indexOf(n[0],t+n[0].length);return this.pos=r===-1?e.length:r+n[0].length,this.make(`string`,t,this.pos)}}if((n===`e`||n===`E`)&&e[t+1]===`'`&&this.syntax.dollarQuotes){this.pos=t+1;let e=this.quoted(t+1,`'`,`string`,!0);return this.make(`string`,t,e.end)}if(n===`'`)return this.quoted(t,`'`,`string`,this.syntax.backslashEscapes);if(n===`"`)return this.syntax.doubleQuoteIsIdentifier?this.quoted(t,`"`,`quoted_identifier`,!1):this.quoted(t,`"`,`string`,this.syntax.backslashEscapes);if((n===`x`||n===`X`||n===`b`||n===`B`||n===`n`||n===`N`)&&e[t+1]===`'`){this.pos=t+1;let e=this.quoted(t+1,`'`,`string`,this.syntax.backslashEscapes);return this.make(`string`,t,e.end)}if(n==="`")return this.quoted(t,"`",`quoted_identifier`,!1);if(n===`[`&&this.syntax.bracketIdentifiers){let n=e.indexOf(`]`,t+1);return this.pos=n===-1?e.length:n+1,this.make(`quoted_identifier`,t,this.pos)}if(S(n)||n===`.`&&S(e[t+1]??``))return this.number(t);if(n===`@`){let n=t+1;if(e[n]===`@`&&n++,e[n]===`'`||e[n]===`"`||e[n]==="`"){let r=e[n];this.pos=n;let i=this.quoted(n,r,`string`,this.syntax.backslashEscapes);return this.make(`variable`,t,i.end)}for(;n<e.length&&(x(e[n])||e[n]===`.`);)n++;return this.pos=n,this.make(`variable`,t,n)}if((n===`:`||n===`$`)&&b(e[t+1]??``)&&e[t+1]!==`$`){let n=t+1;for(;n<e.length&&x(e[n]);)n++;return this.pos=n,this.make(`variable`,t,n)}if(n===`?`){let n=t+1;for(;n<e.length&&S(e[n]);)n++;return this.pos=n,this.make(`placeholder`,t,n)}if(b(n)){let n=t+1;for(;n<e.length&&x(e[n])&&!e.startsWith(this.delimiter,n);)n++;let r=e.slice(t,n).toUpperCase();if(r===`DELIMITER`&&this.syntax.delimiterCommand&&this.significantInStatement===0){let r=n;for(;r<e.length&&(e[r]===` `||e[r]===` `);)r++;let i=r;for(;i<e.length&&!C(e[i]);)i++;if(i>r)return this.delimiter=e.slice(r,i),this.pos=i,this.make(`delimiter_command`,t,i)}if(r===`GO`&&this.syntax.goBatchSeparator&&this.atLineStart(t)){let r=n;for(;r<e.length&&(e[r]===` `||e[r]===` `);)r++;for(;r<e.length&&S(e[r]);)r++;for(;r<e.length&&(e[r]===` `||e[r]===` `||e[r]===`\r`);)r++;if(r>=e.length||e[r]===`
5
5
  `)return this.pos=r,this.make(`delimiter_command`,t,r)}return this.pos=n,this.make(`identifier`,t,n)}if(n===`/`&&this.syntax.plsqlBlocks&&this.atLineStart(t)){let n=t+1;for(;n<e.length&&(e[n]===` `||e[n]===` `||e[n]===`\r`);)n++;if(n>=e.length||e[n]===`
6
6
  `)return this.pos=n,this.make(`delimiter_command`,t,n)}if(n===`(`)return this.pos=t+1,this.make(`lparen`,t,this.pos);if(n===`)`)return this.pos=t+1,this.make(`rparen`,t,this.pos);for(let n of se)if(e.startsWith(n,t))return this.pos=t+n.length,this.make(`operator`,t,this.pos);return`=<>!+-*/%^~&|`.includes(n)?(this.pos=t+1,this.make(`operator`,t,this.pos)):`,.;:[]{}`.includes(n)?(this.pos=t+1,this.make(`punct`,t,this.pos)):(this.pos=t+1,this.make(`unknown`,t,this.pos))}lineComment(e){let t=this.input,n=e;for(;n<t.length&&t[n]!==`
7
- `;)n++;return this.pos=n,this.make(`comment`,e,n)}quoted(e,t,n,r){let i=this.input,a=e+1;for(;a<i.length;){let e=i[a];if(r&&e===`\\`){a+=2;continue}if(e===t){if(i[a+1]===t){a+=2;continue}a++;break}a++}return this.pos=Math.min(a,i.length),this.make(n,e,this.pos)}number(e){let t=this.input,n=e;if(t[n]===`0`&&(t[n+1]===`x`||t[n+1]===`X`))for(n+=2;n<t.length&&/[0-9A-Fa-f]/.test(t[n]);)n++;else if(t[n]===`0`&&(t[n+1]===`b`||t[n+1]===`B`)&&(t[n+2]===`0`||t[n+2]===`1`))for(n+=2;n<t.length&&(t[n]===`0`||t[n]===`1`);)n++;else{for(;n<t.length&&S(t[n]);)n++;if(t[n]===`.`)for(n++;n<t.length&&S(t[n]);)n++;if((t[n]===`e`||t[n]===`E`)&&(S(t[n+1]??``)||(t[n+1]===`+`||t[n+1]===`-`)&&S(t[n+2]??``)))for(n+=2;n<t.length&&S(t[n]);)n++}return this.pos=n,this.make(`number`,e,n)}},le=new Set([`BEGIN`,`CASE`,`IF`,`LOOP`,`WHILE`,`REPEAT`]);function w(e){return e.kind!==`space`&&e.kind!==`comment`}function ue(e,t){let n=[],r=[],i=[],a=0,o=!1,s=t=>{for(let n=t+1;n<e.length;n++)if(w(e[n]))return e[n]},c=e=>{r.length!==0&&(n.push({tokens:r,start:r[0].start,end:r[r.length-1].end,terminated:e}),r=[],i=[],a=0,o=!1)};for(let n=0;n<e.length;n++){let l=e[n];if(l.kind===`delimiter_command`){i.length>0?c(!1):r=[];continue}if(l.kind===`terminator`){if(a>0&&l.value===`;`){r.push({...l,kind:`punct`}),i.push(l);continue}r.push(l),c(!0);continue}if(r.push(l),w(l)){if(l.kind===`identifier`){let e=l.upper,r=i.length===0;if(o&&(o=!1,le.has(e))){i.push(l);continue}if(e===`END`)a>0&&a--,o=!0;else if(e===`BEGIN`){let e=s(n),o=i[i.length-1];r?(t.plsqlBlocks||e?.kind===`identifier`&&e.upper===`NOT`)&&a++:!(e=>e!==void 0&&(e.kind===`operator`||e.kind===`rparen`||e.kind===`punct`&&(e.value===`,`||e.value===`.`)||e.kind===`identifier`&&e.upper===`FROM`))(e)&&!(o&&(o.kind===`operator`||o.kind===`punct`&&(o.value===`,`||o.value===`.`)))&&a++}else if(e===`CASE`)a++;else if(a>0&&(e===`IF`||e===`LOOP`||e===`WHILE`||e===`REPEAT`)){let e=s(n);e?.kind!==`lparen`&&(e?.kind!==`identifier`||e.upper!==`EXISTS`&&e.upper!==`NOT`)&&a++}}i.push(l)}}return c(!1),n}var de=new Set([`SELECT`,`VALUES`,`TABLE`,`WITH`,`SHOW`,`EXPLAIN`,`DESCRIBE`,`DESC`,`HELP`,`CHECK`,`CHECKSUM`,`ANALYZE`,`OPTIMIZE`,`REPAIR`,`PRAGMA`]),fe=new Set([`SELECT`,`INSERT`,`UPDATE`,`DELETE`,`REPLACE`,`VALUES`,`TABLE`,`MERGE`]),pe=new Set([`TABLE`,`DATABASE`,`SCHEMA`,`TABLESPACE`]),me=new Set([`WHERE`,`SET`,`USING`,`ORDER`,`LIMIT`,`JOIN`,`INNER`,`LEFT`,`RIGHT`,`CROSS`,`NATURAL`,`STRAIGHT_JOIN`,`ON`,`PARTITION`,`AS`,`RETURNING`,`INDEXED`,`NOT`]);function T(e){if(e.kind!==`quoted_identifier`)return e.value;let t=e.value[0],n=t===`[`?`]`:t,r=e.value.slice(1,e.value.endsWith(n)?-1:void 0);return t!==`[`&&(r=r.replaceAll(n+n,n)),r}function E(e){return e.kind===`identifier`||e.kind===`quoted_identifier`}function D(e,t,n=me){let r=[];for(;t<e.length;){let i=e[t];if(!E(i)||i.kind===`identifier`&&n.has(i.upper))break;let a=[T(i)];for(t++;t+1<e.length&&e[t].kind===`punct`&&e[t].value===`.`&&E(e[t+1]);)a.push(T(e[t+1])),t+=2;if(r.push(a.join(`.`)),e[t]?.kind===`punct`&&e[t].value===`,`){t++;continue}break}return{names:r,next:t}}function O(e,t,n=0){let r=0;for(let i=n;i<e.length;i++){let n=e[i];if(n.kind===`lparen`)r++;else if(n.kind===`rparen`)r=Math.max(0,r-1);else if(r===0&&n.kind===`identifier`&&n.upper===t)return i}return-1}function he(e){let t=0;for(;t<e.length&&e[t].kind===`lparen`;)t++;if(t>=e.length||e[t].kind!==`identifier`)return{kind:``,index:t};if(e[t].upper!==`WITH`)return{kind:e[t].upper,index:t};let n=0,r=!1;for(let i=t+1;i<e.length;i++){let t=e[i];if(t.kind===`lparen`){n++,r=!1;continue}if(t.kind===`rparen`){n--,r=n===0;continue}if(n===0&&r&&t.kind===`identifier`&&fe.has(t.upper))return{kind:t.upper,index:i};r=!1}return{kind:`WITH`,index:t}}function ge(e,t){let n=O(e,`LIMIT`,t);if(n===-1)return null;let r=e[n+1];if(!r||r.kind!==`number`)return null;let i=e[n+2],a=e[n+3];return i?.kind===`punct`&&i.value===`,`&&a?.kind===`number`?{offset:Number(r.value),count:Number(a.value)}:i?.kind===`identifier`&&i.upper===`OFFSET`&&a?.kind===`number`?{offset:Number(a.value),count:Number(r.value)}:{offset:0,count:Number(r.value)}}function _e(e,t,n){let r=t=>e[t]?.kind===`identifier`?e[t].upper:void 0;switch(t){case`DROP`:{let t=n+1;r(t)===`TEMPORARY`&&t++;let i=r(t);if(!i)return null;t++,r(t)===`IF`&&(t+=2);let{names:a}=D(e,t,new Set([`ON`,`RESTRICT`,`CASCADE`]));return{action:`DROP`,objectType:i,names:a,dataLoss:pe.has(i)}}case`TRUNCATE`:{let t=n+1;r(t)===`TABLE`&&t++;let{names:i}=D(e,t);return{action:`TRUNCATE`,objectType:`TABLE`,names:i,dataLoss:!0}}case`DELETE`:{if(O(e,`WHERE`,n)!==-1)return null;let t=n+1;for(;r(t)===`LOW_PRIORITY`||r(t)===`QUICK`||r(t)===`IGNORE`;)t++;return{action:`DELETE_ALL`,names:r(t)===`FROM`?D(e,t+1).names:D(e,t,new Set([`FROM`])).names,dataLoss:!0}}case`UPDATE`:{if(O(e,`WHERE`,n)!==-1)return null;let t=n+1;for(;r(t)===`LOW_PRIORITY`||r(t)===`IGNORE`||r(t)===`OR`;)t+=r(t)===`OR`?2:1;let{names:i}=D(e,t);return{action:`UPDATE_ALL`,names:i,dataLoss:!0}}case`ALTER`:{if(r(n+1)!==`TABLE`)return null;let{names:t}=D(e,n+2,new Set([`ADD`,`DROP`,`MODIFY`,`CHANGE`,`RENAME`,`ALTER`])),i=[],a=0;for(let t=n+2;t<e.length;t++){let n=e[t];if(n.kind===`lparen`){a++;continue}if(n.kind===`rparen`){a--;continue}if(a!==0||n.kind!==`identifier`||n.upper!==`DROP`)continue;let r=e[t+1],o=r?.kind===`identifier`?r.upper:``;if(o===`COLUMN`){let n=e[t+2];n&&E(n)&&i.push(T(n))}else o===`PARTITION`?i.push(`PARTITION ${D(e,t+2).names.join(`, `)}`):r&&E(r)&&![`PRIMARY`,`FOREIGN`,`INDEX`,`KEY`,`CONSTRAINT`,`CHECK`,`DEFAULT`,`TABLESPACE`].includes(o)&&i.push(T(r))}return i.length===0?null:{action:`ALTER_DROP`,objectType:`TABLE`,names:t.map(e=>`${e} (${i.join(`, `)})`),dataLoss:!0}}default:return null}}function ve(e,t){let n=e.tokens.filter(e=>w(e)&&e.kind!==`terminator`),r=e.terminated?e.tokens.slice(0,-1):e.tokens,i=r.length?r[r.length-1].end:e.start,a=t.slice(e.start,i).trim(),{kind:o,index:s}=he(n),c=de.has(o)||O(n,`RETURNING`,s)!==-1,l=c?ge(n,s):null,u=_e(n,o,s);return{sql:a,raw:t.slice(e.start,e.end),start:e.start,end:e.end,tokens:e.tokens,kind:o,isEmpty:n.length===0,returnsRows:c,limit:l,destructive:u}}function k(e,t){let n=e.tokens.filter(e=>w(e)&&e.kind!==`terminator`),r=n.findIndex(e=>e.kind!==`lparen`);return O(n,t.toUpperCase(),Math.max(0,r))!==-1}function A(e){return e.start+e.raw.indexOf(e.sql)}function ye(e){let t=e.tokens.filter(e=>w(e)&&e.kind!==`terminator`),n=0;for(;n<t.length&&t[n].kind===`lparen`;)n++;let r=t[n];if(!r||r.kind!==`identifier`||r.upper!==`SELECT`)return-1;let i=r,a=t[n+1];return a?.kind===`identifier`&&(a.upper===`DISTINCT`||a.upper===`ALL`)&&(i=a),i.end-A(e)}var j=class{syntax;constructor(e){this.syntax=`syntax`in e?e.syntax:e}tokenize(e,t=`;`){return new ce(e,this.syntax,t).tokenize()}parse(e,t=`;`){return ue(this.tokenize(e,t),this.syntax).map(t=>ve(t,e))}statements(e,t=`;`){return this.parse(e,t).filter(e=>!e.isEmpty)}},be=new Set([`ORDER`,`LIMIT`,`RETURNING`,`OUTPUT`,`OPTION`]);function M(e,t,n,r){return n?e.slice(n.start-t,(r?r.start:2**53-1)-t).trim():``}function N(e,t,n){let r=t;for(;r<n&&e[r].kind===`identifier`&&(e[r].upper===`ONLY`||e[r].upper===`LOW_PRIORITY`||e[r].upper===`IGNORE`||e[r].upper===`QUICK`);)r++;if(r>=n||!E(e[r]))return null;let i=T(e[r]),a=e[r].kind===`quoted_identifier`;for(r++;r+1<n&&e[r].kind===`punct`&&e[r].value===`.`&&E(e[r+1]);)i=T(e[r+1]),a=e[r+1].kind===`quoted_identifier`,r+=2;return r<n&&e[r].kind===`identifier`&&e[r].upper===`AS`&&r++,r<n&&E(e[r])&&!(e[r].kind===`identifier`&&[`SET`,`WHERE`,`JOIN`,`INNER`,`LEFT`,`RIGHT`,`CROSS`,`USING`,`FROM`,`ON`,`NATURAL`,`STRAIGHT_JOIN`,`WITH`,`OUTPUT`].includes(e[r].upper))?(e[r].kind,e[r].value):a?`"${i.replaceAll(`"`,`""`)}"`:i}function xe(e,t=`"`){let n=e.tokens.filter(e=>w(e)&&e.kind!==`terminator`),r=A(e),i=e.sql,a=e=>(e.startsWith(t)||e.startsWith(`"`)||e.startsWith("`")||e.startsWith(`[`),e),o=n[0];if(!o||o.kind!==`identifier`||o.upper!==`UPDATE`&&o.upper!==`DELETE`)return null;let s=O(n,`WHERE`),c=-1;for(let e of be){let t=O(n,e,s===-1?1:s);t!==-1&&(c===-1||t<c)&&(c=t)}let l=e=>e===-1?n.length:e,u=s===-1?``:` `+M(i,r,n[s],n[l(c)]),d=``;if(c!==-1&&(n[c].upper===`ORDER`||n[c].upper===`LIMIT`)){let e=[`RETURNING`,`OUTPUT`,`OPTION`].map(e=>O(n,e,c)).filter(e=>e!==-1);d=` `+M(i,r,n[c],e.length?n[Math.min(...e)]:void 0)}let f,p,m;if(o.upper===`UPDATE`){let e=O(n,`SET`);if(e===-1)return null;let t=O(n,`FROM`,e),a=e,o=M(i,r,n[1],n[a]);if(!o||n[1].kind===`lparen`)return null;if(p=N(n,1,a),m=o,t!==-1&&(s===-1||t<s)){let e=M(i,r,n[t+1],n[l(s===-1?c:s)]);f=p!==null&&RegExp(`(^|[\\s,])${p.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}(\\s|$|,)`,`i`).test(e)?e:`${o}, ${e}`}else f=o}else{let e=O(n,`FROM`);if(e===-1)return null;let t=O(n,`USING`,e),a=l(t===-1?s===-1?c:s:t),o=M(i,r,n[e+1],n[a]);if(!o||n[e+1]?.kind===`lparen`)return null;let u=M(i,r,n[1],n[e]),d=u?u.split(`,`)[0].trim().replace(/^(LOW_PRIORITY|QUICK|IGNORE)\s+/i,``):``;p=d||N(n,e+1,a),m=d||o;let h=t===-1?``:M(i,r,n[t+1],n[l(s===-1?c:s)]);f=h?`${o}, ${h}`:o}return p?{select:`SELECT ${a(p)}.* FROM ${f}${u}${d}`,count:d?`SELECT COUNT(*) AS affected FROM (SELECT 1 AS one FROM ${f}${u}${d}) planche_preview`:`SELECT COUNT(*) AS affected FROM ${f}${u}`,table:m,limited:/\bLIMIT\b/i.test(d)}:null}function P(e){return o.getState().activeConnections.find(t=>t.id===e)?.database||ne(d.getState().trees[e]??[])}function Se(e,t,n,r){return g(e).tree.objectPath(t,n,r,P(e))}function F(e,t){return g(e).tree.namespacePath(t,P(e))}function I(e,t){for(let n of e){if(n.id===t)return n;let e=I(n.children,t);if(e)return e}return null}async function Ce(e,t,n){let r=d.getState;for(let i=0;i<t.length;i++){let a=r().trees[e];if(!a)return!1;let o=I(a,t[i]);if(!o)return!1;if(i===t.length-1)return r().setSelected(e,o.id),!0;o.children.length===0&&!o.isLeaf?await n(e,o):o.isExpanded||r().setExpanded(e,o.id,!0)}return!1}function L(e,t){for(let n of e){if(n.id===t)return n;let e=L(n.children,t);if(e)return e}return null}function R(e,t){let n=d.getState(),r=n.trees[e];if(!r||!t)return;let i=F(e,t),a=null;for(let t of i){let i=L(r,t);if(!i||(a=i,i.isLeaf))break;!i.isExpanded&&i.children.length>0&&n.setExpanded(e,i.id,!0)}!a||a.id!==i[i.length-1]||(n.setSelected(e,a.id),!a.isExpanded&&a.children.length>0&&n.setExpanded(e,a.id,!0))}var z=e(n(),1);function we(e,t,n){let r=[];function i(e){for(let n of e){if(r.push(n),n.id===t||n.children.length>0&&i(n.children))return!0;r.pop()}return!1}i(e);for(let e=r.length-1;e>=0;e--)if(r[e].type===n)return r[e];return null}function B(e,t){for(let n of e){if(n.id===t)return n;if(n.children.length>0){let e=B(n.children,t);if(e)return e}}return null}var V=u(`schemaTreeLoadingRoots`,()=>new Set);function H(e){let t=o.getState().activeConnections.find(t=>t.id===e);return t?.serverConnectionId?{engine:g(e),run:p(t.serverConnectionId),database:t.database||void 0}:null}function Te(){let{setTree:e,setChildren:t,setNodeMetadata:n,setLoading:a}=d(),o=(0,z.useCallback)(async t=>{let n=H(t);if(n&&!V.has(t)){V.add(t);try{e(t,await n.engine.tree.loadRoot(n))}catch(n){let a=n instanceof Error?n.message:String(n);console.error(`Failed to load databases:`,n),r.getState().setFooterMessage(i.t(`schema.tree.loadDatabasesFailed`,{message:a})),e(t,[])}finally{V.delete(t)}}},[e]),s=(0,z.useCallback)(async(e,r)=>{if(!d.getState().trees[e])return;let i=H(e);if(i&&!r.isLeaf){a(e,r.id,!0);try{let a=await i.engine.tree.loadChildren(i,r);t(e,r.id,a),Promise.all(a.filter(e=>e.type===h.FOLDER&&e.metadata?.countable).map(async t=>{try{let r=await i.engine.tree.loadChildren(i,t);n(e,t.id,{count:r.length})}catch(e){console.error(`Failed to count ${t.text}:`,e)}}))}catch(t){console.error(`Failed to load children:`,t),a(e,r.id,!1)}}},[t,n,a]);return{loadDatabases:o,loadChildren:s,refreshNode:(0,z.useCallback)(async(e,t)=>{await s(e,t)},[s]),createNode:m,findNode:B,findAncestor:we}}async function U(e,t){let n=d.getState().trees[e];if(!n||!t)return;let r=H(e);if(!r)return;let i=F(e,t),a=te(n,i[i.length-1]);!a||a.children.length===0||await Promise.all(a.children.filter(e=>e.type===h.FOLDER).map(async t=>{try{let n=await r.engine.tree.loadChildren(r,t),i=d.getState();(t.children.length>0||t.isExpanded)&&i.setChildren(e,t.id,n),t.metadata?.countable&&i.setNodeMetadata(e,t.id,{count:n.length})}catch(e){console.error(`Failed to refresh ${t.text}:`,e)}}))}var W=class extends Error{sql;constructor(e,t){super(e),this.name=`QueryError`,this.sql=t}},G=class extends Error{constructor(e=`Cancelled`){super(e),this.name=`ExecutionCancelled`}};function Ee(e){let t=e.fields??[],n=e.records??[];return{fields:t.map(e=>({name:e.name,type:e.type,orgTable:e.orgTable??e.table??``,orgName:e.orgName??e.name,db:e.db??``})),rows:n.map(e=>{let n={};return t.forEach((t,r)=>{n[t.name]=e[r]}),n}),affectedRows:e.affectedRows??0,insertId:e.insertId??0,message:e.message??(n.length>0?i.t(`services.query.rowsReturned`,{count:n.length}):i.t(`services.query.rowsAffected`,{count:e.affectedRows??0}))}}async function K(e,t,n,r=ee(t)){let i=new Set(e.fields.map(e=>e.orgTable).filter(Boolean));if(i.size!==1)return e;let a=[...i][0];try{let i=await r.introspect.getPrimaryKeys(p(t),n,a);i.length>0&&(e.primaryKeys=i)}catch{}return!e.primaryKeys?.length&&e.fields.some(e=>e.name===`_rowid_`)&&(e.primaryKeys=[l]),e}var De=new Set([`SELECT`,`SHOW`,`EXPLAIN`,`DESCRIBE`,`DESC`,`HELP`,`VALUES`,`TABLE`,`WITH`,`USE`,`SET`,`CHECK`,`CHECKSUM`]);function q(e){return e.kind===`PRAGMA`?!e.sql.includes(`=`):!(!De.has(e.kind)||e.destructive||e.kind===`SELECT`&&k(e,`INTO`))}var Oe=new Set([`INSERT`,`UPDATE`,`DELETE`,`REPLACE`,`MERGE`,`LOAD`]),ke=new Set([`CREATE`,`ALTER`,`DROP`,`TRUNCATE`,`RENAME`,`GRANT`,`REVOKE`,`FLUSH`,`LOCK`,`UNLOCK`]),Ae=new Set([`CREATE`,`ALTER`,`DROP`,`RENAME`]);function je(e){return Oe.has(e.kind)||!!e.destructive?.dataLoss}function Me(e,t,n=`limit`){if(t<=0||e.kind!==`SELECT`||e.limit!==null||k(e,`LIMIT`)||k(e,`INTO`)||k(e,`FOR`)||k(e,`LOCK`))return{sql:e.sql,limited:!1};if(n===`top`){if(k(e,`TOP`)||k(e,`OFFSET`))return{sql:e.sql,limited:!1};let n=ye(e);return n===-1?{sql:e.sql,limited:!1}:{sql:`${e.sql.slice(0,n)} TOP ${t}${e.sql.slice(n)}`,limited:!0}}return n===`fetch`?k(e,`FETCH`)||/\bROWNUM\b/i.test(e.sql)?{sql:e.sql,limited:!1}:{sql:`${e.sql} FETCH FIRST ${t} ROWS ONLY`,limited:!0}:{sql:`${e.sql} LIMIT ${t}`,limited:!0}}function Ne(e,t=0){let n=J();return n<=0?``:e.limitClause(n,t)}function J(){return c.getState().resultRowLimit}function Pe(e){let t=e.destructive,n=t.names.length?t.names.join(`, `):i.t(`services.destructive.unknownTarget`);switch(t.action){case`DROP`:return`DROP ${t.objectType} ${n}`;case`TRUNCATE`:return`TRUNCATE ${n}`;case`DELETE_ALL`:return i.t(`services.destructive.deleteAll`,{target:n});case`UPDATE_ALL`:return i.t(`services.destructive.updateAll`,{target:n});case`ALTER_DROP`:return i.t(`services.destructive.alterDrop`,{target:n})}}async function Fe(e){if(!c.getState().confirmDestructive)return!0;let t=e.filter(e=>e.destructive?.dataLoss);return t.length===0||r.getState().requestDestructiveConfirm({title:i.t(`services.destructive.title`,{count:t.length}),description:i.t(`services.destructive.description`),statements:t.map(Pe),confirmLabel:i.t(`services.runAnyway`)})}async function Ie(e,t){if(!e.readOnly)return;let n=t.filter(e=>!q(e));if(n.length===0)return;let a=`${e.hostName||e.host}`;if(!c.getState().allowReadOnlyOverride)throw new W(i.t(`services.readOnly.refused`,{label:a,count:n.length}));if(!await r.getState().requestDestructiveConfirm({title:i.t(`services.readOnly.title`,{label:a}),description:i.t(`services.readOnly.description`),statements:n.map(e=>e.sql.length>120?e.sql.slice(0,117)+`...`:e.sql),confirmLabel:i.t(`services.runAnyway`)}))throw new G(`Cancelled: connection is read-only.`)}function Y(e,t){let n=o.getState(),r=n.activeConnections.find(t=>t.id===e);if(!r?.serverConnectionId)throw new W(i.t(`services.query.notConnected`));if(n.pendingReopen[e])throw new W(i.t(`services.query.fileNotOpen`));return{connId:e,serverConnId:r.serverConnectionId,conn:r,engine:g(e),tabId:t}}async function X(e,t,n){let r=new j(e.engine).statements(t);if(e.conn.scratchpad){let{materializeFederated:t}=await a(async()=>{let{materializeFederated:e}=await import(`./main-DEK4mnDt.js`).then(e=>e.F);return{materializeFederated:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]));for(let n of r)n.sql=await t(e.connId,n.sql)}if(await Ie(e.conn,r),!n.skipDestructiveConfirm&&!await Fe(r))throw new G;return r}async function Z(e,n,a){let{connId:c,serverConnId:l,engine:u,tabId:d}=e,p=n.stmt?.kind??``,m=()=>o.getState();if(e.conn.transactionMode===`manual`&&u.capabilities.transactions&&n.stmt&&je(n.stmt)&&!m().transactionOpen[c]){let e=await f(l,u.getQuery(`START_TRANSACTION`),a||void 0);if(!e.success)throw new W(e.message??i.t(`services.transaction.startFailed`));m().setTransactionOpen(c,!0),r.getState().setFooterMessage(i.t(`services.transaction.started`))}let h=await f(l,n.sql,a||void 0);if(!h.success){let r=h.message??i.t(`services.query.failed`);throw s.getState().recordExecution({connectionId:c,tabId:d,query:n.sql,database:a,executionTime:h.execTime,error:r,kind:p||void 0}),t(`query_execute`,{dbms:e.conn.dbms,kind:p||`unknown`,source:d?`editor`:`app`,success:!1}),new W(r,n.sql)}let g=Ee(h);return p===`COMMIT`||p===`ROLLBACK`?m().setTransactionOpen(c,!1):p===`START`||p===`BEGIN`?m().setTransactionOpen(c,!0):ke.has(p)&&m().transactionOpen[c]&&u.capabilities.implicitCommitDdl&&(m().setTransactionOpen(c,!1),r.getState().setFooterMessage(i.t(`services.transaction.implicitCommit`,{kind:p}))),Ae.has(p)&&U(c,a),e.skipHistory||s.getState().recordExecution({connectionId:c,tabId:d,query:n.sql,database:a,executionTime:h.execTime,kind:p||void 0,...g.fields.length>0?{rowCount:g.rows.length}:{affectedRows:g.affectedRows}}),t(`query_execute`,{dbms:e.conn.dbms,kind:p||`unknown`,source:d?`editor`:`app`,success:!0,exec_time_ms:Math.round(h.execTime??0)}),{qr:g,execTime:h.execTime}}async function Le(e,t,n={}){let r=Y(e,n.tabId??null);r.skipHistory=n.skipHistory;let a=t.trim();if(!a)throw new W(i.t(`services.query.nothingToExecute`));let o=await X(r,a,n),s=o.length>0?o.map(e=>({sql:e.sql,stmt:e})):[{sql:a,stmt:null}],c=n.database??``,l=null;for(let e of s){let{qr:t}=await Z(r,e,c);n.primaryKeys&&t.fields.length>0&&c&&await K(t,r.serverConnId,c,r.engine),l=t}return l}function Re(e,t){let n=s.getState().tabs[e]?.find(e=>e.id===t);if(!n)return null;let r=ie(e,t);if(r&&`selection`in r)return r.selection;let i=r&&`cursorOffset`in r?r.cursorOffset:n.query.length,a=new j(g(e)).statements(n.query);return a.length===0?null:(a.find(e=>i>=A(e)&&i<=e.end)??[...a].reverse().find(e=>e.end<=i)??a[0]).sql}async function Q(e,t,n={}){let r=()=>s.getState(),a=r().tabs[e]?.find(e=>e.id===t);if(!a)return;let o=(n.sql??a.query)?.trim();if(!o)return;let l,u;try{l=Y(e,t),u=await X(l,o,{})}catch(n){if(n instanceof G){n.message!==`Cancelled`&&r().setError(e,t,n.message);return}r().setError(e,t,n instanceof Error?n.message:String(n));return}let d=c.getState();if(d.previewAffectedRows)try{await Ve(l,u,a.database||``)}catch(e){if(e instanceof G)return;throw e}let f=u.length>0?u.map(e=>({...Me(e,d.resultRowLimit,l.engine.syntax.limitStyle),stmt:e})):[{sql:o,limited:!1,stmt:null}];r().captureSnapshot(e,t,`execute`),r().setExecuting(e,t,!0),r().setError(e,t,null);let p=[],m=a.database||``;try{for(let n of f){let{qr:a,execTime:o}=await Z(l,n,m);if(a.sql=n.stmt?.sql??n.sql,a.executionTime=o,n.limited&&a.rows.length>=d.resultRowLimit&&(a.limited=!0,a.message=i.t(`services.query.rowsReturnedLimited`,{count:a.rows.length,limit:d.resultRowLimit})),!m&&a.fields.length>0){let n=a.fields.find(e=>e.db)?.db;n&&(m=n,r().setDatabase(e,t,m),R(e,m))}a.fields.length>0&&m&&await K(a,l.serverConnId,m,l.engine),p.push(a)}r().setResults(e,t,p)}catch(n){p.length>0&&r().setResults(e,t,p),r().setError(e,t,n instanceof Error?n.message:String(n),n instanceof W?n.sql:null)}}var ze=50;function Be(e,t,n){return e.syntax.limitStyle===`top`?t.replace(/^SELECT\b/i,`SELECT TOP ${n}`):`${t} ${e.limitClause(n)}`}async function Ve(e,t,n){for(let i of t){if(i.kind!==`UPDATE`&&i.kind!==`DELETE`)continue;let t=xe(i);if(!t)continue;let a=null,o=[],s=[],c,l=await f(e.serverConnId,t.count,n||void 0);if(l.success){let r=Number(l.records[0]?.[0]);a=Number.isFinite(r)?r:null;let i=await f(e.serverConnId,t.limited?t.select:Be(e.engine,t.select,ze),n||void 0);i.success?(o=i.fields.map(e=>e.name),s=i.records):c=i.message}else c=l.message;if(!await r.getState().requestDryRun({statement:i.sql,previewSql:t.select,count:a,fields:o,rows:s,truncated:a!==null&&s.length<a,error:c}))throw new G}}async function $(e,t){let n=o.getState(),a=n.activeConnections.find(t=>t.id===e);if(!a?.serverConnectionId)return;let s=g(e);try{let e=await f(a.serverConnectionId,s.getQuery(t));if(!e.success)throw new W(e.message??i.t(`services.transaction.commandFailed`,{name:t}));r.getState().setFooterMessage(t===`COMMIT`?i.t(`services.transaction.committed`):i.t(`services.transaction.rolledBack`))}catch(e){r.getState().setFooterMessage(i.t(`services.transaction.commandFailedWith`,{name:t,message:e instanceof Error?e.message:String(e)}))}finally{n.setTransactionOpen(e,!1)}}var He=e=>$(e,`COMMIT`),Ue=e=>$(e,`ROLLBACK`);export{T as _,Re as a,re as b,Le as c,U as d,Te as f,j as g,Se as h,Q as i,J as l,Ce as m,W as n,q as o,R as p,He as r,Ue as s,G as t,Ne as u,A as v,oe as x,y};
7
+ `;)n++;return this.pos=n,this.make(`comment`,e,n)}quoted(e,t,n,r){let i=this.input,a=e+1;for(;a<i.length;){let e=i[a];if(r&&e===`\\`){a+=2;continue}if(e===t){if(i[a+1]===t){a+=2;continue}a++;break}a++}return this.pos=Math.min(a,i.length),this.make(n,e,this.pos)}number(e){let t=this.input,n=e;if(t[n]===`0`&&(t[n+1]===`x`||t[n+1]===`X`))for(n+=2;n<t.length&&/[0-9A-Fa-f]/.test(t[n]);)n++;else if(t[n]===`0`&&(t[n+1]===`b`||t[n+1]===`B`)&&(t[n+2]===`0`||t[n+2]===`1`))for(n+=2;n<t.length&&(t[n]===`0`||t[n]===`1`);)n++;else{for(;n<t.length&&S(t[n]);)n++;if(t[n]===`.`)for(n++;n<t.length&&S(t[n]);)n++;if((t[n]===`e`||t[n]===`E`)&&(S(t[n+1]??``)||(t[n+1]===`+`||t[n+1]===`-`)&&S(t[n+2]??``)))for(n+=2;n<t.length&&S(t[n]);)n++}return this.pos=n,this.make(`number`,e,n)}},le=new Set([`BEGIN`,`CASE`,`IF`,`LOOP`,`WHILE`,`REPEAT`]);function w(e){return e.kind!==`space`&&e.kind!==`comment`}function ue(e,t){let n=[],r=[],i=[],a=0,o=!1,s=t=>{for(let n=t+1;n<e.length;n++)if(w(e[n]))return e[n]},c=e=>{r.length!==0&&(n.push({tokens:r,start:r[0].start,end:r[r.length-1].end,terminated:e}),r=[],i=[],a=0,o=!1)};for(let n=0;n<e.length;n++){let l=e[n];if(l.kind===`delimiter_command`){i.length>0?c(!1):r=[];continue}if(l.kind===`terminator`){if(a>0&&l.value===`;`){r.push({...l,kind:`punct`}),i.push(l);continue}r.push(l),c(!0);continue}if(r.push(l),w(l)){if(l.kind===`identifier`){let e=l.upper,r=i.length===0;if(o&&(o=!1,le.has(e))){i.push(l);continue}if(e===`END`)a>0&&a--,o=!0;else if(e===`BEGIN`){let e=s(n),o=i[i.length-1];r?(t.plsqlBlocks||e?.kind===`identifier`&&e.upper===`NOT`)&&a++:!(e=>e!==void 0&&(e.kind===`operator`||e.kind===`rparen`||e.kind===`punct`&&(e.value===`,`||e.value===`.`)||e.kind===`identifier`&&e.upper===`FROM`))(e)&&!(o&&(o.kind===`operator`||o.kind===`punct`&&(o.value===`,`||o.value===`.`)))&&a++}else if(e===`CASE`)a++;else if(a>0&&(e===`IF`||e===`LOOP`||e===`WHILE`||e===`REPEAT`)){let e=s(n);e?.kind!==`lparen`&&(e?.kind!==`identifier`||e.upper!==`EXISTS`&&e.upper!==`NOT`)&&a++}}i.push(l)}}return c(!1),n}var de=new Set([`SELECT`,`VALUES`,`TABLE`,`WITH`,`SHOW`,`EXPLAIN`,`DESCRIBE`,`DESC`,`HELP`,`CHECK`,`CHECKSUM`,`ANALYZE`,`OPTIMIZE`,`REPAIR`,`PRAGMA`]),fe=new Set([`SELECT`,`INSERT`,`UPDATE`,`DELETE`,`REPLACE`,`VALUES`,`TABLE`,`MERGE`]),pe=new Set([`TABLE`,`DATABASE`,`SCHEMA`,`TABLESPACE`]),me=new Set([`WHERE`,`SET`,`USING`,`ORDER`,`LIMIT`,`JOIN`,`INNER`,`LEFT`,`RIGHT`,`CROSS`,`NATURAL`,`STRAIGHT_JOIN`,`ON`,`PARTITION`,`AS`,`RETURNING`,`INDEXED`,`NOT`]);function T(e){if(e.kind!==`quoted_identifier`)return e.value;let t=e.value[0],n=t===`[`?`]`:t,r=e.value.slice(1,e.value.endsWith(n)?-1:void 0);return t!==`[`&&(r=r.replaceAll(n+n,n)),r}function E(e){return e.kind===`identifier`||e.kind===`quoted_identifier`}function D(e,t,n=me){let r=[];for(;t<e.length;){let i=e[t];if(!E(i)||i.kind===`identifier`&&n.has(i.upper))break;let a=[T(i)];for(t++;t+1<e.length&&e[t].kind===`punct`&&e[t].value===`.`&&E(e[t+1]);)a.push(T(e[t+1])),t+=2;if(r.push(a.join(`.`)),e[t]?.kind===`punct`&&e[t].value===`,`){t++;continue}break}return{names:r,next:t}}function O(e,t,n=0){let r=0;for(let i=n;i<e.length;i++){let n=e[i];if(n.kind===`lparen`)r++;else if(n.kind===`rparen`)r=Math.max(0,r-1);else if(r===0&&n.kind===`identifier`&&n.upper===t)return i}return-1}function he(e){let t=0;for(;t<e.length&&e[t].kind===`lparen`;)t++;if(t>=e.length||e[t].kind!==`identifier`)return{kind:``,index:t};if(e[t].upper!==`WITH`)return{kind:e[t].upper,index:t};let n=0,r=!1;for(let i=t+1;i<e.length;i++){let t=e[i];if(t.kind===`lparen`){n++,r=!1;continue}if(t.kind===`rparen`){n--,r=n===0;continue}if(n===0&&r&&t.kind===`identifier`&&fe.has(t.upper))return{kind:t.upper,index:i};r=!1}return{kind:`WITH`,index:t}}function ge(e,t){let n=O(e,`LIMIT`,t);if(n===-1)return null;let r=e[n+1];if(!r||r.kind!==`number`)return null;let i=e[n+2],a=e[n+3];return i?.kind===`punct`&&i.value===`,`&&a?.kind===`number`?{offset:Number(r.value),count:Number(a.value)}:i?.kind===`identifier`&&i.upper===`OFFSET`&&a?.kind===`number`?{offset:Number(a.value),count:Number(r.value)}:{offset:0,count:Number(r.value)}}function _e(e,t,n){let r=t=>e[t]?.kind===`identifier`?e[t].upper:void 0;switch(t){case`DROP`:{let t=n+1;r(t)===`TEMPORARY`&&t++;let i=r(t);if(!i)return null;t++,r(t)===`IF`&&(t+=2);let{names:a}=D(e,t,new Set([`ON`,`RESTRICT`,`CASCADE`]));return{action:`DROP`,objectType:i,names:a,dataLoss:pe.has(i)}}case`TRUNCATE`:{let t=n+1;r(t)===`TABLE`&&t++;let{names:i}=D(e,t);return{action:`TRUNCATE`,objectType:`TABLE`,names:i,dataLoss:!0}}case`DELETE`:{if(O(e,`WHERE`,n)!==-1)return null;let t=n+1;for(;r(t)===`LOW_PRIORITY`||r(t)===`QUICK`||r(t)===`IGNORE`;)t++;return{action:`DELETE_ALL`,names:r(t)===`FROM`?D(e,t+1).names:D(e,t,new Set([`FROM`])).names,dataLoss:!0}}case`UPDATE`:{if(O(e,`WHERE`,n)!==-1)return null;let t=n+1;for(;r(t)===`LOW_PRIORITY`||r(t)===`IGNORE`||r(t)===`OR`;)t+=r(t)===`OR`?2:1;let{names:i}=D(e,t);return{action:`UPDATE_ALL`,names:i,dataLoss:!0}}case`ALTER`:{if(r(n+1)!==`TABLE`)return null;let{names:t}=D(e,n+2,new Set([`ADD`,`DROP`,`MODIFY`,`CHANGE`,`RENAME`,`ALTER`])),i=[],a=0;for(let t=n+2;t<e.length;t++){let n=e[t];if(n.kind===`lparen`){a++;continue}if(n.kind===`rparen`){a--;continue}if(a!==0||n.kind!==`identifier`||n.upper!==`DROP`)continue;let r=e[t+1],o=r?.kind===`identifier`?r.upper:``;if(o===`COLUMN`){let n=e[t+2];n&&E(n)&&i.push(T(n))}else o===`PARTITION`?i.push(`PARTITION ${D(e,t+2).names.join(`, `)}`):r&&E(r)&&![`PRIMARY`,`FOREIGN`,`INDEX`,`KEY`,`CONSTRAINT`,`CHECK`,`DEFAULT`,`TABLESPACE`].includes(o)&&i.push(T(r))}return i.length===0?null:{action:`ALTER_DROP`,objectType:`TABLE`,names:t.map(e=>`${e} (${i.join(`, `)})`),dataLoss:!0}}default:return null}}function ve(e,t){let n=e.tokens.filter(e=>w(e)&&e.kind!==`terminator`),r=e.terminated?e.tokens.slice(0,-1):e.tokens,i=r.length?r[r.length-1].end:e.start,a=t.slice(e.start,i).trim(),{kind:o,index:s}=he(n),c=de.has(o)||O(n,`RETURNING`,s)!==-1,l=c?ge(n,s):null,u=_e(n,o,s);return{sql:a,raw:t.slice(e.start,e.end),start:e.start,end:e.end,tokens:e.tokens,kind:o,isEmpty:n.length===0,returnsRows:c,limit:l,destructive:u}}function k(e,t){let n=e.tokens.filter(e=>w(e)&&e.kind!==`terminator`),r=n.findIndex(e=>e.kind!==`lparen`);return O(n,t.toUpperCase(),Math.max(0,r))!==-1}function A(e){return e.start+e.raw.indexOf(e.sql)}function ye(e){let t=e.tokens.filter(e=>w(e)&&e.kind!==`terminator`),n=0;for(;n<t.length&&t[n].kind===`lparen`;)n++;let r=t[n];if(!r||r.kind!==`identifier`||r.upper!==`SELECT`)return-1;let i=r,a=t[n+1];return a?.kind===`identifier`&&(a.upper===`DISTINCT`||a.upper===`ALL`)&&(i=a),i.end-A(e)}var j=class{syntax;constructor(e){this.syntax=`syntax`in e?e.syntax:e}tokenize(e,t=`;`){return new ce(e,this.syntax,t).tokenize()}parse(e,t=`;`){return ue(this.tokenize(e,t),this.syntax).map(t=>ve(t,e))}statements(e,t=`;`){return this.parse(e,t).filter(e=>!e.isEmpty)}},be=new Set([`ORDER`,`LIMIT`,`RETURNING`,`OUTPUT`,`OPTION`]);function M(e,t,n,r){return n?e.slice(n.start-t,(r?r.start:2**53-1)-t).trim():``}function N(e,t,n){let r=t;for(;r<n&&e[r].kind===`identifier`&&(e[r].upper===`ONLY`||e[r].upper===`LOW_PRIORITY`||e[r].upper===`IGNORE`||e[r].upper===`QUICK`);)r++;if(r>=n||!E(e[r]))return null;let i=T(e[r]),a=e[r].kind===`quoted_identifier`;for(r++;r+1<n&&e[r].kind===`punct`&&e[r].value===`.`&&E(e[r+1]);)i=T(e[r+1]),a=e[r+1].kind===`quoted_identifier`,r+=2;return r<n&&e[r].kind===`identifier`&&e[r].upper===`AS`&&r++,r<n&&E(e[r])&&!(e[r].kind===`identifier`&&[`SET`,`WHERE`,`JOIN`,`INNER`,`LEFT`,`RIGHT`,`CROSS`,`USING`,`FROM`,`ON`,`NATURAL`,`STRAIGHT_JOIN`,`WITH`,`OUTPUT`].includes(e[r].upper))?(e[r].kind,e[r].value):a?`"${i.replaceAll(`"`,`""`)}"`:i}function xe(e,t=`"`){let n=e.tokens.filter(e=>w(e)&&e.kind!==`terminator`),r=A(e),i=e.sql,a=e=>(e.startsWith(t)||e.startsWith(`"`)||e.startsWith("`")||e.startsWith(`[`),e),o=n[0];if(!o||o.kind!==`identifier`||o.upper!==`UPDATE`&&o.upper!==`DELETE`)return null;let s=O(n,`WHERE`),c=-1;for(let e of be){let t=O(n,e,s===-1?1:s);t!==-1&&(c===-1||t<c)&&(c=t)}let l=e=>e===-1?n.length:e,u=s===-1?``:` `+M(i,r,n[s],n[l(c)]),d=``;if(c!==-1&&(n[c].upper===`ORDER`||n[c].upper===`LIMIT`)){let e=[`RETURNING`,`OUTPUT`,`OPTION`].map(e=>O(n,e,c)).filter(e=>e!==-1);d=` `+M(i,r,n[c],e.length?n[Math.min(...e)]:void 0)}let f,p,m;if(o.upper===`UPDATE`){let e=O(n,`SET`);if(e===-1)return null;let t=O(n,`FROM`,e),a=e,o=M(i,r,n[1],n[a]);if(!o||n[1].kind===`lparen`)return null;if(p=N(n,1,a),m=o,t!==-1&&(s===-1||t<s)){let e=M(i,r,n[t+1],n[l(s===-1?c:s)]);f=p!==null&&RegExp(`(^|[\\s,])${p.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}(\\s|$|,)`,`i`).test(e)?e:`${o}, ${e}`}else f=o}else{let e=O(n,`FROM`);if(e===-1)return null;let t=O(n,`USING`,e),a=l(t===-1?s===-1?c:s:t),o=M(i,r,n[e+1],n[a]);if(!o||n[e+1]?.kind===`lparen`)return null;let u=M(i,r,n[1],n[e]),d=u?u.split(`,`)[0].trim().replace(/^(LOW_PRIORITY|QUICK|IGNORE)\s+/i,``):``;p=d||N(n,e+1,a),m=d||o;let h=t===-1?``:M(i,r,n[t+1],n[l(s===-1?c:s)]);f=h?`${o}, ${h}`:o}return p?{select:`SELECT ${a(p)}.* FROM ${f}${u}${d}`,count:d?`SELECT COUNT(*) AS affected FROM (SELECT 1 AS one FROM ${f}${u}${d}) planche_preview`:`SELECT COUNT(*) AS affected FROM ${f}${u}`,table:m,limited:/\bLIMIT\b/i.test(d)}:null}function P(e){return o.getState().activeConnections.find(t=>t.id===e)?.database||ne(d.getState().trees[e]??[])}function Se(e,t,n,r){return g(e).tree.objectPath(t,n,r,P(e))}function F(e,t){return g(e).tree.namespacePath(t,P(e))}function I(e,t){for(let n of e){if(n.id===t)return n;let e=I(n.children,t);if(e)return e}return null}async function Ce(e,t,n){let r=d.getState;for(let i=0;i<t.length;i++){let a=r().trees[e];if(!a)return!1;let o=I(a,t[i]);if(!o)return!1;if(i===t.length-1)return r().setSelected(e,o.id),!0;o.children.length===0&&!o.isLeaf?await n(e,o):o.isExpanded||r().setExpanded(e,o.id,!0)}return!1}function L(e,t){for(let n of e){if(n.id===t)return n;let e=L(n.children,t);if(e)return e}return null}function R(e,t){let n=d.getState(),r=n.trees[e];if(!r||!t)return;let i=F(e,t),a=null;for(let t of i){let i=L(r,t);if(!i||(a=i,i.isLeaf))break;!i.isExpanded&&i.children.length>0&&n.setExpanded(e,i.id,!0)}!a||a.id!==i[i.length-1]||(n.setSelected(e,a.id),!a.isExpanded&&a.children.length>0&&n.setExpanded(e,a.id,!0))}var z=e(n(),1);function we(e,t,n){let r=[];function i(e){for(let n of e){if(r.push(n),n.id===t||n.children.length>0&&i(n.children))return!0;r.pop()}return!1}i(e);for(let e=r.length-1;e>=0;e--)if(r[e].type===n)return r[e];return null}function B(e,t){for(let n of e){if(n.id===t)return n;if(n.children.length>0){let e=B(n.children,t);if(e)return e}}return null}var V=u(`schemaTreeLoadingRoots`,()=>new Set);function H(e){let t=o.getState().activeConnections.find(t=>t.id===e);return t?.serverConnectionId?{engine:g(e),run:p(t.serverConnectionId),database:t.database||void 0}:null}function Te(){let{setTree:e,setChildren:t,setNodeMetadata:n,setLoading:a}=d(),o=(0,z.useCallback)(async t=>{let n=H(t);if(n&&!V.has(t)){V.add(t);try{e(t,await n.engine.tree.loadRoot(n))}catch(n){let a=n instanceof Error?n.message:String(n);console.error(`Failed to load databases:`,n),r.getState().setFooterMessage(i.t(`schema.tree.loadDatabasesFailed`,{message:a})),e(t,[])}finally{V.delete(t)}}},[e]),s=(0,z.useCallback)(async(e,r)=>{if(!d.getState().trees[e])return;let i=H(e);if(i&&!r.isLeaf){a(e,r.id,!0);try{let a=await i.engine.tree.loadChildren(i,r);t(e,r.id,a),Promise.all(a.filter(e=>e.type===h.FOLDER&&e.metadata?.countable).map(async t=>{try{let r=await i.engine.tree.loadChildren(i,t);n(e,t.id,{count:r.length})}catch(e){console.error(`Failed to count ${t.text}:`,e)}}))}catch(t){console.error(`Failed to load children:`,t),a(e,r.id,!1)}}},[t,n,a]);return{loadDatabases:o,loadChildren:s,refreshNode:(0,z.useCallback)(async(e,t)=>{await s(e,t)},[s]),createNode:m,findNode:B,findAncestor:we}}async function U(e,t){let n=d.getState().trees[e];if(!n||!t)return;let r=H(e);if(!r)return;let i=F(e,t),a=te(n,i[i.length-1]);!a||a.children.length===0||await Promise.all(a.children.filter(e=>e.type===h.FOLDER).map(async t=>{try{let n=await r.engine.tree.loadChildren(r,t),i=d.getState();(t.children.length>0||t.isExpanded)&&i.setChildren(e,t.id,n),t.metadata?.countable&&i.setNodeMetadata(e,t.id,{count:n.length})}catch(e){console.error(`Failed to refresh ${t.text}:`,e)}}))}var W=class extends Error{sql;constructor(e,t){super(e),this.name=`QueryError`,this.sql=t}},G=class extends Error{constructor(e=`Cancelled`){super(e),this.name=`ExecutionCancelled`}};function Ee(e){let t=e.fields??[],n=e.records??[];return{fields:t.map(e=>({name:e.name,type:e.type,orgTable:e.orgTable??e.table??``,orgName:e.orgName??e.name,db:e.db??``})),rows:n.map(e=>{let n={};return t.forEach((t,r)=>{n[t.name]=e[r]}),n}),affectedRows:e.affectedRows??0,insertId:e.insertId??0,message:e.message??(n.length>0?i.t(`services.query.rowsReturned`,{count:n.length}):i.t(`services.query.rowsAffected`,{count:e.affectedRows??0}))}}async function K(e,t,n,r=ee(t)){let i=new Set(e.fields.map(e=>e.orgTable).filter(Boolean));if(i.size!==1)return e;let a=[...i][0];try{let i=await r.introspect.getPrimaryKeys(p(t),n,a);i.length>0&&(e.primaryKeys=i)}catch{}return!e.primaryKeys?.length&&e.fields.some(e=>e.name===`_rowid_`)&&(e.primaryKeys=[l]),e}var De=new Set([`SELECT`,`SHOW`,`EXPLAIN`,`DESCRIBE`,`DESC`,`HELP`,`VALUES`,`TABLE`,`WITH`,`USE`,`SET`,`CHECK`,`CHECKSUM`]);function q(e){return e.kind===`PRAGMA`?!e.sql.includes(`=`):!(!De.has(e.kind)||e.destructive||e.kind===`SELECT`&&k(e,`INTO`))}var Oe=new Set([`INSERT`,`UPDATE`,`DELETE`,`REPLACE`,`MERGE`,`LOAD`]),ke=new Set([`CREATE`,`ALTER`,`DROP`,`TRUNCATE`,`RENAME`,`GRANT`,`REVOKE`,`FLUSH`,`LOCK`,`UNLOCK`]),Ae=new Set([`CREATE`,`ALTER`,`DROP`,`RENAME`]);function je(e){return Oe.has(e.kind)||!!e.destructive?.dataLoss}function Me(e,t,n=`limit`){if(t<=0||e.kind!==`SELECT`||e.limit!==null||k(e,`LIMIT`)||k(e,`INTO`)||k(e,`FOR`)||k(e,`LOCK`))return{sql:e.sql,limited:!1};if(n===`top`){if(k(e,`TOP`)||k(e,`OFFSET`))return{sql:e.sql,limited:!1};let n=ye(e);return n===-1?{sql:e.sql,limited:!1}:{sql:`${e.sql.slice(0,n)} TOP ${t}${e.sql.slice(n)}`,limited:!0}}return n===`fetch`?k(e,`FETCH`)||/\bROWNUM\b/i.test(e.sql)?{sql:e.sql,limited:!1}:{sql:`${e.sql} FETCH FIRST ${t} ROWS ONLY`,limited:!0}:{sql:`${e.sql} LIMIT ${t}`,limited:!0}}function Ne(e,t=0){let n=J();return n<=0?``:e.limitClause(n,t)}function J(){return c.getState().resultRowLimit}function Pe(e){let t=e.destructive,n=t.names.length?t.names.join(`, `):i.t(`services.destructive.unknownTarget`);switch(t.action){case`DROP`:return`DROP ${t.objectType} ${n}`;case`TRUNCATE`:return`TRUNCATE ${n}`;case`DELETE_ALL`:return i.t(`services.destructive.deleteAll`,{target:n});case`UPDATE_ALL`:return i.t(`services.destructive.updateAll`,{target:n});case`ALTER_DROP`:return i.t(`services.destructive.alterDrop`,{target:n})}}async function Fe(e){if(!c.getState().confirmDestructive)return!0;let t=e.filter(e=>e.destructive?.dataLoss);return t.length===0||r.getState().requestDestructiveConfirm({title:i.t(`services.destructive.title`,{count:t.length}),description:i.t(`services.destructive.description`),statements:t.map(Pe),confirmLabel:i.t(`services.runAnyway`)})}async function Ie(e,t){if(!e.readOnly)return;let n=t.filter(e=>!q(e));if(n.length===0)return;let a=`${e.hostName||e.host}`;if(!c.getState().allowReadOnlyOverride)throw new W(i.t(`services.readOnly.refused`,{label:a,count:n.length}));if(!await r.getState().requestDestructiveConfirm({title:i.t(`services.readOnly.title`,{label:a}),description:i.t(`services.readOnly.description`),statements:n.map(e=>e.sql.length>120?e.sql.slice(0,117)+`...`:e.sql),confirmLabel:i.t(`services.runAnyway`)}))throw new G(`Cancelled: connection is read-only.`)}function Y(e,t){let n=o.getState(),r=n.activeConnections.find(t=>t.id===e);if(!r?.serverConnectionId)throw new W(i.t(`services.query.notConnected`));if(n.pendingReopen[e])throw new W(i.t(`services.query.fileNotOpen`));return{connId:e,serverConnId:r.serverConnectionId,conn:r,engine:g(e),tabId:t}}async function X(e,t,n){let r=new j(e.engine).statements(t);if(e.conn.scratchpad){let{materializeFederated:t}=await a(async()=>{let{materializeFederated:e}=await import(`./main-kdBvc1j0.js`).then(e=>e.F);return{materializeFederated:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]));for(let n of r)n.sql=await t(e.connId,n.sql)}if(await Ie(e.conn,r),!n.skipDestructiveConfirm&&!await Fe(r))throw new G;return r}async function Z(e,n,a){let{connId:c,serverConnId:l,engine:u,tabId:d}=e,p=n.stmt?.kind??``,m=()=>o.getState();if(e.conn.transactionMode===`manual`&&u.capabilities.transactions&&n.stmt&&je(n.stmt)&&!m().transactionOpen[c]){let e=await f(l,u.getQuery(`START_TRANSACTION`),a||void 0);if(!e.success)throw new W(e.message??i.t(`services.transaction.startFailed`));m().setTransactionOpen(c,!0),r.getState().setFooterMessage(i.t(`services.transaction.started`))}let h=await f(l,n.sql,a||void 0);if(!h.success){let r=h.message??i.t(`services.query.failed`);throw s.getState().recordExecution({connectionId:c,tabId:d,query:n.sql,database:a,executionTime:h.execTime,error:r,kind:p||void 0}),t(`query_execute`,{dbms:e.conn.dbms,kind:p||`unknown`,source:d?`editor`:`app`,success:!1}),new W(r,n.sql)}let g=Ee(h);return p===`COMMIT`||p===`ROLLBACK`?m().setTransactionOpen(c,!1):p===`START`||p===`BEGIN`?m().setTransactionOpen(c,!0):ke.has(p)&&m().transactionOpen[c]&&u.capabilities.implicitCommitDdl&&(m().setTransactionOpen(c,!1),r.getState().setFooterMessage(i.t(`services.transaction.implicitCommit`,{kind:p}))),Ae.has(p)&&U(c,a),e.skipHistory||s.getState().recordExecution({connectionId:c,tabId:d,query:n.sql,database:a,executionTime:h.execTime,kind:p||void 0,...g.fields.length>0?{rowCount:g.rows.length}:{affectedRows:g.affectedRows}}),t(`query_execute`,{dbms:e.conn.dbms,kind:p||`unknown`,source:d?`editor`:`app`,success:!0,exec_time_ms:Math.round(h.execTime??0)}),{qr:g,execTime:h.execTime}}async function Le(e,t,n={}){let r=Y(e,n.tabId??null);r.skipHistory=n.skipHistory;let a=t.trim();if(!a)throw new W(i.t(`services.query.nothingToExecute`));let o=await X(r,a,n),s=o.length>0?o.map(e=>({sql:e.sql,stmt:e})):[{sql:a,stmt:null}],c=n.database??``,l=null;for(let e of s){let{qr:t}=await Z(r,e,c);n.primaryKeys&&t.fields.length>0&&c&&await K(t,r.serverConnId,c,r.engine),l=t}return l}function Re(e,t){let n=s.getState().tabs[e]?.find(e=>e.id===t);if(!n)return null;let r=ie(e,t);if(r&&`selection`in r)return r.selection;let i=r&&`cursorOffset`in r?r.cursorOffset:n.query.length,a=new j(g(e)).statements(n.query);return a.length===0?null:(a.find(e=>i>=A(e)&&i<=e.end)??[...a].reverse().find(e=>e.end<=i)??a[0]).sql}async function Q(e,t,n={}){let r=()=>s.getState(),a=r().tabs[e]?.find(e=>e.id===t);if(!a)return;let o=(n.sql??a.query)?.trim();if(!o)return;let l,u;try{l=Y(e,t),u=await X(l,o,{})}catch(n){if(n instanceof G){n.message!==`Cancelled`&&r().setError(e,t,n.message);return}r().setError(e,t,n instanceof Error?n.message:String(n));return}let d=c.getState();if(d.previewAffectedRows)try{await Ve(l,u,a.database||``)}catch(e){if(e instanceof G)return;throw e}let f=u.length>0?u.map(e=>({...Me(e,d.resultRowLimit,l.engine.syntax.limitStyle),stmt:e})):[{sql:o,limited:!1,stmt:null}];r().captureSnapshot(e,t,`execute`),r().setExecuting(e,t,!0),r().setError(e,t,null);let p=[],m=a.database||``;try{for(let n of f){let{qr:a,execTime:o}=await Z(l,n,m);if(a.sql=n.stmt?.sql??n.sql,a.executionTime=o,n.limited&&a.rows.length>=d.resultRowLimit&&(a.limited=!0,a.message=i.t(`services.query.rowsReturnedLimited`,{count:a.rows.length,limit:d.resultRowLimit})),!m&&a.fields.length>0){let n=a.fields.find(e=>e.db)?.db;n&&(m=n,r().setDatabase(e,t,m),R(e,m))}a.fields.length>0&&m&&await K(a,l.serverConnId,m,l.engine),p.push(a)}r().setResults(e,t,p)}catch(n){p.length>0&&r().setResults(e,t,p),r().setError(e,t,n instanceof Error?n.message:String(n),n instanceof W?n.sql:null)}}var ze=50;function Be(e,t,n){return e.syntax.limitStyle===`top`?t.replace(/^SELECT\b/i,`SELECT TOP ${n}`):`${t} ${e.limitClause(n)}`}async function Ve(e,t,n){for(let i of t){if(i.kind!==`UPDATE`&&i.kind!==`DELETE`)continue;let t=xe(i);if(!t)continue;let a=null,o=[],s=[],c,l=await f(e.serverConnId,t.count,n||void 0);if(l.success){let r=Number(l.records[0]?.[0]);a=Number.isFinite(r)?r:null;let i=await f(e.serverConnId,t.limited?t.select:Be(e.engine,t.select,ze),n||void 0);i.success?(o=i.fields.map(e=>e.name),s=i.records):c=i.message}else c=l.message;if(!await r.getState().requestDryRun({statement:i.sql,previewSql:t.select,count:a,fields:o,rows:s,truncated:a!==null&&s.length<a,error:c}))throw new G}}async function $(e,t){let n=o.getState(),a=n.activeConnections.find(t=>t.id===e);if(!a?.serverConnectionId)return;let s=g(e);try{let e=await f(a.serverConnectionId,s.getQuery(t));if(!e.success)throw new W(e.message??i.t(`services.transaction.commandFailed`,{name:t}));r.getState().setFooterMessage(t===`COMMIT`?i.t(`services.transaction.committed`):i.t(`services.transaction.rolledBack`))}catch(e){r.getState().setFooterMessage(i.t(`services.transaction.commandFailedWith`,{name:t,message:e instanceof Error?e.message:String(e)}))}finally{n.setTransactionOpen(e,!1)}}var He=e=>$(e,`COMMIT`),Ue=e=>$(e,`ROLLBACK`);export{T as _,Re as a,re as b,Le as c,U as d,Te as f,j as g,Se as h,Q as i,J as l,Ce as m,W as n,q as o,R as p,He as r,Ue as s,G as t,Ne as u,A as v,oe as x,y};
@@ -1 +1 @@
1
- import{r as e}from"./ui-store-DWSBgCoR.js";import{i as t,t as n}from"./app-storage-B6v72zLH.js";import{n as r}from"./connection-store-B9-4NAfR.js";import{n as i}from"./settings-store-MJead_iM.js";var a=/--[^\n]*|\/\*[\s\S]*?\*\/|\$([A-Za-z_]\w*)?\$[\s\S]*?\$\1\$|'(?:[^']|'')*'|"(?:[^"]|"")*"|\[[^\]]*\]|[A-Za-z_][\w$#]*|\S/g,o=`'***'`,s=/((?:password|pwd)\s*=\s*)[^;'"]+/gi;function c(e){let t=[];for(let n of e.matchAll(a)){let e=n[0];if(e.startsWith(`--`)||e.startsWith(`/*`))continue;let r=e[0],i=r===`'`||r===`"`||r===`$`?`literal`:/[A-Za-z_]/.test(r)?`word`:`other`;t.push({text:e,start:n.index,end:n.index+e.length,kind:i})}return t}var l=e=>e?.kind===`word`?e.text.toUpperCase():``;function u(e){let t=c(e),n=[],r=e=>{!e||e.kind===`other`||n.push({start:e.start,end:e.end,text:e.kind===`literal`?o:`***`})},i=e=>{let n=t[e];return n?n.kind===`literal`?{token:n,span:1}:n.kind===`word`&&/^[NE]$/i.test(n.text)&&t[e+1]?.kind===`literal`?{token:t[e+1],span:2}:null:null};for(let e=0;e<t.length;e++){let a=t[e];if(a.kind===`literal`){s.test(a.text)&&(s.lastIndex=0,n.push({start:a.start,end:a.end,text:a.text.replace(s,`$1***`)})),s.lastIndex=0;continue}if(a.kind!==`word`)continue;let o=a.text.toUpperCase();if(o===`IDENTIFIED`){let n=e+1;if(l(t[n])===`WITH`&&(n+=2),l(t[n])!==`BY`&&l(t[n])!==`AS`||(n+=1,(l(t[n])===`PASSWORD`||l(t[n])===`VALUES`)&&(n+=1),l(t[n])===`RANDOM`))continue;let a=i(n);a?(r(a.token),n+=a.span):t[n]?.kind===`word`&&(r(t[n]),n+=1),l(t[n])===`REPLACE`&&r(i(n+1)?.token??t[n+1]);continue}if(o===`PASSWORD`){let n=e+1;if(t[n]?.text===`(`){r(i(n+1)?.token);continue}if(l(t[n])===`FOR`)for(;n<t.length&&t[n].text!==`=`;)n++;t[n]?.text===`=`&&(n+=1),r(i(n)?.token)}}if(n.length===0)return e;n.sort((e,t)=>e.start-t.start);let a=``,u=0;for(let t of n)t.start<u||(a+=e.slice(u,t.start)+t.text,u=t.end);return a+e.slice(u)}var d=30,f=200,p=Object.freeze([]);function m(e,t,n){return e.map(e=>e.id===t?{...e,...n}:e)}function h(e){let t=e;if(delete t.erdOpen,delete t.erdDatabase,t.tabs&&typeof t.tabs==`object`){let e=t.tabs;for(let t of Object.keys(e))e[t]=e[t].map(e=>{if(!Array.isArray(e.results)){let t={...e};return delete t.result,{...t,results:[]}}return e})}return t}var g=e()(t((e,t)=>({tabs:{},activeTabId:{},history:[],snapshots:{},addQueryTab:(t,n)=>e(e=>{let r=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:[...r,n]},activeTabId:{...e.activeTabId,[t]:n.id}}}),removeQueryTab:(e,n)=>t().removeQueryTabs(e,[n]),removeQueryTabs:(t,n)=>e(e=>{let r=new Set(n),i=(e.tabs[t]??[]).filter(e=>!r.has(e.id)),a=e.activeTabId[t],o=a&&r.has(a)?i.length>0?i[i.length-1].id:null:a,s={...e.snapshots[t]};for(let e of n)delete s[e];return{tabs:{...e.tabs,[t]:i},activeTabId:{...e.activeTabId,[t]:o},snapshots:{...e.snapshots,[t]:s}}}),reorderQueryTab:(t,n,i)=>e(e=>({tabs:{...e.tabs,[t]:r(e.tabs[t]??[],n,i)}})),setActiveQueryTab:(t,n)=>e(e=>({activeTabId:{...e.activeTabId,[t]:n}})),setEditorContent:(t,n,r)=>e(e=>{let i=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:m(i,n,{query:r})}}}),setResults:(t,n,r)=>e(e=>{let i=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:m(i,n,{results:r,isExecuting:!1,error:null})}}}),setExecuting:(t,n,r)=>e(e=>{let i=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:m(i,n,{isExecuting:r})}}}),setError:(t,n,r,i=null)=>e(e=>{let a=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:m(a,n,{error:r,errorSql:r?i:null,isExecuting:!1})}}}),setDatabase:(t,n,r)=>e(e=>{let i=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:m(i,n,{database:r})}}}),setExecutionTime:(t,n,r)=>e(e=>{let i=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:m(i,n,{executionTime:r})}}}),addHistory:t=>e(e=>({history:[t,...e.history].slice(0,500)})),recordExecution:({connectionId:e,tabId:n,query:r,database:i,executionTime:a,error:o,kind:s,rowCount:c,affectedRows:l})=>t().addHistory({id:crypto.randomUUID(),query:u(r),database:i,timestamp:Date.now(),executionTime:a,success:!o,connectionId:e,tabId:n??void 0,...o?{error:o}:{},...s?{kind:s}:{},...c==null?{}:{rowCount:c},...l==null?{}:{affectedRows:l}}),clearHistory:()=>e({history:[]}),captureSnapshot:(t,n,r)=>e(e=>{let i=e.tabs[t]?.find(e=>e.id===n),a=u(i?.query??``);if(!a.trim())return{};let o=e.snapshots[t]?.[n]??[];if(o[0]?.text===a)return{};let s=[{text:a,timestamp:Date.now(),reason:r},...o].slice(0,d);return{snapshots:{...e.snapshots,[t]:{...e.snapshots[t],[n]:s}}}})}),{name:`planche-query`,storage:n(),version:2,migrate:h,partialize:e=>({tabs:Object.fromEntries(Object.entries(e.tabs).map(([e,t])=>[e,t.map(e=>({...e,isExecuting:!1,results:[],error:null,errorSql:null,executionTime:null}))])),activeTabId:e.activeTabId,history:i.getState().persistQueryHistory?e.history.slice(0,f):[],snapshots:i.getState().persistQueryHistory?Object.fromEntries(Object.entries(e.snapshots).map(([t,n])=>{let r=new Set((e.tabs[t]??[]).map(e=>e.id));return[t,Object.fromEntries(Object.entries(n).filter(([e])=>r.has(e)).map(([e,t])=>[e,t.slice(0,d)]))]})):{}})}));export{g as n,p as t};
1
+ import{r as e}from"./ui-store-VGM_km-l.js";import{i as t,t as n}from"./app-storage-B6v72zLH.js";import{n as r}from"./connection-store-Cn79Ey1H.js";import{n as i}from"./settings-store-hXzC7s8K.js";var a=/--[^\n]*|\/\*[\s\S]*?\*\/|\$([A-Za-z_]\w*)?\$[\s\S]*?\$\1\$|'(?:[^']|'')*'|"(?:[^"]|"")*"|\[[^\]]*\]|[A-Za-z_][\w$#]*|\S/g,o=`'***'`,s=/((?:password|pwd)\s*=\s*)[^;'"]+/gi;function c(e){let t=[];for(let n of e.matchAll(a)){let e=n[0];if(e.startsWith(`--`)||e.startsWith(`/*`))continue;let r=e[0],i=r===`'`||r===`"`||r===`$`?`literal`:/[A-Za-z_]/.test(r)?`word`:`other`;t.push({text:e,start:n.index,end:n.index+e.length,kind:i})}return t}var l=e=>e?.kind===`word`?e.text.toUpperCase():``;function u(e){let t=c(e),n=[],r=e=>{!e||e.kind===`other`||n.push({start:e.start,end:e.end,text:e.kind===`literal`?o:`***`})},i=e=>{let n=t[e];return n?n.kind===`literal`?{token:n,span:1}:n.kind===`word`&&/^[NE]$/i.test(n.text)&&t[e+1]?.kind===`literal`?{token:t[e+1],span:2}:null:null};for(let e=0;e<t.length;e++){let a=t[e];if(a.kind===`literal`){s.test(a.text)&&(s.lastIndex=0,n.push({start:a.start,end:a.end,text:a.text.replace(s,`$1***`)})),s.lastIndex=0;continue}if(a.kind!==`word`)continue;let o=a.text.toUpperCase();if(o===`IDENTIFIED`){let n=e+1;if(l(t[n])===`WITH`&&(n+=2),l(t[n])!==`BY`&&l(t[n])!==`AS`||(n+=1,(l(t[n])===`PASSWORD`||l(t[n])===`VALUES`)&&(n+=1),l(t[n])===`RANDOM`))continue;let a=i(n);a?(r(a.token),n+=a.span):t[n]?.kind===`word`&&(r(t[n]),n+=1),l(t[n])===`REPLACE`&&r(i(n+1)?.token??t[n+1]);continue}if(o===`PASSWORD`){let n=e+1;if(t[n]?.text===`(`){r(i(n+1)?.token);continue}if(l(t[n])===`FOR`)for(;n<t.length&&t[n].text!==`=`;)n++;t[n]?.text===`=`&&(n+=1),r(i(n)?.token)}}if(n.length===0)return e;n.sort((e,t)=>e.start-t.start);let a=``,u=0;for(let t of n)t.start<u||(a+=e.slice(u,t.start)+t.text,u=t.end);return a+e.slice(u)}var d=30,f=200,p=Object.freeze([]);function m(e,t,n){return e.map(e=>e.id===t?{...e,...n}:e)}function h(e){let t=e;if(delete t.erdOpen,delete t.erdDatabase,t.tabs&&typeof t.tabs==`object`){let e=t.tabs;for(let t of Object.keys(e))e[t]=e[t].map(e=>{if(!Array.isArray(e.results)){let t={...e};return delete t.result,{...t,results:[]}}return e})}return t}var g=e()(t((e,t)=>({tabs:{},activeTabId:{},history:[],snapshots:{},addQueryTab:(t,n)=>e(e=>{let r=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:[...r,n]},activeTabId:{...e.activeTabId,[t]:n.id}}}),removeQueryTab:(e,n)=>t().removeQueryTabs(e,[n]),removeQueryTabs:(t,n)=>e(e=>{let r=new Set(n),i=(e.tabs[t]??[]).filter(e=>!r.has(e.id)),a=e.activeTabId[t],o=a&&r.has(a)?i.length>0?i[i.length-1].id:null:a,s={...e.snapshots[t]};for(let e of n)delete s[e];return{tabs:{...e.tabs,[t]:i},activeTabId:{...e.activeTabId,[t]:o},snapshots:{...e.snapshots,[t]:s}}}),reorderQueryTab:(t,n,i)=>e(e=>({tabs:{...e.tabs,[t]:r(e.tabs[t]??[],n,i)}})),setActiveQueryTab:(t,n)=>e(e=>({activeTabId:{...e.activeTabId,[t]:n}})),setEditorContent:(t,n,r)=>e(e=>{let i=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:m(i,n,{query:r})}}}),setResults:(t,n,r)=>e(e=>{let i=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:m(i,n,{results:r,isExecuting:!1,error:null})}}}),setExecuting:(t,n,r)=>e(e=>{let i=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:m(i,n,{isExecuting:r})}}}),setError:(t,n,r,i=null)=>e(e=>{let a=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:m(a,n,{error:r,errorSql:r?i:null,isExecuting:!1})}}}),setDatabase:(t,n,r)=>e(e=>{let i=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:m(i,n,{database:r})}}}),setExecutionTime:(t,n,r)=>e(e=>{let i=e.tabs[t]??[];return{tabs:{...e.tabs,[t]:m(i,n,{executionTime:r})}}}),addHistory:t=>e(e=>({history:[t,...e.history].slice(0,500)})),recordExecution:({connectionId:e,tabId:n,query:r,database:i,executionTime:a,error:o,kind:s,rowCount:c,affectedRows:l})=>t().addHistory({id:crypto.randomUUID(),query:u(r),database:i,timestamp:Date.now(),executionTime:a,success:!o,connectionId:e,tabId:n??void 0,...o?{error:o}:{},...s?{kind:s}:{},...c==null?{}:{rowCount:c},...l==null?{}:{affectedRows:l}}),clearHistory:()=>e({history:[]}),captureSnapshot:(t,n,r)=>e(e=>{let i=e.tabs[t]?.find(e=>e.id===n),a=u(i?.query??``);if(!a.trim())return{};let o=e.snapshots[t]?.[n]??[];if(o[0]?.text===a)return{};let s=[{text:a,timestamp:Date.now(),reason:r},...o].slice(0,d);return{snapshots:{...e.snapshots,[t]:{...e.snapshots[t],[n]:s}}}})}),{name:`planche-query`,storage:n(),version:2,migrate:h,partialize:e=>({tabs:Object.fromEntries(Object.entries(e.tabs).map(([e,t])=>[e,t.map(e=>({...e,isExecuting:!1,results:[],error:null,errorSql:null,executionTime:null}))])),activeTabId:e.activeTabId,history:i.getState().persistQueryHistory?e.history.slice(0,f):[],snapshots:i.getState().persistQueryHistory?Object.fromEntries(Object.entries(e.snapshots).map(([t,n])=>{let r=new Set((e.tabs[t]??[]).map(e=>e.id));return[t,Object.fromEntries(Object.entries(n).filter(([e])=>r.has(e)).map(([e,t])=>[e,t.slice(0,d)]))]})):{}})}));export{g as n,p as t};
@@ -1 +1 @@
1
- import{_ as e,m as t}from"./ui-store-DWSBgCoR.js";import{at as n,dt as r,it as i,ut as a}from"./main-DEK4mnDt.js";import{b as o,l as s,o as c,p as l,s as u,u as d}from"./button-BGQhw-yz.js";import{S as f,_ as p,b as m,d as h,f as g,g as _,h as v,m as y,p as b,u as x,v as S,x as C,y as w}from"./dist-R-HWeP5h.js";import{n as T,t as E}from"./dist-eK8CwLw8.js";import{a as D,i as O,r as k,t as A}from"./dist-Dfw8x01G.js";import{t as j}from"./chevron-up-C8Exvnh_.js";var M=e(o(),1),N=e(t(),1),P=Object.defineProperty,ee=(e,t)=>P(e,`name`,{value:t,configurable:!0});function F(e){let t=N.useRef({value:e,previous:e});return N.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}ee(F,`usePrevious`);var I=s(),L=Object.defineProperty,R=(e,t)=>L(e,`name`,{value:t,configurable:!0}),z=[` `,`Enter`,`ArrowUp`,`ArrowDown`],B=[` `,`Enter`],V=`Select`,[H,U,W]=a(V),[G,te]=f(V,[W,D]),K=D(),[ne,q]=G(V),[re,ie]=G(V);function J(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:m,form:h,internal_do_not_use_render:g}=e,_=K(t),[v,y]=N.useState(null),[b,x]=N.useState(null),[S,C]=N.useState(!1),E=T(l),[D,k]=w({prop:r,defaultProp:i??!1,onChange:a,caller:V}),[A,j]=w({prop:o,defaultProp:s,onChange:c,caller:V}),M=N.useRef(null),P=N.useRef(A);N.useEffect(()=>{let e=h?v?.ownerDocument.getElementById(h):v?.form;if(e instanceof HTMLFormElement){let t=R(()=>j(P.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[h,v,j]);let ee=!v||!!h||!!v.closest(`form`),[F,L]=N.useState(new Set),z=p(),B=Array.from(F).map(e=>e.props.value).join(`;`),U=N.useCallback(e=>{L(t=>new Set(t).add(e))},[]),W=N.useCallback(e=>{L(t=>{let n=new Set(t);return n.delete(e),n})},[]),G={required:m,trigger:v,onTriggerChange:y,valueNode:b,onValueNodeChange:x,valueNodeHasChildren:S,onValueNodeHasChildrenChange:C,contentId:z,value:A,onValueChange:j,open:D,onOpenChange:k,dir:E,triggerPointerDownPosRef:M,disabled:f,name:u,autoComplete:d,form:h,nativeOptions:F,nativeSelectKey:B,isFormControl:ee};return(0,I.jsx)(O,{..._,children:(0,I.jsx)(ne,{scope:t,...G,children:(0,I.jsx)(H.Provider,{scope:t,children:(0,I.jsx)(re,{scope:t,onNativeOptionAdd:U,onNativeOptionRemove:W,children:Ve(g)?g(G):n})})})})}R(J,`SelectProvider`);var ae=R(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,I.jsx)(J,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,I.jsxs)(I.Fragment,{children:[n,e?(0,I.jsx)(Be,{__scopeSelect:t}):null]})})},`Select`),oe=`SelectTrigger`,se=N.forwardRef(R(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=K(n),o=q(oe,n),s=o.disabled||r,c=l(t,o.onTriggerChange),d=U(n),f=N.useRef(`touch`),[p,m,h]=He(e=>{let t=d().filter(e=>!e.disabled),n=Ue(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),g=R(e=>{s||(o.onOpenChange(!0),h()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,I.jsx)(A,{asChild:!0,...a,children:(0,I.jsx)(u.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":$(o.value)?``:void 0,...i,ref:c,onClick:C(i.onClick,e=>{e.currentTarget.focus(),f.current!==`mouse`&&g(e)}),onPointerDown:C(i.onPointerDown,e=>{f.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(g(e),e.preventDefault())}),onKeyDown:C(i.onKeyDown,e=>{let t=p.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&m(e.key),!(t&&e.key===` `)&&z.includes(e.key)&&(g(),e.preventDefault())})})})},`SelectTrigger`)),ce=`SelectValue`,le=N.forwardRef(R(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=q(ce,n),{onValueNodeHasChildrenChange:d}=c,f=a!==void 0,p=l(t,c.onValueNodeChange);m(()=>{d(f)},[d,f]);let h=$(c.value);return(0,I.jsx)(u.span,{...s,asChild:!h&&s.asChild,ref:p,style:{pointerEvents:`none`},children:(0,I.jsx)(N.Fragment,{children:h?o:a},h?`placeholder`:`value`)})},`SelectValue`)),ue=N.forwardRef(R(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,I.jsx)(u.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[de,fe]=G(`SelectPortal`,{forceMount:void 0}),pe=R(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,I.jsx)(de,{scope:e.__scopeSelect,forceMount:n,children:(0,I.jsx)(b,{asChild:!0,...r})})},`SelectPortal`),Y=`SelectContent`,me=N.forwardRef(R(function(e,t){let n=fe(Y,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=q(Y,e.__scopeSelect),[o,s]=N.useState();return m(()=>{s(new DocumentFragment)},[]),(0,I.jsx)(S,{present:r||a.open,children:({present:e})=>e?(0,I.jsx)(ve,{...i,ref:t}):(0,I.jsx)(he,{...i,fragment:o})})},`SelectContent`)),he=N.forwardRef(R(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?M.createPortal((0,I.jsx)(ge,{scope:n,children:(0,I.jsx)(H.Slot,{scope:n,children:(0,I.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),X=10,[ge,Z]=G(Y),_e=d(`SelectContent.RemoveScroll`),ve=N.forwardRef(R(function(e,t){let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:u,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:m,sticky:_,hideWhenDetached:b,avoidCollisions:S,...w}=e,T=q(Y,n),[E,D]=N.useState(null),[O,k]=N.useState(null),A=l(t,D),[j,M]=N.useState(null),[P,ee]=N.useState(null),F=U(n),[L,z]=N.useState(!1),B=N.useRef(!1);N.useEffect(()=>{if(E)return x(E)},[E]),g();let V=N.useCallback(e=>{let[t,...n]=F().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&O&&(O.scrollTop=0),n===r&&O&&(O.scrollTop=O.scrollHeight),n?.focus(),document.activeElement!==i))return},[F,O]),H=N.useCallback(()=>V([j,E]),[V,j,E]);N.useEffect(()=>{L&&H()},[L,H]);let{onOpenChange:W,triggerPointerDownPosRef:G}=T;N.useEffect(()=>{if(E){let e={x:0,y:0},t=R(t=>{e={x:Math.abs(Math.round(t.pageX)-(G.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(G.current?.y??0))}},`handlePointerMove`),n=R(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(E)||W(!1),document.removeEventListener(`pointermove`,t),G.current=null},`handlePointerUp`);return G.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[E,W,G]),N.useEffect(()=>{let e=R(()=>W(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[W]);let[te,K]=He(e=>{let t=F().filter(e=>!e.disabled),n=Ue(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ne=N.useCallback((e,t,n)=>{let r=!B.current&&!n;(T.value!==void 0&&T.value===t||r)&&(M(e),r&&(B.current=!0))},[T.value]),re=N.useCallback(()=>E?.focus(),[E]),ie=N.useCallback((e,t,n)=>{let r=!B.current&&!n;(T.value!==void 0&&T.value===t||r)&&ee(e)},[T.value]),J=r===`popper`?be:ye,ae=J===be?{side:s,sideOffset:c,align:u,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:m,sticky:_,hideWhenDetached:b,avoidCollisions:S}:{};return(0,I.jsx)(ge,{scope:n,content:E,viewport:O,onViewportChange:k,itemRefCallback:ne,selectedItem:j,onItemLeave:re,itemTextRefCallback:ie,focusSelectedItem:H,selectedItemText:P,position:r,isPositioned:L,searchRef:te,children:(0,I.jsx)(h,{as:_e,allowPinchZoom:!0,children:(0,I.jsx)(y,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:C(i,e=>{T.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,I.jsx)(v,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,I.jsx)(J,{role:`listbox`,id:T.contentId,"data-state":T.open?`open`:`closed`,dir:T.dir,onContextMenu:e=>e.preventDefault(),...w,...ae,onPlaced:()=>z(!0),ref:A,style:{display:`flex`,flexDirection:`column`,outline:`none`,...w.style},onKeyDown:C(w.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&K(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=F().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>V(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),ye=N.forwardRef(R(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=q(Y,n),o=Z(Y,n),[s,c]=N.useState(null),[d,f]=N.useState(null),p=l(t,f),h=U(n),g=N.useRef(!1),_=N.useRef(!0),{viewport:v,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=o,S=N.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&d&&v&&y&&b){let e=a.trigger.getBoundingClientRect(),t=d.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=b.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-X,d=E(a,[X,Math.max(X,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-X,d=E(a,[X,Math.max(X,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=h(),c=window.innerHeight-X*2,l=v.scrollHeight,u=window.getComputedStyle(d),f=parseInt(u.borderTopWidth,10),p=parseInt(u.paddingTop,10),m=parseInt(u.borderBottomWidth,10),_=parseInt(u.paddingBottom,10),x=f+p+l+_+m,S=Math.min(y.offsetHeight*5,x),C=window.getComputedStyle(v),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),D=e.top+e.height/2-X,O=c-D,k=y.offsetHeight/2,A=y.offsetTop+k,j=f+p+A,M=x-j;if(j<=D){let e=o.length>0&&y===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=d.clientHeight-v.offsetTop-v.offsetHeight,n=j+Math.max(O,k+(e?T:0)+t+m);s.style.height=n+`px`}else{let e=o.length>0&&y===o[0].ref.current;s.style.top=`0px`;let t=Math.max(D,f+v.offsetTop+(e?w:0)+k)+M;s.style.height=t+`px`,v.scrollTop=j-D+v.offsetTop}s.style.margin=`${X}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>g.current=!0)}},[h,a.trigger,a.valueNode,s,d,v,y,b,a.dir,r]);m(()=>S(),[S]);let[C,w]=N.useState();m(()=>{d&&w(window.getComputedStyle(d).zIndex)},[d]);let T=N.useCallback(e=>{e&&_.current===!0&&(S(),x?.(),_.current=!1)},[S,x]);return(0,I.jsx)(xe,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:g,onScrollButtonChange:T,children:(0,I.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,I.jsx)(u.div,{...i,ref:p,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),be=N.forwardRef(R(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=X,...a}=e,o=K(n);return(0,I.jsx)(k,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[xe,Se]=G(Y,{}),Ce=`SelectViewport`,we=N.forwardRef(R(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=Z(Ce,n),o=Se(Ce,n),s=l(t,a.onViewportChange),c=N.useRef(0);return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,I.jsx)(H.Slot,{scope:n,children:(0,I.jsx)(u.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:C(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-X*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})},`SelectViewport`)),[Te,Ee]=G(`SelectGroup`),De=`SelectItem`,[Oe,ke]=G(De),Ae=N.forwardRef(R(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=q(De,n),c=Z(De,n),d=s.value===r,[f,m]=N.useState(a??``),[h,g]=N.useState(!1),v=_(e=>c.itemRefCallback?.(e,r,i)),y=l(t,v),b=p(),x=N.useRef(`touch`),S=R(()=>{i||(s.onValueChange(r),s.onOpenChange(!1))},`handleSelect`);return(0,I.jsx)(Oe,{scope:n,value:r,disabled:i,textId:b,isSelected:d,onItemTextChange:N.useCallback(e=>{m(t=>t||(e?.textContent??``).trim())},[]),children:(0,I.jsx)(H.ItemSlot,{scope:n,value:r,disabled:i,textValue:f,children:(0,I.jsx)(u.div,{role:`option`,"aria-labelledby":b,"data-highlighted":h?``:void 0,"aria-selected":d&&h,"data-state":d?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:y,onFocus:C(o.onFocus,()=>g(!0)),onBlur:C(o.onBlur,()=>g(!1)),onClick:C(o.onClick,()=>{x.current!==`mouse`&&S()}),onPointerUp:C(o.onPointerUp,()=>{x.current===`mouse`&&S()}),onPointerDown:C(o.onPointerDown,e=>{x.current=e.pointerType}),onPointerMove:C(o.onPointerMove,e=>{x.current=e.pointerType,i?c.onItemLeave?.():x.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:C(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:C(o.onKeyDown,e=>{i||e.target!==e.currentTarget||(c.searchRef?.current===``||e.key!==` `)&&(B.includes(e.key)&&S(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),Q=`SelectItemText`,je=N.forwardRef(R(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,o=q(Q,n),s=Z(Q,n),c=ke(Q,n),d=ie(Q,n),[f,p]=N.useState(null),h=_(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),g=l(t,p,c.onItemTextChange,h),v=f?.textContent,y=N.useMemo(()=>(0,I.jsx)(`option`,{value:c.value,disabled:c.disabled,children:v},c.value),[c.disabled,c.value,v]),{onNativeOptionAdd:b,onNativeOptionRemove:x}=d;return m(()=>(b(y),()=>x(y)),[b,x,y]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(u.span,{id:c.textId,...a,ref:g}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!$(o.value)?M.createPortal(a.children,o.valueNode):null]})},`SelectItemText`)),Me=`SelectItemIndicator`,Ne=N.forwardRef(R(function(e,t){let{__scopeSelect:n,...r}=e;return ke(Me,n).isSelected?(0,I.jsx)(u.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),Pe=`SelectScrollUpButton`,Fe=N.forwardRef(R(function(e,t){let n=Z(Pe,e.__scopeSelect),r=Se(Pe,e.__scopeSelect),[i,a]=N.useState(!1),o=l(t,r.onScrollButtonChange);return m(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};R(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(Re,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),Ie=`SelectScrollDownButton`,Le=N.forwardRef(R(function(e,t){let n=Z(Ie,e.__scopeSelect),r=Se(Ie,e.__scopeSelect),[i,a]=N.useState(!1),o=l(t,r.onScrollButtonChange);return m(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};R(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(Re,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),Re=N.forwardRef(R(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Z(`SelectScrollButton`,n),o=N.useRef(null),s=U(n),c=N.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return N.useEffect(()=>()=>c(),[c]),m(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,I.jsx)(u.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:C(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:C(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:C(i.onPointerLeave,()=>{c()})})},`SelectScrollButtonImpl`)),ze=`SelectBubbleInput`,Be=N.forwardRef(R(function({__scopeSelect:e,...t},n){let i=q(ze,e),{value:a,onValueChange:o,required:s,disabled:c,name:d,autoComplete:f,form:p}=i,{nativeOptions:m,nativeSelectKey:h}=i,g=N.useRef(null),_=l(n,g),v=a??``,y=F(v),b=Array.from(m).some(e=>(e.props.value??``)===``);return N.useEffect(()=>{let e=g.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(y!==v&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,v),e.dispatchEvent(t)}},[y,v]),(0,I.jsxs)(u.select,{"aria-hidden":!0,required:s,tabIndex:-1,name:d,autoComplete:f,disabled:c,form:p,onChange:e=>o(e.target.value),...t,style:{...r,...t.style},ref:_,defaultValue:v,children:[$(a)&&!b?(0,I.jsx)(`option`,{value:``}):null,Array.from(m)]},h)},`SelectBubbleInput`));function Ve(e){return typeof e==`function`}R(Ve,`isFunction`);function $(e){return e===``||e===void 0}R($,`shouldShowPlaceholder`);function He(e){let t=_(e),n=N.useRef(``),r=N.useRef(0),i=N.useCallback(e=>{let i=n.current+e;t(i),R((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=N.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return N.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}R(He,`useTypeaheadSearch`);function Ue(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=We(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}R(Ue,`findNextItem`);function We(e,t){return e.map((n,r)=>e[(t+r)%e.length])}R(We,`wrapArray`);function Ge({...e}){return(0,I.jsx)(ae,{"data-slot":`select`,...e})}function Ke({...e}){return(0,I.jsx)(le,{"data-slot":`select-value`,...e})}function qe({className:e,size:t=`default`,children:n,...r}){return(0,I.jsxs)(se,{"data-slot":`select-trigger`,"data-size":t,className:c(`flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground`,e),...r,children:[n,(0,I.jsx)(ue,{asChild:!0,children:(0,I.jsx)(i,{className:`size-4 opacity-50`})})]})}function Je({className:e,children:t,position:n=`item-aligned`,align:r=`center`,...i}){return(0,I.jsx)(pe,{children:(0,I.jsxs)(me,{"data-slot":`select-content`,className:c(`relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,align:r,...i,children:[(0,I.jsx)(Xe,{}),(0,I.jsx)(we,{className:c(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1`),children:t}),(0,I.jsx)(Ze,{})]})})}function Ye({className:e,children:t,...r}){return(0,I.jsxs)(Ae,{"data-slot":`select-item`,className:c(`relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...r,children:[(0,I.jsx)(`span`,{"data-slot":`select-item-indicator`,className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,I.jsx)(Ne,{children:(0,I.jsx)(n,{className:`size-4`})})}),(0,I.jsx)(je,{children:t})]})}function Xe({className:e,...t}){return(0,I.jsx)(Fe,{"data-slot":`select-scroll-up-button`,className:c(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(j,{className:`size-4`})})}function Ze({className:e,...t}){return(0,I.jsx)(Le,{"data-slot":`select-scroll-down-button`,className:c(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(i,{className:`size-4`})})}export{Ke as a,qe as i,Je as n,Ye as r,Ge as t};
1
+ import{_ as e,m as t}from"./ui-store-VGM_km-l.js";import{at as n,dt as r,it as i,ut as a}from"./main-kdBvc1j0.js";import{b as o,l as s,o as c,p as l,s as u,u as d}from"./button-BRD_vJ8s.js";import{S as f,_ as p,b as m,d as h,f as g,g as _,h as v,m as y,p as b,u as x,v as S,x as C,y as w}from"./dist-BnghYOTd.js";import{n as T,t as E}from"./dist-DGLzi2V0.js";import{a as D,i as O,r as k,t as A}from"./dist-Bo6CxCQ0.js";import{t as j}from"./chevron-up-DVdt2433.js";var M=e(o(),1),N=e(t(),1),P=Object.defineProperty,ee=(e,t)=>P(e,`name`,{value:t,configurable:!0});function F(e){let t=N.useRef({value:e,previous:e});return N.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}ee(F,`usePrevious`);var I=s(),L=Object.defineProperty,R=(e,t)=>L(e,`name`,{value:t,configurable:!0}),z=[` `,`Enter`,`ArrowUp`,`ArrowDown`],B=[` `,`Enter`],V=`Select`,[H,U,W]=a(V),[G,te]=f(V,[W,D]),K=D(),[ne,q]=G(V),[re,ie]=G(V);function J(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:m,form:h,internal_do_not_use_render:g}=e,_=K(t),[v,y]=N.useState(null),[b,x]=N.useState(null),[S,C]=N.useState(!1),E=T(l),[D,k]=w({prop:r,defaultProp:i??!1,onChange:a,caller:V}),[A,j]=w({prop:o,defaultProp:s,onChange:c,caller:V}),M=N.useRef(null),P=N.useRef(A);N.useEffect(()=>{let e=h?v?.ownerDocument.getElementById(h):v?.form;if(e instanceof HTMLFormElement){let t=R(()=>j(P.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[h,v,j]);let ee=!v||!!h||!!v.closest(`form`),[F,L]=N.useState(new Set),z=p(),B=Array.from(F).map(e=>e.props.value).join(`;`),U=N.useCallback(e=>{L(t=>new Set(t).add(e))},[]),W=N.useCallback(e=>{L(t=>{let n=new Set(t);return n.delete(e),n})},[]),G={required:m,trigger:v,onTriggerChange:y,valueNode:b,onValueNodeChange:x,valueNodeHasChildren:S,onValueNodeHasChildrenChange:C,contentId:z,value:A,onValueChange:j,open:D,onOpenChange:k,dir:E,triggerPointerDownPosRef:M,disabled:f,name:u,autoComplete:d,form:h,nativeOptions:F,nativeSelectKey:B,isFormControl:ee};return(0,I.jsx)(O,{..._,children:(0,I.jsx)(ne,{scope:t,...G,children:(0,I.jsx)(H.Provider,{scope:t,children:(0,I.jsx)(re,{scope:t,onNativeOptionAdd:U,onNativeOptionRemove:W,children:Ve(g)?g(G):n})})})})}R(J,`SelectProvider`);var ae=R(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,I.jsx)(J,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,I.jsxs)(I.Fragment,{children:[n,e?(0,I.jsx)(Be,{__scopeSelect:t}):null]})})},`Select`),oe=`SelectTrigger`,se=N.forwardRef(R(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=K(n),o=q(oe,n),s=o.disabled||r,c=l(t,o.onTriggerChange),d=U(n),f=N.useRef(`touch`),[p,m,h]=He(e=>{let t=d().filter(e=>!e.disabled),n=Ue(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),g=R(e=>{s||(o.onOpenChange(!0),h()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,I.jsx)(A,{asChild:!0,...a,children:(0,I.jsx)(u.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":$(o.value)?``:void 0,...i,ref:c,onClick:C(i.onClick,e=>{e.currentTarget.focus(),f.current!==`mouse`&&g(e)}),onPointerDown:C(i.onPointerDown,e=>{f.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(g(e),e.preventDefault())}),onKeyDown:C(i.onKeyDown,e=>{let t=p.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&m(e.key),!(t&&e.key===` `)&&z.includes(e.key)&&(g(),e.preventDefault())})})})},`SelectTrigger`)),ce=`SelectValue`,le=N.forwardRef(R(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=q(ce,n),{onValueNodeHasChildrenChange:d}=c,f=a!==void 0,p=l(t,c.onValueNodeChange);m(()=>{d(f)},[d,f]);let h=$(c.value);return(0,I.jsx)(u.span,{...s,asChild:!h&&s.asChild,ref:p,style:{pointerEvents:`none`},children:(0,I.jsx)(N.Fragment,{children:h?o:a},h?`placeholder`:`value`)})},`SelectValue`)),ue=N.forwardRef(R(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,I.jsx)(u.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[de,fe]=G(`SelectPortal`,{forceMount:void 0}),pe=R(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,I.jsx)(de,{scope:e.__scopeSelect,forceMount:n,children:(0,I.jsx)(b,{asChild:!0,...r})})},`SelectPortal`),Y=`SelectContent`,me=N.forwardRef(R(function(e,t){let n=fe(Y,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=q(Y,e.__scopeSelect),[o,s]=N.useState();return m(()=>{s(new DocumentFragment)},[]),(0,I.jsx)(S,{present:r||a.open,children:({present:e})=>e?(0,I.jsx)(ve,{...i,ref:t}):(0,I.jsx)(he,{...i,fragment:o})})},`SelectContent`)),he=N.forwardRef(R(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?M.createPortal((0,I.jsx)(ge,{scope:n,children:(0,I.jsx)(H.Slot,{scope:n,children:(0,I.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),X=10,[ge,Z]=G(Y),_e=d(`SelectContent.RemoveScroll`),ve=N.forwardRef(R(function(e,t){let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:u,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:m,sticky:_,hideWhenDetached:b,avoidCollisions:S,...w}=e,T=q(Y,n),[E,D]=N.useState(null),[O,k]=N.useState(null),A=l(t,D),[j,M]=N.useState(null),[P,ee]=N.useState(null),F=U(n),[L,z]=N.useState(!1),B=N.useRef(!1);N.useEffect(()=>{if(E)return x(E)},[E]),g();let V=N.useCallback(e=>{let[t,...n]=F().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&O&&(O.scrollTop=0),n===r&&O&&(O.scrollTop=O.scrollHeight),n?.focus(),document.activeElement!==i))return},[F,O]),H=N.useCallback(()=>V([j,E]),[V,j,E]);N.useEffect(()=>{L&&H()},[L,H]);let{onOpenChange:W,triggerPointerDownPosRef:G}=T;N.useEffect(()=>{if(E){let e={x:0,y:0},t=R(t=>{e={x:Math.abs(Math.round(t.pageX)-(G.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(G.current?.y??0))}},`handlePointerMove`),n=R(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(E)||W(!1),document.removeEventListener(`pointermove`,t),G.current=null},`handlePointerUp`);return G.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[E,W,G]),N.useEffect(()=>{let e=R(()=>W(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[W]);let[te,K]=He(e=>{let t=F().filter(e=>!e.disabled),n=Ue(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ne=N.useCallback((e,t,n)=>{let r=!B.current&&!n;(T.value!==void 0&&T.value===t||r)&&(M(e),r&&(B.current=!0))},[T.value]),re=N.useCallback(()=>E?.focus(),[E]),ie=N.useCallback((e,t,n)=>{let r=!B.current&&!n;(T.value!==void 0&&T.value===t||r)&&ee(e)},[T.value]),J=r===`popper`?be:ye,ae=J===be?{side:s,sideOffset:c,align:u,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:m,sticky:_,hideWhenDetached:b,avoidCollisions:S}:{};return(0,I.jsx)(ge,{scope:n,content:E,viewport:O,onViewportChange:k,itemRefCallback:ne,selectedItem:j,onItemLeave:re,itemTextRefCallback:ie,focusSelectedItem:H,selectedItemText:P,position:r,isPositioned:L,searchRef:te,children:(0,I.jsx)(h,{as:_e,allowPinchZoom:!0,children:(0,I.jsx)(y,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:C(i,e=>{T.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,I.jsx)(v,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,I.jsx)(J,{role:`listbox`,id:T.contentId,"data-state":T.open?`open`:`closed`,dir:T.dir,onContextMenu:e=>e.preventDefault(),...w,...ae,onPlaced:()=>z(!0),ref:A,style:{display:`flex`,flexDirection:`column`,outline:`none`,...w.style},onKeyDown:C(w.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&K(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=F().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>V(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),ye=N.forwardRef(R(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=q(Y,n),o=Z(Y,n),[s,c]=N.useState(null),[d,f]=N.useState(null),p=l(t,f),h=U(n),g=N.useRef(!1),_=N.useRef(!0),{viewport:v,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=o,S=N.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&d&&v&&y&&b){let e=a.trigger.getBoundingClientRect(),t=d.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=b.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-X,d=E(a,[X,Math.max(X,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-X,d=E(a,[X,Math.max(X,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=h(),c=window.innerHeight-X*2,l=v.scrollHeight,u=window.getComputedStyle(d),f=parseInt(u.borderTopWidth,10),p=parseInt(u.paddingTop,10),m=parseInt(u.borderBottomWidth,10),_=parseInt(u.paddingBottom,10),x=f+p+l+_+m,S=Math.min(y.offsetHeight*5,x),C=window.getComputedStyle(v),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),D=e.top+e.height/2-X,O=c-D,k=y.offsetHeight/2,A=y.offsetTop+k,j=f+p+A,M=x-j;if(j<=D){let e=o.length>0&&y===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=d.clientHeight-v.offsetTop-v.offsetHeight,n=j+Math.max(O,k+(e?T:0)+t+m);s.style.height=n+`px`}else{let e=o.length>0&&y===o[0].ref.current;s.style.top=`0px`;let t=Math.max(D,f+v.offsetTop+(e?w:0)+k)+M;s.style.height=t+`px`,v.scrollTop=j-D+v.offsetTop}s.style.margin=`${X}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>g.current=!0)}},[h,a.trigger,a.valueNode,s,d,v,y,b,a.dir,r]);m(()=>S(),[S]);let[C,w]=N.useState();m(()=>{d&&w(window.getComputedStyle(d).zIndex)},[d]);let T=N.useCallback(e=>{e&&_.current===!0&&(S(),x?.(),_.current=!1)},[S,x]);return(0,I.jsx)(xe,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:g,onScrollButtonChange:T,children:(0,I.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,I.jsx)(u.div,{...i,ref:p,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),be=N.forwardRef(R(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=X,...a}=e,o=K(n);return(0,I.jsx)(k,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[xe,Se]=G(Y,{}),Ce=`SelectViewport`,we=N.forwardRef(R(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=Z(Ce,n),o=Se(Ce,n),s=l(t,a.onViewportChange),c=N.useRef(0);return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,I.jsx)(H.Slot,{scope:n,children:(0,I.jsx)(u.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:C(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-X*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})},`SelectViewport`)),[Te,Ee]=G(`SelectGroup`),De=`SelectItem`,[Oe,ke]=G(De),Ae=N.forwardRef(R(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=q(De,n),c=Z(De,n),d=s.value===r,[f,m]=N.useState(a??``),[h,g]=N.useState(!1),v=_(e=>c.itemRefCallback?.(e,r,i)),y=l(t,v),b=p(),x=N.useRef(`touch`),S=R(()=>{i||(s.onValueChange(r),s.onOpenChange(!1))},`handleSelect`);return(0,I.jsx)(Oe,{scope:n,value:r,disabled:i,textId:b,isSelected:d,onItemTextChange:N.useCallback(e=>{m(t=>t||(e?.textContent??``).trim())},[]),children:(0,I.jsx)(H.ItemSlot,{scope:n,value:r,disabled:i,textValue:f,children:(0,I.jsx)(u.div,{role:`option`,"aria-labelledby":b,"data-highlighted":h?``:void 0,"aria-selected":d&&h,"data-state":d?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:y,onFocus:C(o.onFocus,()=>g(!0)),onBlur:C(o.onBlur,()=>g(!1)),onClick:C(o.onClick,()=>{x.current!==`mouse`&&S()}),onPointerUp:C(o.onPointerUp,()=>{x.current===`mouse`&&S()}),onPointerDown:C(o.onPointerDown,e=>{x.current=e.pointerType}),onPointerMove:C(o.onPointerMove,e=>{x.current=e.pointerType,i?c.onItemLeave?.():x.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:C(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:C(o.onKeyDown,e=>{i||e.target!==e.currentTarget||(c.searchRef?.current===``||e.key!==` `)&&(B.includes(e.key)&&S(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),Q=`SelectItemText`,je=N.forwardRef(R(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,o=q(Q,n),s=Z(Q,n),c=ke(Q,n),d=ie(Q,n),[f,p]=N.useState(null),h=_(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),g=l(t,p,c.onItemTextChange,h),v=f?.textContent,y=N.useMemo(()=>(0,I.jsx)(`option`,{value:c.value,disabled:c.disabled,children:v},c.value),[c.disabled,c.value,v]),{onNativeOptionAdd:b,onNativeOptionRemove:x}=d;return m(()=>(b(y),()=>x(y)),[b,x,y]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(u.span,{id:c.textId,...a,ref:g}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!$(o.value)?M.createPortal(a.children,o.valueNode):null]})},`SelectItemText`)),Me=`SelectItemIndicator`,Ne=N.forwardRef(R(function(e,t){let{__scopeSelect:n,...r}=e;return ke(Me,n).isSelected?(0,I.jsx)(u.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),Pe=`SelectScrollUpButton`,Fe=N.forwardRef(R(function(e,t){let n=Z(Pe,e.__scopeSelect),r=Se(Pe,e.__scopeSelect),[i,a]=N.useState(!1),o=l(t,r.onScrollButtonChange);return m(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};R(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(Re,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),Ie=`SelectScrollDownButton`,Le=N.forwardRef(R(function(e,t){let n=Z(Ie,e.__scopeSelect),r=Se(Ie,e.__scopeSelect),[i,a]=N.useState(!1),o=l(t,r.onScrollButtonChange);return m(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};R(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(Re,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),Re=N.forwardRef(R(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Z(`SelectScrollButton`,n),o=N.useRef(null),s=U(n),c=N.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return N.useEffect(()=>()=>c(),[c]),m(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,I.jsx)(u.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:C(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:C(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:C(i.onPointerLeave,()=>{c()})})},`SelectScrollButtonImpl`)),ze=`SelectBubbleInput`,Be=N.forwardRef(R(function({__scopeSelect:e,...t},n){let i=q(ze,e),{value:a,onValueChange:o,required:s,disabled:c,name:d,autoComplete:f,form:p}=i,{nativeOptions:m,nativeSelectKey:h}=i,g=N.useRef(null),_=l(n,g),v=a??``,y=F(v),b=Array.from(m).some(e=>(e.props.value??``)===``);return N.useEffect(()=>{let e=g.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(y!==v&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,v),e.dispatchEvent(t)}},[y,v]),(0,I.jsxs)(u.select,{"aria-hidden":!0,required:s,tabIndex:-1,name:d,autoComplete:f,disabled:c,form:p,onChange:e=>o(e.target.value),...t,style:{...r,...t.style},ref:_,defaultValue:v,children:[$(a)&&!b?(0,I.jsx)(`option`,{value:``}):null,Array.from(m)]},h)},`SelectBubbleInput`));function Ve(e){return typeof e==`function`}R(Ve,`isFunction`);function $(e){return e===``||e===void 0}R($,`shouldShowPlaceholder`);function He(e){let t=_(e),n=N.useRef(``),r=N.useRef(0),i=N.useCallback(e=>{let i=n.current+e;t(i),R((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=N.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return N.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}R(He,`useTypeaheadSearch`);function Ue(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=We(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}R(Ue,`findNextItem`);function We(e,t){return e.map((n,r)=>e[(t+r)%e.length])}R(We,`wrapArray`);function Ge({...e}){return(0,I.jsx)(ae,{"data-slot":`select`,...e})}function Ke({...e}){return(0,I.jsx)(le,{"data-slot":`select-value`,...e})}function qe({className:e,size:t=`default`,children:n,...r}){return(0,I.jsxs)(se,{"data-slot":`select-trigger`,"data-size":t,className:c(`flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground`,e),...r,children:[n,(0,I.jsx)(ue,{asChild:!0,children:(0,I.jsx)(i,{className:`size-4 opacity-50`})})]})}function Je({className:e,children:t,position:n=`item-aligned`,align:r=`center`,...i}){return(0,I.jsx)(pe,{children:(0,I.jsxs)(me,{"data-slot":`select-content`,className:c(`relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,align:r,...i,children:[(0,I.jsx)(Xe,{}),(0,I.jsx)(we,{className:c(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1`),children:t}),(0,I.jsx)(Ze,{})]})})}function Ye({className:e,children:t,...r}){return(0,I.jsxs)(Ae,{"data-slot":`select-item`,className:c(`relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...r,children:[(0,I.jsx)(`span`,{"data-slot":`select-item-indicator`,className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,I.jsx)(Ne,{children:(0,I.jsx)(n,{className:`size-4`})})}),(0,I.jsx)(je,{children:t})]})}function Xe({className:e,...t}){return(0,I.jsx)(Fe,{"data-slot":`select-scroll-up-button`,className:c(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(j,{className:`size-4`})})}function Ze({className:e,...t}){return(0,I.jsx)(Le,{"data-slot":`select-scroll-down-button`,className:c(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(i,{className:`size-4`})})}export{Ke as a,qe as i,Je as n,Ye as r,Ge as t};
@@ -1 +1 @@
1
- import{c as e,r as t}from"./ui-store-DWSBgCoR.js";import{i as n,t as r}from"./app-storage-B6v72zLH.js";var i={confirmDestructive:!0,warnInEditor:!0,previewAffectedRows:!0,allowReadOnlyOverride:!0,previewGridCommit:!0,resultRowLimit:500,executeScope:`script`},a=t()(n(t=>({...i,locale:`auto`,onboardingDismissed:!1,termsAcceptedVersion:0,analyticsEnabled:!0,persistQueryHistory:!0,update:e=>t(e),setOnboardingDismissed:e=>t({onboardingDismissed:e}),acceptTerms:()=>{e(`terms_accept`,{version:1}),t({termsAcceptedVersion:1})},setLocale:n=>{e(`locale_change`,{locale:n}),t({locale:n})},setAnalyticsEnabled:e=>t({analyticsEnabled:e}),setPersistQueryHistory:e=>t({persistQueryHistory:e})}),{name:`planche-settings`,storage:r()})),o=()=>a(e=>e.termsAcceptedVersion>=1);export{a as n,o as r,i as t};
1
+ import{c as e,r as t}from"./ui-store-VGM_km-l.js";import{i as n,t as r}from"./app-storage-B6v72zLH.js";var i={confirmDestructive:!0,warnInEditor:!0,previewAffectedRows:!0,allowReadOnlyOverride:!0,previewGridCommit:!0,resultRowLimit:500,executeScope:`script`},a=t()(n(t=>({...i,locale:`auto`,onboardingDismissed:!1,termsAcceptedVersion:0,analyticsEnabled:!0,persistQueryHistory:!0,update:e=>t(e),setOnboardingDismissed:e=>t({onboardingDismissed:e}),acceptTerms:()=>{e(`terms_accept`,{version:1}),t({termsAcceptedVersion:1})},setLocale:n=>{e(`locale_change`,{locale:n}),t({locale:n})},setAnalyticsEnabled:e=>t({analyticsEnabled:e}),setPersistQueryHistory:e=>t({persistQueryHistory:e})}),{name:`planche-settings`,storage:r()})),o=()=>a(e=>e.termsAcceptedVersion>=1);export{a as n,o as r,i as t};
@@ -1 +1 @@
1
- import{c as e,n as t}from"./ui-store-DWSBgCoR.js";import{a as n}from"./i18n-DyTdEJ5X.js";import{t as r}from"./connection-store-B9-4NAfR.js";import{r as i}from"./database-DUBVz1in.js";import{c as a,d as o,n as s}from"./query-execution-DItl2TUQ.js";import{i as c}from"./dbms-Bsjvyvsp.js";import{n as l}from"./engine-DRzYxvTs.js";import{t as u}from"./table-definition-Bs5VSn0X.js";var d=500;function f(e){let t=r.getState().activeConnections.find(t=>t.id===e);if(!t?.serverConnectionId)throw new s(n.t(`services.query.notConnected`));return t.serverConnectionId}async function p(e,t){let r=l(e.connectionId),a=i(f(e.connectionId)),[o,c,d]=await Promise.all([r.introspect.listColumns(a,e.database,e.table),r.introspect.listIndexes(a,e.database,e.table),r.capabilities.tableProperties?r.introspect.getTableInfo(a,e.database,e.table):Promise.resolve(null)]);if(o.length===0)throw new s(n.t(`table.copy.noColumns`));let p=u(t.database,t.table,o,c,d);return l(t.connectionId).capabilities.tableProperties||(p.options={engine:``,charset:``,collation:``,autoIncrement:``,comment:p.options.comment}),p}async function m(e){let t=l(e.connectionId),n=i(f(e.connectionId)),r=await t.introspect.listTables(n,e.database),a=e.table.toLowerCase();return r.some(e=>e.name.toLowerCase()===a)}function h(e,t,n,r,i,a,o){let s=r.map(t=>e.quoteIdentifier(t)).join(`, `),c=i.length>0?i.map(t=>e.quoteIdentifier(t)).join(`, `):`1`,l=`SELECT ${s} FROM ${e.qualify(t,n)} ORDER BY ${c}`;switch(e.syntax.limitStyle){case`top`:return`${l} OFFSET ${a} ROWS FETCH NEXT ${o} ROWS ONLY`;case`fetch`:return`${l} OFFSET ${a} ROWS FETCH FIRST ${o} ROWS ONLY`;default:return`${l} LIMIT ${o} OFFSET ${a}`}}function g(e){return e&&typeof e==`object`&&e.type===`Buffer`&&Array.isArray(e.data)?Uint8Array.from(e.data):e}async function _(e,t,n,r){try{let i=await e(`SELECT COUNT(*) AS n FROM ${t.qualify(n,r)}`,n),a=Number(i.records[0]?.[0]);return Number.isFinite(a)?a:null}catch{return null}}async function v(u,p=()=>{},v){let{source:y,target:b}=u,x=l(y.connectionId),S=l(b.connectionId),C=i(f(y.connectionId)),w=r.getState().activeConnections.find(e=>e.id===y.connectionId),T=r.getState().activeConnections.find(e=>e.id===b.connectionId);if(await m(b)){if(u.onConflict===`abort`)throw new s(n.t(`table.copy.exists`,{table:b.table}));let e=S.getQuery(`DROP_TABLE`,b.database,b.table,``);if(!await t.getState().requestDestructiveConfirm({title:n.t(`table.copy.dropTitle`,{table:b.table}),description:n.t(`table.copy.dropDescription`),typeToConfirm:b.table,statements:[e],confirmLabel:n.t(`table.copy.dropConfirm`)}))throw new s(n.t(`table.copy.cancelled`));await a(b.connectionId,e,{database:b.database,skipDestructiveConfirm:!0})}p({phase:`create`,copied:0,total:null}),await a(b.connectionId,u.createSql,{database:b.database});let E=0;if(u.mode===`structure_data`){p({phase:`count`,copied:0,total:null});let e=await x.introspect.listColumns(C,y.database,y.table),t=e.map(e=>e.name),r=e.filter(e=>e.key===`PRI`).map(e=>e.name);if(r.length===0)try{r=await x.introspect.getPrimaryKeys(C,y.database,y.table)}catch{}let i=await _(C,x,y.database,y.table),o=u.batchSize??d;p({phase:`copy`,copied:0,total:i});for(let e=0;;e+=o){if(v?.aborted)throw new s(n.t(`table.copy.cancelled`));let l=await C(h(x,y.database,y.table,t,r,e,o),y.database);if(l.records.length===0)break;let u=l.fields.map(e=>e.name),d=c(l).map(e=>u.map(t=>g(e[t]))),f=S.ddl.insertRows(b.database,b.table,u,d);if(await a(b.connectionId,f,{database:b.database,skipHistory:!0}),E+=d.length,p({phase:`copy`,copied:E,total:i}),l.records.length<o)break}}return p({phase:`done`,copied:E,total:E}),o(b.connectionId,b.database),e(`table_copy`,{source_dbms:w?.dbms??`unknown`,target_dbms:T?.dbms??`unknown`,mode:u.mode,cross_connection:y.connectionId!==b.connectionId}),{rows:E}}export{v as n,h as r,p as t};
1
+ import{c as e,n as t}from"./ui-store-VGM_km-l.js";import{a as n}from"./i18n-BBZ4HyyF.js";import{t as r}from"./connection-store-Cn79Ey1H.js";import{r as i}from"./database-DT05D7dO.js";import{c as a,d as o,n as s}from"./query-execution-COPkS7hB.js";import{i as c}from"./dbms-Bsjvyvsp.js";import{n as l}from"./engine-tGsnPQEm.js";import{t as u}from"./table-definition-Bs5VSn0X.js";var d=500;function f(e){let t=r.getState().activeConnections.find(t=>t.id===e);if(!t?.serverConnectionId)throw new s(n.t(`services.query.notConnected`));return t.serverConnectionId}async function p(e,t){let r=l(e.connectionId),a=i(f(e.connectionId)),[o,c,d]=await Promise.all([r.introspect.listColumns(a,e.database,e.table),r.introspect.listIndexes(a,e.database,e.table),r.capabilities.tableProperties?r.introspect.getTableInfo(a,e.database,e.table):Promise.resolve(null)]);if(o.length===0)throw new s(n.t(`table.copy.noColumns`));let p=u(t.database,t.table,o,c,d);return l(t.connectionId).capabilities.tableProperties||(p.options={engine:``,charset:``,collation:``,autoIncrement:``,comment:p.options.comment}),p}async function m(e){let t=l(e.connectionId),n=i(f(e.connectionId)),r=await t.introspect.listTables(n,e.database),a=e.table.toLowerCase();return r.some(e=>e.name.toLowerCase()===a)}function h(e,t,n,r,i,a,o){let s=r.map(t=>e.quoteIdentifier(t)).join(`, `),c=i.length>0?i.map(t=>e.quoteIdentifier(t)).join(`, `):`1`,l=`SELECT ${s} FROM ${e.qualify(t,n)} ORDER BY ${c}`;switch(e.syntax.limitStyle){case`top`:return`${l} OFFSET ${a} ROWS FETCH NEXT ${o} ROWS ONLY`;case`fetch`:return`${l} OFFSET ${a} ROWS FETCH FIRST ${o} ROWS ONLY`;default:return`${l} LIMIT ${o} OFFSET ${a}`}}function g(e){return e&&typeof e==`object`&&e.type===`Buffer`&&Array.isArray(e.data)?Uint8Array.from(e.data):e}async function _(e,t,n,r){try{let i=await e(`SELECT COUNT(*) AS n FROM ${t.qualify(n,r)}`,n),a=Number(i.records[0]?.[0]);return Number.isFinite(a)?a:null}catch{return null}}async function v(u,p=()=>{},v){let{source:y,target:b}=u,x=l(y.connectionId),S=l(b.connectionId),C=i(f(y.connectionId)),w=r.getState().activeConnections.find(e=>e.id===y.connectionId),T=r.getState().activeConnections.find(e=>e.id===b.connectionId);if(await m(b)){if(u.onConflict===`abort`)throw new s(n.t(`table.copy.exists`,{table:b.table}));let e=S.getQuery(`DROP_TABLE`,b.database,b.table,``);if(!await t.getState().requestDestructiveConfirm({title:n.t(`table.copy.dropTitle`,{table:b.table}),description:n.t(`table.copy.dropDescription`),typeToConfirm:b.table,statements:[e],confirmLabel:n.t(`table.copy.dropConfirm`)}))throw new s(n.t(`table.copy.cancelled`));await a(b.connectionId,e,{database:b.database,skipDestructiveConfirm:!0})}p({phase:`create`,copied:0,total:null}),await a(b.connectionId,u.createSql,{database:b.database});let E=0;if(u.mode===`structure_data`){p({phase:`count`,copied:0,total:null});let e=await x.introspect.listColumns(C,y.database,y.table),t=e.map(e=>e.name),r=e.filter(e=>e.key===`PRI`).map(e=>e.name);if(r.length===0)try{r=await x.introspect.getPrimaryKeys(C,y.database,y.table)}catch{}let i=await _(C,x,y.database,y.table),o=u.batchSize??d;p({phase:`copy`,copied:0,total:i});for(let e=0;;e+=o){if(v?.aborted)throw new s(n.t(`table.copy.cancelled`));let l=await C(h(x,y.database,y.table,t,r,e,o),y.database);if(l.records.length===0)break;let u=l.fields.map(e=>e.name),d=c(l).map(e=>u.map(t=>g(e[t]))),f=S.ddl.insertRows(b.database,b.table,u,d);if(await a(b.connectionId,f,{database:b.database,skipHistory:!0}),E+=d.length,p({phase:`copy`,copied:E,total:i}),l.records.length<o)break}}return p({phase:`done`,copied:E,total:E}),o(b.connectionId,b.database),e(`table_copy`,{source_dbms:w?.dbms??`unknown`,target_dbms:T?.dbms??`unknown`,mode:u.mode,cross_connection:y.connectionId!==b.connectionId}),{rows:E}}export{v as n,h as r,p as t};
@@ -1 +1 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),u=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var I=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},L={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=L,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.8`})),d=o(((e,t)=>{t.exports=u()})),f=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,p={"&amp;":`&`,"&#38;":`&`,"&lt;":`<`,"&#60;":`<`,"&gt;":`>`,"&#62;":`>`,"&apos;":`'`,"&#39;":`'`,"&quot;":`"`,"&#34;":`"`,"&nbsp;":` `,"&#160;":` `,"&copy;":`©`,"&#169;":`©`,"&reg;":`®`,"&#174;":`®`,"&hellip;":`…`,"&#8230;":`…`,"&#x2F;":`/`,"&#47;":`/`},m=e=>p[e],h=e=>e.replace(f,m),g={bindI18n:`languageChanged`,bindI18nStore:``,transEmptyNodeValue:``,transSupportBasicHtmlNodes:!0,transWrapTextNodes:``,transKeepBasicHtmlNodesFor:[`br`,`strong`,`i`,`p`],useSuspense:!0,unescape:h,transDefaultProps:void 0},_=(e={})=>{g={...g,...e}},v=()=>g,y,b=e=>{y=e},x=()=>y,S=l(d(),1),C=`G-2FYJTCC2TH`,w=!1,T=!1;function E(){let e=typeof document<`u`&&document.querySelector(`meta[name="planche-agent"]`)!==null;return!!C&&typeof window<`u`&&!e}function D(){window.dataLayer=window.dataLayer??[],window.dataLayer.push(arguments)}function O(){if(w)return;w=!0,window.gtag=D,D(`js`,new Date),D(`config`,C,{anonymize_ip:!0,allow_google_signals:!1,allow_ad_personalization_signals:!1,app_version:`0.1.1`});let e=document.createElement(`script`);e.async=!0,e.src=`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(C)}`,document.head.appendChild(e)}function k(e){T=e&&E(),E()&&(window[`ga-disable-${C}`]=!T,T&&O())}function A(e){if(T)try{D(`set`,`user_properties`,e)}catch{}}function j(e){return e===0?`0`:e===1?`1`:e<=3?`2-3`:e<=10?`4-10`:`10+`}function M(e,t={}){if(!T)return;let n={};for(let[e,r]of Object.entries(t))r!==void 0&&(n[e]=r);try{D(`event`,e,n)}catch{}}var N=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},P=(e=>e?N(e):N),F=e=>e;function I(e,t=F){let n=S.useSyncExternalStore(e.subscribe,S.useCallback(()=>t(e.getState()),[e,t]),S.useCallback(()=>t(e.getInitialState()),[e,t]));return S.useDebugValue(n),n}var L=e=>{let t=P(e),n=e=>I(t,e);return Object.assign(n,t),n},R=(e=>e?L(e):L),z=R()((e,t)=>({activeDialog:null,destructiveConfirm:null,dryRun:null,message:null,prompt:null,dialogProps:void 0,footerMessage:``,pendingGridEdits:{},transportVersion:0,isLoading:!1,welcomeVisible:!1,setWelcomeVisible:t=>e({welcomeVisible:t}),progress:0,contextMenu:{visible:!1,x:0,y:0,nodeType:null,nodeId:null},openDialog:(t,...n)=>{M(`dialog_open`,{dialog:t}),e({activeDialog:t,dialogProps:n[0]})},closeDialog:()=>e({activeDialog:null,dialogProps:void 0}),requestDestructiveConfirm:n=>{let r=t().destructiveConfirm;return r?.resolve(!1),new Promise(t=>{e({destructiveConfirm:{id:(r?.id??0)+1,request:n,resolve:t}})})},resolveDestructiveConfirm:n=>{let r=t().destructiveConfirm;r&&(e({destructiveConfirm:null}),r.resolve(n))},requestDryRun:n=>{let r=t().dryRun;return r?.resolve(!1),new Promise(t=>{e({dryRun:{id:(r?.id??0)+1,request:n,resolve:t}})})},resolveDryRun:n=>{let r=t().dryRun;r&&(e({dryRun:null}),r.resolve(n))},showMessage:n=>{let r=t().message;return r?.resolve(),new Promise(t=>{e({message:{id:(r?.id??0)+1,request:n,resolve:t}})})},resolveMessage:()=>{let n=t().message;n&&(e({message:null}),n.resolve())},requestPrompt:n=>{let r=t().prompt;return r?.resolve(null),new Promise(t=>{e({prompt:{id:(r?.id??0)+1,request:n,resolve:t}})})},resolvePrompt:n=>{let r=t().prompt;r&&(e({prompt:null}),r.resolve(n))},setFooterMessage:t=>e({footerMessage:t}),setPendingGridEdits:(t,n)=>e(e=>{if(!!e.pendingGridEdits[t]===n)return{};let r={...e.pendingGridEdits};return n?r[t]=!0:delete r[t],{pendingGridEdits:r}}),bumpTransportVersion:()=>e(e=>({transportVersion:e.transportVersion+1})),setLoading:t=>e({isLoading:t}),setProgress:t=>e({progress:t}),showContextMenu:(t,n,r,i)=>e({contextMenu:{visible:!0,x:t,y:n,nodeType:r,nodeId:i}}),hideContextMenu:()=>e(e=>({contextMenu:{...e.contextMenu,visible:!1}}))}));function B(...e){return z(t=>t.activeDialog&&e.includes(t.activeDialog)?t.dialogProps:void 0)}export{l as _,E as a,M as c,v as d,_ as f,s as g,o as h,j as i,x as l,d as m,z as n,k as o,h as p,R as r,A as s,B as t,b as u};
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),u=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var I=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},L={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=L,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.8`})),d=o(((e,t)=>{t.exports=u()})),f=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,p={"&amp;":`&`,"&#38;":`&`,"&lt;":`<`,"&#60;":`<`,"&gt;":`>`,"&#62;":`>`,"&apos;":`'`,"&#39;":`'`,"&quot;":`"`,"&#34;":`"`,"&nbsp;":` `,"&#160;":` `,"&copy;":`©`,"&#169;":`©`,"&reg;":`®`,"&#174;":`®`,"&hellip;":`…`,"&#8230;":`…`,"&#x2F;":`/`,"&#47;":`/`},m=e=>p[e],h=e=>e.replace(f,m),g={bindI18n:`languageChanged`,bindI18nStore:``,transEmptyNodeValue:``,transSupportBasicHtmlNodes:!0,transWrapTextNodes:``,transKeepBasicHtmlNodesFor:[`br`,`strong`,`i`,`p`],useSuspense:!0,unescape:h,transDefaultProps:void 0},_=(e={})=>{g={...g,...e}},v=()=>g,y,b=e=>{y=e},x=()=>y,S=l(d(),1),C=`G-2FYJTCC2TH`,w=!1,T=!1,E=!1,D=`planche.internalTraffic`;function O(){if(typeof window>`u`)return!1;try{let e=new URLSearchParams(window.location.search).get(`internal`);return e===`1`?localStorage.setItem(D,`1`):e===`0`&&localStorage.removeItem(D),localStorage.getItem(D)===`1`}catch{return!1}}function k(){let e=typeof document<`u`&&document.querySelector(`meta[name="planche-agent"]`)!==null;return!!C&&typeof window<`u`&&!e}function A(){window.dataLayer=window.dataLayer??[],window.dataLayer.push(arguments)}function j(){if(w)return;w=!0,window.gtag=A,A(`js`,new Date),A(`config`,C,{anonymize_ip:!0,allow_google_signals:!1,allow_ad_personalization_signals:!1,app_version:`0.1.1`,...E?{traffic_type:`internal`}:{}});let e=document.createElement(`script`);e.async=!0,e.src=`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(C)}`,document.head.appendChild(e)}function M(e){E=O(),T=e&&k(),k()&&(window[`ga-disable-${C}`]=!T,T&&j())}function N(e){if(T)try{A(`set`,`user_properties`,e)}catch{}}function P(e){return e===0?`0`:e===1?`1`:e<=3?`2-3`:e<=10?`4-10`:`10+`}function F(e,t={}){if(!T)return;let n={};for(let[e,r]of Object.entries(t))r!==void 0&&(n[e]=r);try{A(`event`,e,n)}catch{}}var I=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},L=(e=>e?I(e):I),R=e=>e;function z(e,t=R){let n=S.useSyncExternalStore(e.subscribe,S.useCallback(()=>t(e.getState()),[e,t]),S.useCallback(()=>t(e.getInitialState()),[e,t]));return S.useDebugValue(n),n}var B=e=>{let t=L(e),n=e=>z(t,e);return Object.assign(n,t),n},V=(e=>e?B(e):B),H=V()((e,t)=>({activeDialog:null,destructiveConfirm:null,dryRun:null,message:null,prompt:null,dialogProps:void 0,footerMessage:``,pendingGridEdits:{},transportVersion:0,isLoading:!1,welcomeVisible:!1,setWelcomeVisible:t=>e({welcomeVisible:t}),progress:0,contextMenu:{visible:!1,x:0,y:0,nodeType:null,nodeId:null},openDialog:(t,...n)=>{F(`dialog_open`,{dialog:t}),e({activeDialog:t,dialogProps:n[0]})},closeDialog:()=>e({activeDialog:null,dialogProps:void 0}),requestDestructiveConfirm:n=>{let r=t().destructiveConfirm;return r?.resolve(!1),new Promise(t=>{e({destructiveConfirm:{id:(r?.id??0)+1,request:n,resolve:t}})})},resolveDestructiveConfirm:n=>{let r=t().destructiveConfirm;r&&(e({destructiveConfirm:null}),r.resolve(n))},requestDryRun:n=>{let r=t().dryRun;return r?.resolve(!1),new Promise(t=>{e({dryRun:{id:(r?.id??0)+1,request:n,resolve:t}})})},resolveDryRun:n=>{let r=t().dryRun;r&&(e({dryRun:null}),r.resolve(n))},showMessage:n=>{let r=t().message;return r?.resolve(),new Promise(t=>{e({message:{id:(r?.id??0)+1,request:n,resolve:t}})})},resolveMessage:()=>{let n=t().message;n&&(e({message:null}),n.resolve())},requestPrompt:n=>{let r=t().prompt;return r?.resolve(null),new Promise(t=>{e({prompt:{id:(r?.id??0)+1,request:n,resolve:t}})})},resolvePrompt:n=>{let r=t().prompt;r&&(e({prompt:null}),r.resolve(n))},setFooterMessage:t=>e({footerMessage:t}),setPendingGridEdits:(t,n)=>e(e=>{if(!!e.pendingGridEdits[t]===n)return{};let r={...e.pendingGridEdits};return n?r[t]=!0:delete r[t],{pendingGridEdits:r}}),bumpTransportVersion:()=>e(e=>({transportVersion:e.transportVersion+1})),setLoading:t=>e({isLoading:t}),setProgress:t=>e({progress:t}),showContextMenu:(t,n,r,i)=>e({contextMenu:{visible:!0,x:t,y:n,nodeType:r,nodeId:i}}),hideContextMenu:()=>e(e=>({contextMenu:{...e.contextMenu,visible:!1}}))}));function U(...e){return H(t=>t.activeDialog&&e.includes(t.activeDialog)?t.dialogProps:void 0)}export{l as _,k as a,F as c,v as d,_ as f,s as g,o as h,P as i,x as l,d as m,H as n,M as o,h as p,V as r,N as s,U as t,b as u};
@@ -1 +1 @@
1
- import{t as e}from"./connection-store-B9-4NAfR.js";import{n as t}from"./dbms-Bsjvyvsp.js";function n(n){let r=e(e=>e.activeConnections.find(e=>e.id===n)?.dbms);return t(r)}function r(){let n=e(e=>e.activeConnections.find(t=>t.id===e.activeConnectionId)?.dbms);return t(n)}export{n,r as t};
1
+ import{t as e}from"./connection-store-Cn79Ey1H.js";import{n as t}from"./dbms-Bsjvyvsp.js";function n(n){let r=e(e=>e.activeConnections.find(e=>e.id===n)?.dbms);return t(r)}function r(){let n=e(e=>e.activeConnections.find(t=>t.id===e.activeConnectionId)?.dbms);return t(n)}export{n,r as t};
@@ -1 +1 @@
1
- import{r as e}from"./ui-store-DWSBgCoR.js";var t=(e,t)=>`${t}@${e}`,n=e()(e=>({users:{},selectedUser:{},isLoading:{},setUsers:(t,n)=>e(e=>({users:{...e.users,[t]:n}})),setSelectedUser:(t,n)=>e(e=>({selectedUser:{...e.selectedUser,[t]:n}})),addUser:(t,n)=>e(e=>({users:{...e.users,[t]:[...e.users[t]??[],n]}})),updateUser:(n,r,i,a)=>e(e=>({users:{...e.users,[n]:(e.users[n]??[]).map(e=>t(e.host,e.user)===t(r,i)?{...e,...a}:e)}})),removeUser:(n,r,i)=>e(e=>{let a=e.selectedUser[n],o=a&&t(a.host,a.user)===t(r,i);return{users:{...e.users,[n]:(e.users[n]??[]).filter(e=>t(e.host,e.user)!==t(r,i))},selectedUser:{...e.selectedUser,[n]:o?null:a??null}}}),setLoading:(t,n)=>e(e=>({isLoading:{...e.isLoading,[t]:n}})),clear:t=>e(e=>{let n={...e.users},r={...e.selectedUser};return delete n[t],delete r[t],{users:n,selectedUser:r}})})),r=[];export{n,r as t};
1
+ import{r as e}from"./ui-store-VGM_km-l.js";var t=(e,t)=>`${t}@${e}`,n=e()(e=>({users:{},selectedUser:{},isLoading:{},setUsers:(t,n)=>e(e=>({users:{...e.users,[t]:n}})),setSelectedUser:(t,n)=>e(e=>({selectedUser:{...e.selectedUser,[t]:n}})),addUser:(t,n)=>e(e=>({users:{...e.users,[t]:[...e.users[t]??[],n]}})),updateUser:(n,r,i,a)=>e(e=>({users:{...e.users,[n]:(e.users[n]??[]).map(e=>t(e.host,e.user)===t(r,i)?{...e,...a}:e)}})),removeUser:(n,r,i)=>e(e=>{let a=e.selectedUser[n],o=a&&t(a.host,a.user)===t(r,i);return{users:{...e.users,[n]:(e.users[n]??[]).filter(e=>t(e.host,e.user)!==t(r,i))},selectedUser:{...e.selectedUser,[n]:o?null:a??null}}}),setLoading:(t,n)=>e(e=>({isLoading:{...e.isLoading,[t]:n}})),clear:t=>e(e=>{let n={...e.users},r={...e.selectedUser};return delete n[t],delete r[t],{users:n,selectedUser:r}})})),r=[];export{n,r as t};
@@ -0,0 +1,2 @@
1
+ var e={reconnecting:`正在重新连接…`,dropSqlite:`松开以打开 SQLite 文件`,dropSqliteHint:`通过 WebAssembly 在浏览器中打开,文件不会离开您的电脑。如有 -wal 文件,请一并拖入。`,dropFailedTitle:`无法打开拖入的文件`,dropNotSqlite:`{{name}} 不是 SQLite 数据库文件。`,crashTitle:`出了点问题`,crashBody:`应用遇到了意外错误。重新加载会恢复连接和标签页;未保存的表格编辑将丢失。`,crashReload:`重新加载`},t={auto:`系统语言({{name}})`,en:`English`,ko:`한국어`,zh:`中文(简体)`,ja:`日本語`,de:`Deutsch`,fr:`Français`},n={title:`安全`,description:`防止意外数据丢失的保护措施。只读、环境颜色和事务模式按连接单独设置。`,language:`语言`,languageHint:`立即生效。“系统语言”跟随浏览器设置。`,resetDefaults:`恢复默认值`,done:`完成`,analytics:`分享匿名使用统计`,analyticsHint:`向 Google Analytics 发送匿名使用事件(引擎、功能、语句类型)。绝不发送 SQL 文本、主机名、表名或用户名。`,analyticsUnavailableHint:`此版本未启用(未配置衡量 ID)。`,persistHistory:`重新加载后保留查询历史`,persistHistoryHint:`语句文本保存在此浏览器中(密码字面量会被遮盖;打开的编辑器标签本身始终保留)。关闭后,历史和快照仅保留到标签页关闭。`},r={settings:{safety:`安全…`,language:`语言`,title:`设置`,theme:`主题`},help:{gettingStarted:`快速入门`,about:`关于 Planche`,title:`帮助`,documentation:`文档`,terms:`使用条款`},connection:{title:`连接`,connect:`连接`,disconnect:`断开连接`,readOnly:`只读`,manualTransactions:`手动事务`,saveDatabaseFile:`保存数据库文件`,saveDatabaseFileBlocked:`保存数据库文件(请先加载 -wal)`,exit:`退出`},query:{title:`查询`,execute:`执行`,executeStatementAtCursor:`执行光标处语句`,executeWholeScript:`执行整个脚本`,newQueryTab:`新建查询标签页`,findReplace:`查找和替换`,localHistory:`本地历史记录…`},edit:{title:`编辑`,undo:`撤销`,redo:`重做`,cut:`剪切`,copy:`复制`,paste:`粘贴`,selectAll:`全选`},database:{title:`数据库`,create:`创建数据库`,alter:`修改数据库`,drop:`删除数据库`,copy:`复制数据库`,compare:`比较架构…`,truncate:`清空数据库`,compareData:`比较数据…`},table:{title:`表`,create:`创建表`,alter:`修改表`,drop:`删除表`,rename:`重命名表`,truncate:`清空表`,duplicateStructure:`复制表结构`},export:{title:`导出`,csv:`下载为 CSV`,schemaHtml:`架构导出为 HTML`,links:`导出列链接…`,importLinks:`导入列链接…`},tools:{title:`工具`,userManager:`用户管理`,processList:`进程列表`,variables:`变量`,status:`状态`,flush:`Flush`,quickCommand:`快速命令`,viewErd:`查看 ERD`,scratchpad:`草稿板(浏览器内 SQLite)`,federated:`联合查询(跨连接联接)…`,federatedTab:`联合查询 {{n}}`},messages:{databaseFileSaved:`数据库文件已保存`,databaseExported:`数据库已导出为下载文件`,databaseExportedWithReason:`数据库已导出为下载文件 — {{reason}}`,errorSavingDatabase:`保存数据库时出错:{{message}}`,noDatabaseSelected:`未选择数据库`,noTableSelected:`未选择表`,noActiveConnection:`没有活动连接`,databaseDropped:`数据库“{{database}}”已成功删除`,errorDroppingDatabase:`删除数据库时出错:{{message}}`,noTablesInDatabase:`数据库“{{database}}”中没有表`,databaseTruncated_other:`已成功清空“{{database}}”中的全部 {{count}} 张表`,errorTruncatingDatabase:`清空数据库时出错:{{message}}`,tableDropped:`表“{{table}}”已成功删除`,errorDroppingTable:`删除表时出错:{{message}}`,tableTruncated:`表“{{table}}”已成功清空`,errorTruncatingTable:`清空表时出错:{{message}}`,renameTablePrompt:`将表“{{table}}”重命名为:`,tableRenamed:`表“{{table}}”已成功重命名为“{{newName}}”`,errorRenamingTable:`重命名表时出错:{{message}}`,truncateDatabaseTitle:`清空 "{{name}}" 中的所有表?`,truncateDatabaseDescription:`"{{name}}" 中 {{count}} 个表的所有行将被删除。表结构将保留。此操作无法撤销。`,truncateDatabaseConfirm:`清空所有表`,renameTableTitle:`重命名表`,renameTableConfirm:`重命名`,noLinksToExport:`没有可导出的列链接。`,linksExported:`已导出 {{count}} 个列链接。`,linksImported:`已导入 {{count}} 个列链接。`,linksImportedPartial:`已导入 {{count}} 个列链接;没有匹配的连接配置:{{profiles}}`,linksImportFailed:`无法导入列链接:{{reason}}`}},i={title:`关于 Planche`,tagline:`适用于 MySQL、MariaDB、PostgreSQL 和 SQLite 的数据库客户端。`,version:`版本`,website:`网站`,licenses:`许可证`,licensesLink:`第三方声明`,disclaimer:`Planche 按“原样”提供,不附带任何形式的保证。作者不对因使用本软件造成的任何损害或数据丢失承担责任。执行破坏性语句前请备份数据。`,rights:`保留所有权利。`},a={dialog:{title:`连接到数据库`,firstQueryTab:`查询 1`,colHostName:`主机名称`,colTarget:`目标`,colDbms:`DBMS`,noSaved:`没有已保存的连接`,unnamed:`(未命名)`,pickOnConnect:`(连接时选择)`,noFile:`(无文件)`,selectPrompt:`选择一个连接或新建一个`,addNew:`新建`,delete:`删除`,testConnection:`测试连接`,connect:`连接`,close:`关闭`,unknownError:`未知错误`,browserTestHint:`浏览器内 SQLite 连接会在点击“连接”时打开本地文件。`,testSuccess:`连接成功`,restoredUnsaved:`{{file}}:已从缓存副本恢复未保存的更改`,restoredUnsavedDiskChanged:`{{file}}:已从缓存副本恢复未保存的更改 — 注意,磁盘上的文件此后已发生变化`,walPending:`{{file}} 处于 WAL 模式:最近的更改可能仍在其 -wal 文件中。请使用上方的“加载 -wal 文件”将其包含进来。`,walApplied:`{{file}} 已打开并应用了其 -wal 中的更改`,connectFailedTitle:`连接失败`,testSuccessDescription:`服务器已接受该凭据。`,testFailedTitle:`连接测试失败`,privacy:`您在此输入的任何信息都不会发送到或存储在 planche.dev 的服务器上。连接配置仅保存在此浏览器的本地存储中;查询由本地代理直接发送到您的数据库。`,hostKeyTitle:`未知的 SSH 主机密钥`,hostKeyDescription:`{{host}}:{{port}} 出示了指纹为 {{fingerprint}} 的 {{type}} 密钥。请与服务器管理员提供的指纹核对;接受错误的密钥会让攻击者读取您的流量。`,hostKeyAccept:`信任此主机`,gatewayTitle:`网关配置`,gatewayAdd:`添加`,gatewayAdded:`已添加网关配置 {{name}}。`,gatewayReadOnly:`只读`,gatewayWritable:`可写`,gatewayProfileHint:`此连接使用网关保存的配置“{{name}}”,这里无需设置。`,gatewayLoadFailed:`无法加载网关配置:{{error}}`},form:{hostName:`主机名称`,hostNamePlaceholder:`我的连接`,dataSource:`数据源`,openVia:`打开方式`,viaBrowser:`浏览器(本地文件)`,viaAgent:`本地代理`,viaBrowserHint:`无需安装。最适合没有其他程序在使用的文件:浏览器在内存副本上工作,无法锁定文件,因此在打开期间其他程序所做的修改不会被看到,保存时会将其覆盖。`,viaAgentHint:`通过 npx planche 用 SQLite 本身打开文件 — 具备正确的锁定和 WAL 支持,可与使用同一数据库的其他程序安全共存。`,databaseFile:`数据库文件`,changeFile:`更改文件`,filePickerHint:`点击“连接”时会打开文件选择器(提示:⌘⇧. 显示隐藏文件,⌘⇧G 可输入路径)。`,fileRememberedHint:`所选文件会被记住(Chromium),重新连接时只需再次授权。使用“连接 > 保存数据库文件”将更改写回。`,authToken:`认证令牌`,authTokenPlaceholder:`留空则使用已配对的代理令牌`,filePathPlaceholder:`/path/to/database.sqlite 或 :memory:`,createIfMissing:`不存在时创建`,createIfMissingHint:`路径在隧道服务器主机上解析`,host:`主机`,port:`端口`,database:`数据库`,serviceName:`服务名`,user:`用户`,password:`密码`,savePassword:`保存密码`,savePasswordHint:`关闭:密码仅在本次浏览器会话中保留,绝不写入磁盘。`,charset:`字符集`,autoConnection:`自动连接`,safety:`安全`,environment:`环境`,environmentHint:`为标签页和工作区着色`,readOnly:`只读`,readOnlyHint:`拒绝修改数据或架构的语句`,transactions:`事务`,txAuto:`自动提交`,txManual:`手动 — 在工具栏中提交 / 回滚`,ssh:`SSH`,sshTunnel:`SSH 隧道`,sshTunnelHint:`通过 SSH 跳板机连接数据库(由本地代理建立隧道)`,sshHost:`SSH 主机`,sshPort:`SSH 端口`,sshUser:`SSH 用户`,sshAuth:`SSH 认证`,sshAuthKey:`私钥`,sshAuthPassword:`密码`,sshAuthAgent:`ssh-agent`,sshAuthAgentHint:`使用运行 npx planche 的机器上 ssh-agent 中加载的密钥(SSH_AUTH_SOCK)。`,sshPassword:`SSH 密码`,sshKey:`私钥`,sshKeyPick:`选择密钥文件…`,sshKeyLoaded:`已加载密钥`,sshKeyHint:`留空则使用代理机器上 ~/.ssh/config 的 IdentityFile(或 ~/.ssh/id_*);选择的密钥随此配置一起保存`,sshPassphrase:`密码短语`,sshPassphrasePlaceholder:`密钥没有密码短语时留空`,sshSecretsHint:`SSH 密码、私钥和口令遵循上方的“保存密码”设置。未知的主机密钥会在首次连接前显示供您核对,并保存到代理所在机器的 ~/.planche/known_hosts。`,sshHostPlaceholder:`bastion.example.com 或 ~/.ssh/config 中的 Host 别名`,sshUserPlaceholder:`留空则使用 ~/.ssh/config 中的 User`,sshTargetHint:`数据库主机/端口在跳板机上解析——请填写数据库的真实地址(如 RDS 端点),而不是 localhost 或本地端口转发。`,connectionString:`连接字符串`,connectionStringApplied:`已填入下方字段。字符串本身不会保存,只保存字段。`,connectionStringInvalid:`不是 PostgreSQL URI(应为 postgresql://user:password@host/database)。`,neonHint:`粘贴 Neon 控制台(Connect > Connection string)中的 URI,下方字段将自动填写。`,supabaseHint:`粘贴 Supabase(Connect > Session pooler 或 Direct connection)中的 URI,下方字段将自动填写。`,supabasePoolerWarning:`端口 6543 是事务模式连接池:每条语句可能在不同的后端执行,因此切换模式、临时表、预处理语句和手动事务都无法使用。请改用会话连接池(端口 5432)或直接连接。`,managedTlsHint:`此服务始终使用 TLS 连接,由本地代理直接连接到服务(不经过 SSH 隧道)。`,d1AccountId:`Account ID`,d1DatabaseId:`Database ID`,d1ApiToken:`API 令牌`,d1Hint:`Account ID:Cloudflare 控制台账户首页右侧。Database ID:Storage & Databases > D1 > 你的数据库。令牌:My Profile > API Tokens > Create Token,授予 "D1 Edit" 权限(只读用 "D1 Read")。本地代理用它调用 Cloudflare API。`,d1LimitsHint:`D1 每个请求独立执行并自动提交,因此无法使用手动事务;数据库显示为单一模式 "main"。`,tls:`TLS`,tlsEnable:`加密连接`,tlsVerify:`验证服务器证书`,tlsVerifyHint:`关闭时接受自签名证书(已加密但不验证服务器身份)。通过 SSH 隧道时不可用。`},agent:{copy:`复制`,looking:`正在查找 Planche 代理…`,online:`代理 <b>v{{version}}</b> 正在 <mono>{{url}}</mono> 运行`,outdated:`代理 v{{version}} 使用协议 {{protocol}},但此应用需要更新的版本。请使用 <cmd/> 重新启动`,unauthorized:`代理 <b>v{{version}}</b> 正在 <mono>{{url}}</mono> 运行,但此应用尚未与其配对(令牌每次启动都会变化)。请打开代理终端中打印的链接,或在“配置”中粘贴令牌。`,offline:`<mono>{{url}}</mono> 上没有代理。请在终端中运行 <cmd/> — 它会打开已配对的此应用。`,close:`关闭`,configure:`配置`,checkAgain:`重新检查`,urlLabel:`代理 URL`,urlPlaceholder:`http://127.0.0.1:8888(默认)`,tokenLabel:`令牌`,tokenPlaceholder:`由代理打印`,reset:`重置`,save:`保存`,remoteWarning:`此代理不在您的电脑上({{host}}):每个连接的密码和 SSH 密钥都会发送到那里。`,remoteRefusedTitle:`不允许使用远程代理`,remoteRefused:"代理必须在本机(127.0.0.1 或 localhost)运行。要使用另一台机器上的代理,请用 `ssh -L 8888:127.0.0.1:8888 user@host` 转发端口,并保持 URL 为 http://127.0.0.1:8888。",gateway:`网关“{{name}}”:{{count}} 个服务端配置。凭据只保存在网关上;请在下方选择配置。`},tab:{noConnections:`没有打开的连接。点击“连接”开始。`,theSqliteFile:`该 SQLite 文件`,reopened:`已重新打开 {{file}}`,reopenFailed:`无法重新打开文件:{{message}}`,reopenPrompt:`浏览器需要再次获得您的授权才能读取 <b>{{file}}</b>。`,reopenFile:`重新打开文件`,closeConnection:`关闭连接`,reconnected:`已重新连接 {{file}}`,accessNotGranted:`未授予文件访问权限;保存时将改为导出下载文件。`,detachedPrompt:`正在处理 <b>{{file}}</b> 的缓存副本。请重新连接文件以就地保存更改。`,reconnectFile:`重新连接文件`,detachedHide:`隐藏(保存时会在需要时请求文件)`,walFramesApplied_other:`已从 {{file}}-wal 应用 {{count}} 个 WAL 帧`,walNoChanges:`-wal 文件中没有已提交的更改`,walLoadFailed:`无法加载 -wal 文件:{{message}}`,walPrompt:`<b>{{file}}</b> 处于 WAL 模式:在加载其 <mono>{{file}}-wal</mono> 文件之前可能无法显示最新数据,并且在此之前无法保存。如果旁边没有该文件(数据库已正常关闭),请改为确认这一点。如果其他程序仍在使用此数据库,请改为通过本地代理(<mono>npx planche</mono>)打开:浏览器无法安全地共享该文件。`,loadWal:`加载 -wal 文件`,noWalHint:`我已确认:数据库旁边没有 -wal 文件`,noWal:`没有 -wal 文件`,dismiss:`关闭`,walHide:`隐藏(仍然无法保存)`,readOnlyBadge:`只读`}},o={connect:`连接 (Alt+N)`,disconnect:`断开连接`,newQueryTab:`新建查询标签页 (Alt+T)`,execute:`执行 (F9)`,executeStatement:`执行光标处 / 选中的语句 (Ctrl+Enter)`,commit:`提交`,commitHint:`提交当前打开的事务`,noOpenTransaction:`没有打开的事务`,rollback:`回滚`,rollbackHint:`放弃当前打开的事务`,readOnlyBadge:`只读`,readOnlyHint:`此连接拒绝修改数据或架构的语句`,userManager:`用户管理 (Alt+U)`,quickCommand:`快速命令`,processList:`进程列表`,variables:`变量`,status:`状态`,flush:`Flush`,fullscreen:`全屏`},s={readOnly:`只读`,txOpen:`事务进行中`,manualTx:`手动事务`},c={title:`快速命令`,description:`搜索要运行的命令...`,inputPlaceholder:`输入命令或搜索...`,empty:`未找到命令。`,groups:{connection:`连接`,query:`查询`,database:`数据库`,table:`表`,tools:`工具`},commands:{connect:`连接`,disconnect:`断开连接`,executeQuery:`执行查询`,newQueryTab:`新建查询标签页`,createDatabase:`创建数据库`,dropDatabase:`删除数据库`,createTable:`创建表`,alterTable:`修改表`,dropTable:`删除表`,processList:`进程列表`,serverVariables:`服务器变量`,serverStatus:`服务器状态`,flush:`Flush`,userManager:`用户管理`}},l={title:`欢迎使用 Planche`,intro:`一个在浏览器中运行的 SQL 客户端。通过您机器上的一个小型代理访问数据库,因此凭据和数据绝不会离开您的电脑。`,skip:`跳过`,skipTitle:`隐藏此页面(可通过“帮助 > 快速入门”重新打开)`,copy:`复制`,copied:`已复制`,sampleOpenFailed:`无法打开示例数据库:{{message}}`,steps:{agent:{title:`运行本地代理`,body:`在终端(Node.js 22 或更高版本)中运行一次此命令。它会启动代理并与此页面配对。`},connection:{title:`添加连接`,body:`选择您的数据库,以合适的默认值打开连接表单。`},sample:{title:`手边没有数据库?试试示例`,body:`将一个示例网店数据库(24 张表、约 5 万行、视图和触发器)加载到浏览器中,体验编辑器、数据网格和架构树。`,loading:`正在加载示例…`,button:`试用示例数据库`}},terms:{title:`开始之前`,local:`一切都在本地运行:凭据、查询和结果只保留在您的计算机上,绝不会发送给我们。`,asIs:`Planche 按“原样”提供,不作任何保证。安全措施(危险操作确认、只读模式)只是便利功能,并非保证。`,dataLoss:`通过 Planche 执行的每条语句均由您自行负责。执行任何破坏性操作前请先备份数据。`,agree:`我已阅读并同意使用条款。`,accepted:`您已接受使用条款。`,readFull:`阅读完整条款`}},u={treeLabel:`架构`,unreachableHint:`不是此连接绑定的数据库;请为其创建一个配置文件以进行浏览`,objectType:{table:`表`,view:`视图`,procedure:`存储过程`,function:`函数`,trigger:`触发器`,event:`事件`},menu:{showCreate:`显示{{type}}的 CREATE 语句`,alter:`修改{{type}}`,drop:`删除{{type}}`,create:`创建{{type}}`,refresh:`刷新`,unreachable:`请使用绑定到此数据库的配置文件连接以进行浏览`,openDatabase:`打开数据库`,createSchema:`创建架构`,createTable:`创建表`,dropDatabase:`删除数据库`,openSchema:`打开架构`,dropSchema:`删除架构`,newQueryTab:`新建查询标签`,generateSql:`生成 SQL`,openTable:`打开表`,alterTable:`修改表`,showCreateTable:`显示表的 CREATE 语句`,duplicateStructure:`复制结构`,copyTable:`复制表到其他位置…`,compare:`比较{{type}}…`,truncateTable:`清空表`,dropTable:`删除表`,exportCsv:`导出为 CSV`,openView:`打开视图`,alterView:`修改视图`,showCreateView:`显示视图的 CREATE 语句`,dropView:`删除视图`,compareData:`比较数据…`},actions:{createStatementUnavailable:`-- 无法获取{{type}} {{name}} 的 CREATE 语句`,getCreateFailed:`获取 CREATE {{type}} 失败:{{message}}`,createTabTitle:`创建{{type}}`,createSchemaTabTitle:`创建架构`,generateSqlFailed:`无法生成 SQL:{{message}}`,dropTableTitle:`删除表“{{name}}”?`,dropTableDescription:`这将永久删除{{from}}该表及其所有行。此操作无法撤销。`,dropTableConfirm:`删除表`,dropObjectTitle:`删除{{type}}“{{name}}”?`,dropObjectDescription:`该{{type}}的定义将被{{from}}移除。此操作无法撤销。`,dropObjectConfirm:`删除{{type}}`,fromDatabase:`从数据库“{{database}}”`,dropped:`已删除{{type}} {{name}}`,dropFailed:`删除{{type}}失败`,dropDatabaseTitle:`删除数据库“{{name}}”?`,dropDatabaseDescription:`这将永久删除该数据库及其所有表和数据。此操作无法撤销。`,dropDatabaseConfirm:`删除数据库`,droppedDatabase:`已删除数据库 {{name}}`,dropDatabaseFailed:`删除数据库失败`,dropSchemaTitle:`删除架构“{{name}}”?`,dropSchemaDescription:`这将永久删除该架构及其所有表和数据。此操作无法撤销。`,dropSchemaConfirm:`删除架构`,droppedSchema:`已删除架构 {{name}}`,dropSchemaFailed:`删除架构失败`,truncateTitle:`清空表“{{name}}”?`,truncateDescription:`“{{name}}”中的所有行都将被删除。表结构将保留。此操作无法撤销。`,truncateConfirm:`清空表`,truncated:`已清空 {{name}}`,truncateFailed:`清空失败`},tree:{loadDatabasesFailed:`加载数据库失败:{{message}}`}},d={editor:{destructiveMarker:`破坏性操作:{{action}} {{names}}`,readOnlyMarker:`连接为只读;此语句会修改数据或架构`,actionExecute:`执行(按设置)`,actionExecuteStatement:`执行光标处 / 选中的语句`,actionExecuteScript:`执行整个脚本`},tabs:{newQuery:`新建查询`,queryTitle:`查询 {{n}}`,erdViewer:`ERD 查看器`,close:`关闭`,closeOthers:`关闭其他`,closeLeft:`关闭左侧标签页`,closeRight:`关闭右侧标签页`,closeAll:`全部关闭`},executor:{noActiveConnection:`没有活动连接`,uncommittedTitle:`未提交的事务`,uncommittedDescription:`此连接有一个打开的事务。断开连接将回滚其更改。`,uncommittedConfirm:`回滚并断开连接`,unsavedTitle:`未保存的更改`,unsavedDescription:`{{file}} 有尚未保存到文件的更改。断开连接将丢弃这些更改(请先使用“连接 > 保存数据库文件”保留它们)。`,theSqliteDatabase:`该 SQLite 数据库`,unsavedConfirm:`丢弃并断开连接`}},f={tabs:{message:`消息`,info:`信息`,history:`历史记录`,result:`结果`,resultN:`结果 {{n}}`},message:{executing:`正在执行查询...`,error:`错误:{{message}}`,total:`(总计:{{ms}}ms)`,ready:`就绪。`,log:`执行日志`,statementN:`语句 {{n}}`,limitedBadge:`已达上限`,insertId:`insert id {{id}}`,failed:`失败`,failedStatement:`失败的语句`,summary:`成功 {{ok}} · 失败 {{failed}} · 共 {{ms}}`,copy:`复制`,copied:`已复制`,showSql:`显示 SQL`,hideSql:`隐藏 SQL`},info:{empty:`没有可用的查询信息。`,resultN:`结果 {{n}}`,metadata:`查询元数据`,executionTime:`执行时间`,notAvailable:`不适用`,affectedRows:`受影响的行数`,fields:`字段`,fieldDetails:`字段详情`,colName:`名称`,colType:`类型`,colTable:`表`,resultSets:`结果集`,rowsReturned:`返回行数`,insertId:`最后插入 ID`,lastQuery:`最后执行的语句`,copy:`复制`,copied:`已复制`,colOrigin:`原始名称`,primaryKey:`主键`,rowsAndFields:`{{rows}} 行 × {{fields}} 列`,noFields:`此语句未返回任何列。`},rowForm:{colColumn:`列`,colValue:`值`,insertTitle:`插入行`,editTitle:`编辑行`,loading:`正在加载列信息...`,preview:`将执行的语句`,nothingToWrite:`没有要写入的内容`,insert:`插入`,update:`更新`,stageInsert:`添加为待提交行`,stageEdit:`应用到网格`,stageHint:`不执行,仅把值放入网格,稍后与其他修改一起提交。`,inserted:`已向 {{table}} 插入一行`,updated:`已更新 {{table}} 中的一行`,confirmInsertTitle:`向 {{table}} 插入一行?`,confirmUpdateTitle:`更新 {{table}} 中的一行?`,inTransaction:`在已打开的事务中执行`,pickDate:`选择日期`,now:`当前时间`,formatJson:`格式化`,binaryUnsupported:`二进制列无法在此编辑;请保留 NULL/DEFAULT 或用 SQL 设置。`,generateUuid:`生成 UUID`,defaultValue:`默认值`,clickToChange:`点击修改`,empty:`(空)`,autoHint:`由服务器自动生成`,mode:{keep:`保留`,auto:`自动`,value:`值`},invalid:{integer:`请输入整数`,unsigned:`此列不接受负数`,number:`请输入数字`,json:`无效的 JSON`,date:`请使用 YYYY-MM-DD`,datetime:`请使用 YYYY-MM-DD HH:MM:SS`,time:`请使用 HH:MM:SS`,length:`最多 {{max}} 个字符`}},history:{copied:`已复制到剪贴板`,searchPlaceholder:`搜索历史...`,all:`全部`,success:`成功`,failed:`失败`,thisTab:`仅当前标签`,noMatch:`没有匹配的记录。`,count:`{{count}} 条`,clear:`清除`,clearTitle:`清除查询历史?`,clearDescription:`将删除此连接的全部 {{count}} 条记录。此操作无法撤销。`,clearConfirm:`清除历史`,insert:`插入编辑器`,inserted:`已插入编辑器`,copy:`复制`,rows:`{{count}} 行`,affected:`影响 {{count}} 行`,today:`今天`,yesterday:`昨天`,empty:`没有查询历史记录。`},json:{arrayLength:`Array[{{count}}]`,keys_other:`{{count}} 个键`,invalid:`无效的 JSON`,clickToView:`点击查看 JSON`,expandAll:`全部展开`,collapseAll:`全部折叠`,edit:`编辑`,view:`查看`,copied:`已复制`,copy:`复制`,shortcutHint:`{{mod}}+Enter 保存 · Esc 取消`,cancel:`取消`,save:`保存`},grid:{readOnlyConnection:`只读连接`,readOnlyWal:`只读:未加载 -wal 文件`,readOnlyNoPk:`只读:表没有主键`,commitTitle:`将 {{count}} 处更改提交到 {{table}}?`,commitDescription:`将执行以下语句。`,commitConfirm:`提交`,rowPrefix:`第 {{row}} 行:`,cancelled:`已取消`,commitFailed:`提交失败:{{message}}`,executedInTransaction:`已在打开的事务中执行 {{count}} 处更改 — 请在工具栏中点击“提交”使其永久生效(重新加载会回滚这些更改)`,committed:`已将 {{count}} 处更改提交到 {{table}}`,noData:`没有可显示的数据。`,commit:`提交`,discard:`放弃`,addRow:`添加行`,removeNewRow:`取消此新行`,addRowForm:`用表单添加`,addRowFormHint:`打开每列一个输入框的表单(以 INSERT 提交)`,editRowForm:`用表单编辑此行`,addRowHint:`添加新行(以 INSERT 提交)`,delete:`删除`,deleteCount:`删除({{count}})`,deleteHint:`删除选中的行(以 DELETE 提交)。请通过行号列选择行。`,field:`字段`,searchPlaceholder:`搜索...`,orderBy:`排序依据`,none:`无`,refresh:`刷新`,dismiss:`关闭`,clearSelection:`清除选择`,columns:`列`,showAllColumns:`全部显示`,hideAllColumns:`全部隐藏`,resetWidths:`重置列宽`,selectAll:`选择所有行`,emptyTable:`此表没有行。`,noRows:`未返回任何行。`,addARow:`添加一行`,markedForDeletion:`已标记为删除 — 点击恢复`,newRow:`新行`,clickToSelect:`点击选择;按住 Shift/Ctrl 可多选`,rows:`行数:{{count}}`,rowsWithNew:`行数:{{count}}(+{{added}})`,sortedBy:`排序:{{column}} {{direction}}`,pageRange:`第 {{from}}–{{to}} 行`,prevPage:`上一页`,nextPage:`下一页`,pagingBlocked:`翻页前请提交或放弃更改`,selected:`已选择 {{count}} 项`,cellsModified:`已修改 {{count}} 个单元格`,newCount:`新增 {{count}}`,toDelete:`待删除 {{count}}`,searchMode:`匹配方式`,contains:`包含`,equals:`等于`,followLink:`打开 {{table}},其中 {{column}} = 值`,linkColumn:`将“{{column}}”链接到其他表…`,editLink:`编辑“{{column}}”的链接…`,removeLink:`移除链接`,copyValue:`复制值`,filterByValue:`筛选:{{column}} = 此值`,clearFilter:`清除筛选`,copyColumnName:`复制列名`,editCell:`编辑单元格`,setNull:`设为 NULL`,setEmpty:`设为空字符串`,restoreRow:`恢复行`,hideColumn:`隐藏列“{{column}}”`,copyRowsTsv_other:`复制 {{count}} 行为 TSV(含表头)`,copyRowsCsv_other:`复制 {{count}} 行为 CSV`,copyRowsJson_other:`复制 {{count}} 行为 JSON`,copyRowsInsert_other:`复制 {{count}} 行为 INSERT 语句`,deleteRowsPending_other:`删除 {{count}} 行(提交前挂起)`,sendRowsToScratchpad_other:`将 {{count}} 行发送到草稿板`,sendAllToScratchpad:`将已加载的全部 {{count}} 行发送到草稿板`,sentToScratchpad:`已将 {{count}} 行复制到草稿板表 {{table}}。`,changesSince:`自上次加载:更改 {{changed}} · 新增 {{added}} · 消失 {{gone}}`,changesToggle:`切换高亮显示自上次加载以来的变化`,changesDismiss:`清除这些变化`,previousValue:`之前的值:{{value}}`},link:{title:`将列链接到其他表`,source:`列`,hint:`该列的值将变成链接:点击后会打开目标表并筛选出匹配的行。真实的外键会自动链接。`,targetDatabase:`目标数据库`,targetTable:`目标表`,targetColumn:`目标列`,pickTable:`选择表`,pickColumn:`选择列`,remove:`移除链接`,cancel:`取消`,save:`保存链接`,targetConnection:`目标连接`,targetNotConnected:`链接的连接未打开。请先连接。`}},p={defaultDescription:`此操作无法撤销。`,typeToConfirm:`输入 <name/> 以确认`,cancel:`取消`,confirm:`确认`,ok:`确定`},m={dialog:{createTitle:`创建表`,alterTitle:`修改表`,duplicateTitle:`复制表结构`,create:`创建`,alter:`修改`,cancel:`取消`,tableName:`表名`,tableNamePlaceholder:`输入表名...`,loading:`正在加载表架构...`,tabSchema:`架构`,tabIndexes:`索引`,tabProperties:`属性`},schema:{colField:`字段名`,colType:`数据类型`,colLength:`长度`,colDefault:`默认值`,colPk:`主键`,colNotNull:`非空`,colUnsigned:`无符号`,colAutoIncrement:`自增`,colZerofill:`零填充`,colComment:`注释`,empty:`未定义任何列。点击“添加列”添加一列。`,add:`添加列`,remove:`移除列`},indexes:{colName:`索引名`,colType:`索引类型`,colColumns:`列`,empty:`未定义任何索引。点击“添加索引”添加一个。`,add:`添加索引`,remove:`移除索引`},index:{addTitle:`添加索引`,editTitle:`编辑索引`,name:`索引名`,namePlaceholder:`输入索引名`,type:`索引类型`,columns:`列`,noColumns:`没有可用的列。请先在“架构”标签页中定义列。`,unnamed:`(未命名)`,cancel:`取消`,ok:`确定`},properties:{engine:`引擎`,charset:`字符集`,collation:`排序规则`,autoIncrement:`自增值`,autoIncrementPlaceholder:`默认`,comment:`注释`},info:{engine:`引擎`,version:`版本`,rowFormat:`行格式`,rows:`行数`,avgRowLength:`平均行长度`,dataLength:`数据长度`,createTime:`创建时间`,updateTime:`更新时间`,collation:`排序规则`,comment:`注释`},copy:{title:`复制表`,source:`源`,targetConnection:`目标连接`,targetDatabase:`目标数据库`,targetTable:`目标表名`,what:`复制内容`,structureAndData:`结构和数据`,structureOnly:`仅结构`,ifExists:`目标表已存在时`,abort:`中止(默认)`,dropAndRecreate:`删除并重建(需重新输入名称确认)`,preview:`在目标上执行的 CREATE TABLE(可编辑)`,crossEngineHint:`目标是 {{engine}}:请检查下方的类型,MySQL 专有属性已被移除。`,readOnly:`只读`,loading:`加载中…`,progressCreate:`正在创建表…`,progressCount:`正在统计行数…`,progressRows:`已复制 {{copied}} / {{total}} 行`,progressDone:`完成`,doneTitle:`表已复制`,doneRows:`已将 {{count}} 行复制到 {{table}}。`,doneStructure:`已创建 {{table}} 的结构。`,noColumns:`源表没有列。`,exists:`目标中已存在表 {{table}}。请换一个名称或选择“删除并重建”。`,dropTitle:`删除现有表 {{table}}?`,dropDescription:`复制前将删除目标表及其全部行。此操作无法撤销。`,dropConfirm:`删除并复制`,cancelled:`复制已取消。`,stop:`停止`,cancel:`取消`,copy:`复制`}},h={copy:{title:`复制数据库`,source:`源数据库`,target:`目标数据库名`,targetPlaceholder:`输入目标数据库名`,options:`选项`,structureAndData:`结构和数据`,structureOnly:`仅结构`,cancel:`取消`,copy:`复制`},diff:{title:`比较架构`,source:`源`,target:`目标`,pickConnection:`连接`,pickDatabase:`数据库`,crossEngineHint:`引擎不同:类型名称因方言而异,大多数列会显示为类型变更。`,sameSide:`源和目标是同一个数据库。`,summary:`已更改 {{changed}},目标缺少 {{missingTarget}},仅目标有 {{missingSource}},相同 {{identical}}`,showIdentical:`显示相同的表`,identicalAll:`表完全相同。`,column:`列`,index:`索引`,object:`对象`,selectTable:`选择一个表以查看差异。`,missingInTarget:`目标中不存在 {{table}};脚本将创建它。`,missingInSource:`{{table}} 仅存在于目标中;脚本将删除它(除非包含 DROP,否则为注释)。`,includeDrops:`将 DROP 语句作为可执行 SQL 包含(默认:注释掉)`,tabTitle:`同步 {{database}}`,close:`关闭`,compare:`比较`,comparing:`比较中…`,openScript:`在编辑器中打开脚本`,noDefinition:`无法获取 CREATE 语句`},create:{title:`创建数据库`,name:`数据库名`,namePlaceholder:`输入数据库名`,charset:`字符集`,collation:`排序规则`,cancel:`取消`,create:`创建`},csv:{title:`下载为 CSV`,target:`目标`,targetQueryResult:`当前查询结果`,targetTableData:`表数据`,tableName:`表名`,tableNamePlaceholder:`输入表名`,delimiter:`分隔符`,delimiterComma:`逗号 (,)`,delimiterTab:`制表符 (\\t)`,delimiterSemicolon:`分号 (;)`,delimiterPipe:`竖线 (|)`,includeHeaders:`包含表头`,cancel:`取消`,download:`下载`,downloading:`正在下载...`,progress:`已写入 {{loaded}} / {{total}} 行`,progressUnknown:`已写入 {{loaded}} 行`,stop:`停止`,done:`已将 {{table}} 的 {{count}} 行导出为 CSV。`,database:`数据库`,databasePlaceholder:`选择数据库`},html:{title:`架构导出为 HTML`,database:`数据库`,selectDatabase:`选择数据库`,tables:`要包含的表`,selectAll:`全选`,deselectAll:`全不选`,noTables:`没有可用的表。`,include:`包含`,includeColumns:`列`,includeIndexes:`索引`,includeProperties:`属性`,cancel:`取消`,generate:`生成`,generating:`正在生成...`,sectionColumns:`列`,sectionIndexes:`索引`,sectionProperties:`属性`,docTitle:`架构:{{database}}`,heading:`数据库:{{database}}`,summary:`表数:{{count}} | 生成时间:{{date}}`,footer:`由 Planche 2026 生成`},dataDiff:{title:`比较数据`,pickTable:`表`,hint:`按源表主键匹配行,并以文本形式比较值。每侧最多加载 {{cap}} 行;大表请先用筛选缩小范围。`,sameSide:`源和目标是同一张表。`,noPrimaryKey:`{{table}} 没有主键,无法匹配行。`,keyMissingInTarget:`目标表缺少键列:{{columns}}`,summary:`键:{{key}} — 目标缺少 {{added}},不同 {{changed}},仅目标有 {{removed}},相同 {{identical}}`,capped:`两侧都只比较了前 {{cap}} 行。`,ignoredColumns:`忽略的列(仅一侧存在):{{columns}}`,added_other:`目标缺少 {{count}}`,changed_other:`不同 {{count}}`,removed_other:`仅目标有 {{count}}`,none:`此分组中没有内容。`,more:`… 还有 {{count}} 条未列出`,includeDeletes:`将 DELETE 语句作为可执行 SQL 包含(默认:注释掉)`,tabTitle:`同步数据 {{table}}`,loading:`正在加载行——源:{{source}},目标:{{target}}`}},g={manager:{title:`用户管理`,addUser:`添加用户`,removeUser:`移除用户`,noUsers:`未加载用户`,grantScope:`授权范围`,apply:`应用`,close:`关闭`,removed:`用户 '{{user}}'@'{{host}}' 已移除`,selectUserFirst:`请先选择一个用户`,applied:`更改已成功应用`},add:{title:`添加用户`,username:`用户名`,usernamePlaceholder:`输入用户名`,host:`主机`,password:`密码`,passwordPlaceholder:`输入密码`,confirmPassword:`确认密码`,confirmPasswordPlaceholder:`再次输入密码`,plugin:`插件`,cancel:`取消`,add:`添加`,usernameRequired:`用户名为必填项`,passwordMismatch:`两次输入的密码不一致`,added:`用户 '{{user}}'@'{{host}}' 已添加`},privileges:{globalTitle:`全局权限`,databaseTitle:`数据库权限`,tableTitle:`表权限`,checkAll:`全选`,uncheckAll:`全不选`,categoryData:`数据`,categoryStructure:`结构`,categoryAdministration:`管理`},grantTree:{globalPrivileges:`全局权限`}},_={close:`关闭`,noActiveConnection:`没有活动连接`,variableName:`变量名`,value:`值`,scope:{session:`会话`,global:`全局`},findReplace:{findPlaceholder:`查找`,replacePlaceholder:`替换`,found:`找到 {{count}} 处`,noResults:`无结果`,previous:`上一个`,next:`下一个`,close:`关闭`,replace:`替换`,all:`全部`,caseSensitive:`区分大小写`,regex:`正则表达式`,wholeWord:`全字匹配`},flush:{title:`Flush`,executed:`已执行:{{command}}`,executeError:`执行 {{command}} 时出错:{{message}}`},localHistory:{title:`本地历史记录`,description:`此标签页在每次运行前以及被模板覆盖前捕获的版本。`,empty:`此标签页暂无历史记录。`,restored:`已从本地历史记录恢复编辑器内容`,restore:`恢复此版本`,chars:`{{count}} 个字符`,reason:{execute:`运行前`,replaced:`覆盖前`,restore:`恢复前`}},processList:{title:`进程列表`,refresh:`刷新`,autoRefresh:`自动刷新`,empty:`没有可显示的进程`,kill:`终止`,killProcess:`终止进程`,selectToKill:`请选择要终止的进程`,killed:`进程 {{id}} 已成功终止`,killError:`终止进程时出错:{{message}}`,loadError:`加载进程列表时出错:{{message}}`,updatedAt:`{{time}} 更新`,filterPlaceholder:`按用户、主机、数据库、SQL 筛选...`,hideIdle:`隐藏空闲`,noMatch:`没有符合筛选条件的进程`,self:`本会话`,selfHint:`这是 Planche 自身的会话`,statementOf:`#{{id}} 的语句`,noStatement:`无正在执行的语句`,copy:`复制`,copied:`已复制`,killConfirmTitle:`终止进程 {{id}}?`,killConfirmDescription:`{{user}}@{{host}} 的会话将被终止,正在执行的语句将被中止。未提交的事务将回滚。`,stats:{total:`总计`,active:`活动`,idle:`空闲`,longest:`最长运行`},columns:{id:`Id`,user:`用户`,host:`主机`,db:`db`,command:`命令`,time:`时间`,state:`状态`,info:`信息`,action:`操作`}},status:{title:`服务器状态`,filterPlaceholder:`筛选状态变量...`,empty:`没有可显示的状态变量`,loadError:`加载状态时出错:{{message}}`},variables:{title:`服务器变量`,filterPlaceholder:`筛选变量...`,empty:`没有可显示的变量`,loadError:`加载变量时出错:{{message}}`}},v={empty:{title:`打开 Prisma 架构文件(.prisma)以查看 ERD`,description:`将自动分析模型、枚举和关系`,openFile:`打开 .prisma 文件`,dropHint:`或将文件拖放到此区域`},entity:{enumBadge:`ENUM`,modelBadge:`MODEL`,columns:{value:`值`,comment:`注释`,type:`类型`,column:`列`},linkBadge:`链接`,externalTitle:`{{location}} 上的链接表(列链接,非真实外键)`},toolbar:{refresh:`刷新`,zoomIn:`放大`,zoomOut:`缩小`,resetView:`重置视图`,center:`居中`,fitAll:`适应全部`,spreadAll:`展开全部`,resetLayout:`重置布局`,legendOneToMany:`1:N (FK)`,tables:`表:`,relations:`关系:`,columns:`列:`},viewer:{noServerConnection:`没有活动的服务器连接`,loading:`正在从 {{database}} 加载架构...`,loadFailed:`加载 ERD 失败`,noDatabase:`未选择数据库。`,selectDatabaseHint:`请在架构树中选择一个数据库,然后打开“查看 ERD”。`}},y={runAnyway:`仍然运行`,query:{rowsReturned:`返回 {{count}} 行`,rowsAffected:`影响 {{count}} 行`,rowsReturnedLimited:`返回 {{count}} 行(已限制为 {{limit}} 行;添加 LIMIT 以获取更多)`,notConnected:`未连接`,fileNotOpen:`SQLite 文件尚未打开 — 请点击上方的“重新打开文件”再次授权访问。`,failed:`查询失败`,nothingToExecute:`没有可执行的内容`},destructive:{title_other:`运行 {{count}} 条破坏性语句?`,description:`以下操作将永久修改或删除数据。此操作无法撤销。`,unknownTarget:`(未知)`,deleteAll:`DELETE {{target}} 中的所有行`,updateAll:`UPDATE {{target}} 中的所有行`,alterDrop:`对 {{target}} 执行 DROP COLUMN/PARTITION`},readOnly:{refused:`连接“{{label}}”为只读。有 {{count}} 条语句会修改数据或架构。`,title:`“{{label}}”为只读`,description:`这些语句会修改数据或架构。仍要在此连接上运行吗?`},transaction:{startFailed:`无法启动事务`,started:`事务已启动 — 完成后请提交或回滚`,implicitCommit:`{{kind}} 导致当前打开的事务被隐式 COMMIT`,committed:`事务已提交`,rolledBack:`事务已回滚`,commandFailed:`{{name}} 失败`,commandFailedWith:`{{name}} 失败:{{message}}`},save:{notBrowserSqlite:`不是浏览器 SQLite 连接。`,inMemory:`内存数据库:只能导出为下载文件。`,noFileSystemAccess:`此浏览器不支持 File System Access API(仅 Chrome/Edge 支持):数据库将导出为下载文件,而不是就地写入。`,noWritableHandle:`文件打开时没有可写句柄:将导出为下载文件。`},agent:{devProxyUrl:`{{url}}(通过开发代理)`,notPlanche:`收到了响应,但它不是 Planche 代理`,unreachable:"无法在 {{url}} 访问 Planche 代理 — 请运行 `npx planche`({{message}})",httpError:`HTTP 错误:{{status}} {{statusText}}`,emptyResponse:`隧道服务器返回了空响应`,reconnected:`已重新连接到 {{name}} — 代理曾断开该连接(重启或空闲超时)。`},sample:{profileName:`示例商店(浏览器内)`,downloadFailed:`无法下载示例数据库({{status}})`,tabTitle:`查询 1`},sqliteFile:{tooSmall:`文件太小,不是 SQLite 数据库。`,notSqlite:`不是 SQLite 数据库(或已加密,例如 SQLCipher)。其 16 字节文件头不是“SQLite format 3”。`,badPageSize:`SQLite 文件头损坏:无效的页大小 {{size}}。`,unreadable:`SQLite 无法读取该文件:{{message}}`,pickerDescription:`SQLite 数据库`,walNotLoaded:`此数据库处于 WAL 模式,且其 -wal 文件尚未加载。请先加载它,或在横幅中确认不存在 -wal 文件,然后再保存。`,changedOnDisk:`{{name}} 在加载后于磁盘上被修改(另一个程序写入了它)。保存会覆盖这些更改 — 请重新打开文件并重做您的编辑,或改用隧道服务器。`,walHasChanges:`{{name}}-wal 包含新的更改;请在保存前加载它。`,walChangedOnDisk:`{{name}}-wal 在加载后被另一个程序写入;请在保存前重新打开文件。`,writeDenied:`未授予对 {{name}} 的写入权限。请在浏览器提示中允许,或改为导出为下载文件。`},environment:{none:`无`,green:`绿色(开发)`,blue:`蓝色`,yellow:`黄色(预发布)`,orange:`橙色`,red:`红色(生产)`,purple:`紫色`},scratchpad:{profileName:`草稿板`,namePromptTitle:`草稿板表名`,namePromptDescription:`草稿板中已存在名为 {{table}} 的表。请输入其他名称。`,nameTaken:`表 {{table}} 已存在。`},federated:{pulling:`正在从 {{connection}} 拉取 {{table}}…`,capped:`{{table}}:只拉取了前 {{limit}} 行。`,templateLine1:`用 "连接名".database.table 引用任意已打开连接的表;语句运行前会把它复制到此草稿板。`,templateLine2:`每个表最多 {{limit}} 行。查询本身在浏览器内的 SQLite 中运行。`,templateConnections:`已打开的连接:{{names}}`,templateNone:`尚未打开其他连接。请先连接,然后在这里引用。`,done:`已从 {{tables}} 个远程表拉取 {{rows}} 行到草稿板。`,pullingProgress:`正在从 {{connection}} 拉取 {{table}}:{{loaded}} / {{total}} 行…`},paged:{noColumns:`{{table}} 没有列。`,cancelled:`已取消。`}},b={title:`使用条款`,version:`版本 {{version}}`,englishOnly:`条款全文以英文提供。欢迎页面上的摘要以您的语言显示。`},x={title:`{{kind}} 将影响 {{count}} 行`,titleUnknown:`{{kind}} — 受影响行数未知`,description:`这是该语句此刻会触及的行,用 SELECT 预先读取。尚未写入任何内容。`,previewFailed:`预览查询失败:{{error}}
2
+ 你仍然可以运行该语句。`,noRows:`没有匹配的行——该语句不会改变任何内容。`,truncated:`显示 {{count}} 行中的前 {{shown}} 行。`,previewQuery:`预览查询`,run:`运行 {{kind}}({{count}} 行)`,runAnyway:`仍然运行`},S={app:e,language:t,settings:n,menu:r,about:i,connection:a,toolbar:o,footer:s,palette:c,welcome:l,schema:u,query:d,result:f,confirm:p,table:m,database:h,user:g,command:_,erd:v,services:y,terms:b,dryRun:x};export{i as about,e as app,_ as command,p as confirm,a as connection,h as database,S as default,x as dryRun,v as erd,s as footer,t as language,r as menu,c as palette,d as query,f as result,u as schema,y as services,n as settings,m as table,b as terms,o as toolbar,g as user,l as welcome};
package/app/index.html CHANGED
@@ -49,25 +49,25 @@
49
49
  "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" }
50
50
  }
51
51
  </script>
52
- <script type="module" crossorigin src="/assets/ui-store-DWSBgCoR.js"></script>
53
- <script type="module" crossorigin src="/assets/button-BGQhw-yz.js"></script>
54
- <script type="module" crossorigin src="/assets/i18n-DyTdEJ5X.js"></script>
55
- <script type="module" crossorigin src="/assets/dist-R-HWeP5h.js"></script>
56
- <script type="module" crossorigin src="/assets/dist-eK8CwLw8.js"></script>
57
- <script type="module" crossorigin src="/assets/dist-Dfw8x01G.js"></script>
52
+ <script type="module" crossorigin src="/assets/ui-store-VGM_km-l.js"></script>
53
+ <script type="module" crossorigin src="/assets/button-BRD_vJ8s.js"></script>
54
+ <script type="module" crossorigin src="/assets/i18n-BBZ4HyyF.js"></script>
55
+ <script type="module" crossorigin src="/assets/dist-BnghYOTd.js"></script>
56
+ <script type="module" crossorigin src="/assets/dist-DGLzi2V0.js"></script>
57
+ <script type="module" crossorigin src="/assets/dist-Bo6CxCQ0.js"></script>
58
58
  <script type="module" crossorigin src="/assets/app-storage-B6v72zLH.js"></script>
59
- <script type="module" crossorigin src="/assets/connection-store-B9-4NAfR.js"></script>
60
- <script type="module" crossorigin src="/assets/settings-store-MJead_iM.js"></script>
61
- <script type="module" crossorigin src="/assets/query-store-fCiE0iiG.js"></script>
62
- <script type="module" crossorigin src="/assets/database-DUBVz1in.js"></script>
59
+ <script type="module" crossorigin src="/assets/connection-store-Cn79Ey1H.js"></script>
60
+ <script type="module" crossorigin src="/assets/settings-store-hXzC7s8K.js"></script>
61
+ <script type="module" crossorigin src="/assets/query-store-Cu277RoH.js"></script>
62
+ <script type="module" crossorigin src="/assets/database-DT05D7dO.js"></script>
63
63
  <script type="module" crossorigin src="/assets/dbms-Bsjvyvsp.js"></script>
64
- <script type="module" crossorigin src="/assets/engine-DRzYxvTs.js"></script>
64
+ <script type="module" crossorigin src="/assets/engine-tGsnPQEm.js"></script>
65
65
  <script type="module" crossorigin src="/assets/schema-nodes-D3-cz2Xk.js"></script>
66
- <script type="module" crossorigin src="/assets/query-execution-DItl2TUQ.js"></script>
67
- <script type="module" crossorigin src="/assets/use-engine-5vf18JRu.js"></script>
66
+ <script type="module" crossorigin src="/assets/query-execution-COPkS7hB.js"></script>
67
+ <script type="module" crossorigin src="/assets/use-engine-CkfCgSB4.js"></script>
68
68
  <script type="module" crossorigin src="/assets/table-definition-Bs5VSn0X.js"></script>
69
- <script type="module" crossorigin src="/assets/table-copy-DXLY7yKq.js"></script>
70
- <script type="module" crossorigin src="/assets/main-DEK4mnDt.js"></script>
69
+ <script type="module" crossorigin src="/assets/table-copy-DxuAqxW1.js"></script>
70
+ <script type="module" crossorigin src="/assets/main-kdBvc1j0.js"></script>
71
71
  <link rel="stylesheet" crossorigin href="/assets/main-DCJnT21X.css">
72
72
  </head>
73
73
  <body>