planche 0.7.3 → 0.7.4

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 (29) hide show
  1. package/app/assets/{AboutDialog-rGCGtC6B.js → AboutDialog-DvM46UY_.js} +1 -1
  2. package/app/assets/{ConnectDialog-BvwpdRuF.js → ConnectDialog-_ZK0AztW.js} +1 -1
  3. package/app/assets/{CopyDatabaseDialog-BkcTNeQX.js → CopyDatabaseDialog-CnZfCfwD.js} +1 -1
  4. package/app/assets/{CopyTableDialog-CXrlyol9.js → CopyTableDialog-B41IvpSU.js} +1 -1
  5. package/app/assets/{CreateDatabaseDialog-DCnuqOmy.js → CreateDatabaseDialog-kD1h8d45.js} +1 -1
  6. package/app/assets/{DataDiffDialog-BbE_4J8s.js → DataDiffDialog-dlZBMW5l.js} +1 -1
  7. package/app/assets/{DownloadToCSVDialog-Ceyr73gw.js → DownloadToCSVDialog-DRK-Zil8.js} +1 -1
  8. package/app/assets/{EditSchemaDialog-cLRK39Vw.js → EditSchemaDialog-CkcXszIG.js} +1 -1
  9. package/app/assets/{FindReplaceDialog-1fXjxKMo.js → FindReplaceDialog-CkPnkL1j.js} +1 -1
  10. package/app/assets/{LinkColumnDialog-BZo_6ObH.js → LinkColumnDialog-D5Zfrl3R.js} +1 -1
  11. package/app/assets/{LocalHistoryDialog-C14Mxnyy.js → LocalHistoryDialog-Bb9N2LkQ.js} +1 -1
  12. package/app/assets/{ProcessListDialog-Dx3dPvT0.js → ProcessListDialog-BgJF9yWZ.js} +1 -1
  13. package/app/assets/{QuickCommandPalette-GiKovkpY.js → QuickCommandPalette-DYcfkPrI.js} +1 -1
  14. package/app/assets/{RowFormDialog-cdxpPm0O.js → RowFormDialog-DFjrIO4W.js} +1 -1
  15. package/app/assets/{SafetySettingsDialog-WQlpckyU.js → SafetySettingsDialog-BeO8cEBI.js} +1 -1
  16. package/app/assets/{SchemaDiffDialog-BfuoMLOD.js → SchemaDiffDialog-BbjyLKS_.js} +1 -1
  17. package/app/assets/{SchemaToHTMLDialog-DealbXXH.js → SchemaToHTMLDialog-B1NrI3Pe.js} +1 -1
  18. package/app/assets/{StatusDialog-B2gxU15M.js → StatusDialog-DhvpkLeJ.js} +1 -1
  19. package/app/assets/{UserAddDialog-DGCGDytU.js → UserAddDialog-CATexcB9.js} +1 -1
  20. package/app/assets/{UserManagerDialog-DCoyy-3y.js → UserManagerDialog-Cce9OVAy.js} +1 -1
  21. package/app/assets/{VariablesDialog-2PmzReYr.js → VariablesDialog-D9GMrHcH.js} +1 -1
  22. package/app/assets/{main-B9Gu9otb.js → main-DLpOu6RJ.js} +6 -6
  23. package/app/assets/main-DntTuWCY.css +2 -0
  24. package/app/assets/{query-execution-DSSJw-rD.js → query-execution-CSQuXIHD.js} +2 -2
  25. package/app/assets/{select-UCsaLUTL.js → select-BvfAEfBV.js} +1 -1
  26. package/app/assets/{table-copy-DEPZiyTM.js → table-copy-kJZk3p1d.js} +1 -1
  27. package/app/index.html +4 -4
  28. package/package.json +1 -1
  29. package/app/assets/main-zsfz90dl.css +0 -2
@@ -1,7 +1,7 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-B9Gu9otb.js","assets/ui-store-DWSBgCoR.js","assets/button-BGQhw-yz.js","assets/i18n-DFnLZX4V.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-7RkacLLF.js","assets/dbms-Bsjvyvsp.js","assets/engine-DRzYxvTs.js","assets/schema-nodes-D3-cz2Xk.js","assets/use-engine-5vf18JRu.js","assets/table-copy-DEPZiyTM.js","assets/table-definition-Bs5VSn0X.js","assets/main-zsfz90dl.css"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-DLpOu6RJ.js","assets/ui-store-DWSBgCoR.js","assets/button-BGQhw-yz.js","assets/i18n-DFnLZX4V.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-7RkacLLF.js","assets/dbms-Bsjvyvsp.js","assets/engine-DRzYxvTs.js","assets/schema-nodes-D3-cz2Xk.js","assets/use-engine-5vf18JRu.js","assets/table-copy-kJZk3p1d.js","assets/table-definition-Bs5VSn0X.js","assets/main-DntTuWCY.css"])))=>i.map(i=>d[i]);
2
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-DFnLZX4V.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-7RkacLLF.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===`
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-B9Gu9otb.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-DLpOu6RJ.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{_ 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-B9Gu9otb.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-DWSBgCoR.js";import{at as n,dt as r,it as i,ut as a}from"./main-DLpOu6RJ.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 +1 @@
1
- import{c as e,n as t}from"./ui-store-DWSBgCoR.js";import{a as n}from"./i18n-DFnLZX4V.js";import{t as r}from"./connection-store-B9-4NAfR.js";import{r as i}from"./database-7RkacLLF.js";import{c as a,d as o,n as s}from"./query-execution-DSSJw-rD.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-DWSBgCoR.js";import{a as n}from"./i18n-DFnLZX4V.js";import{t as r}from"./connection-store-B9-4NAfR.js";import{r as i}from"./database-7RkacLLF.js";import{c as a,d as o,n as s}from"./query-execution-CSQuXIHD.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};
package/app/index.html CHANGED
@@ -63,12 +63,12 @@
63
63
  <script type="module" crossorigin src="/assets/dbms-Bsjvyvsp.js"></script>
64
64
  <script type="module" crossorigin src="/assets/engine-DRzYxvTs.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-DSSJw-rD.js"></script>
66
+ <script type="module" crossorigin src="/assets/query-execution-CSQuXIHD.js"></script>
67
67
  <script type="module" crossorigin src="/assets/use-engine-5vf18JRu.js"></script>
68
68
  <script type="module" crossorigin src="/assets/table-definition-Bs5VSn0X.js"></script>
69
- <script type="module" crossorigin src="/assets/table-copy-DEPZiyTM.js"></script>
70
- <script type="module" crossorigin src="/assets/main-B9Gu9otb.js"></script>
71
- <link rel="stylesheet" crossorigin href="/assets/main-zsfz90dl.css">
69
+ <script type="module" crossorigin src="/assets/table-copy-kJZk3p1d.js"></script>
70
+ <script type="module" crossorigin src="/assets/main-DLpOu6RJ.js"></script>
71
+ <link rel="stylesheet" crossorigin href="/assets/main-DntTuWCY.css">
72
72
  </head>
73
73
  <body>
74
74
  <section id="landing">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "planche",
3
- "version": "0.7.3",
3
+ "version": "0.7.4",
4
4
  "description": "Local agent for Planche \u2014 lets the browser-based Planche SQL client reach MySQL/MariaDB/PostgreSQL/SQLite/SQL Server/Oracle/Neon/Supabase/Cloudflare D1 databases from your machine.",
5
5
  "license": "UNLICENSED",
6
6
  "homepage": "https://planche.dev",