@kazurolabs/psql-explorer 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RELEASES.md +8 -0
- package/dist/explorer/explain.js +29 -12
- package/dist/explorer/rows.js +79 -6
- package/dist/explorer/session.js +8 -1
- package/dist/web/server.js +2 -2
- package/package.json +2 -1
- package/web/dist/assets/{button-ClA70PLR.js → button-BiFx4Lyw.js} +1 -1
- package/web/dist/assets/{code-xml-CXkpHeU9.js → code-xml-CPEjNFOw.js} +1 -1
- package/web/dist/assets/{compare-view-DKl5l_Jw.js → compare-view-COQ3yE76.js} +1 -1
- package/web/dist/assets/{copy-CCXzeW-s.js → copy-C2N9tUYJ.js} +1 -1
- package/web/dist/assets/{cypher-view-Pd0WFH8F.js → cypher-view-BzyL4mNU.js} +1 -1
- package/web/dist/assets/{design-view-CIHSmH4u.js → design-view-BPm7dSTY.js} +1 -1
- package/web/dist/assets/{erd-view-CV7mFGAN.js → erd-view-DqGDws2_.js} +1 -1
- package/web/dist/assets/{format-sql-BLj5_RDZ.js → format-sql-CoddYUOF.js} +1 -1
- package/web/dist/assets/{graph-force-yBLyErpS.js → graph-force-ChCGXQUt.js} +1 -1
- package/web/dist/assets/{graph-link-OCo_s0zO.js → graph-link-C8P9s_0W.js} +1 -1
- package/web/dist/assets/{graph-view-sM1OlByf.js → graph-view-BpoUrUCP.js} +1 -1
- package/web/dist/assets/{index-CDcnUacl.js → index-CpHnjRLv.js} +3 -3
- package/web/dist/assets/{key-round-Cv_7QeED.js → key-round-JiGCgCWS.js} +1 -1
- package/web/dist/assets/{loader-circle-BK_GMdvN.js → loader-circle-BxDJOoJO.js} +1 -1
- package/web/dist/assets/{query-builder-view-ChNFb51g.js → query-builder-view-CtRexMEX.js} +1 -1
- package/web/dist/assets/{rotate-ccw-CdCaf7Q6.js → rotate-ccw-CwdA-J3t.js} +1 -1
- package/web/dist/assets/{route-DO6IZ7of.js → route-7eu-iAqD.js} +1 -1
- package/web/dist/assets/{seed-view-DFNB8WHE.js → seed-view-BIkBTiU6.js} +1 -1
- package/web/dist/assets/{shield-alert-CMS-3j4U.js → shield-alert-keJIAND5.js} +1 -1
- package/web/dist/assets/{sliders-horizontal-Dg51yc-C.js → sliders-horizontal-DKtL_ql7.js} +1 -1
- package/web/dist/assets/sql-tabs-DUSXdYCr.js +2 -0
- package/web/dist/assets/{table-DfMz2f8M.js → table-Drc_n1gF.js} +1 -1
- package/web/dist/assets/{triangle-alert-COGnHCD1.js → triangle-alert-C5nF69rW.js} +1 -1
- package/web/dist/assets/{zone-D9dXk8tn.js → zone-CHDOrDBF.js} +1 -1
- package/web/dist/index.html +8 -8
- package/web/dist/assets/sql-tabs-B4jt6bQj.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{at as e}from"./route-
|
|
1
|
+
import{at as e}from"./route-7eu-iAqD.js";var t={name:`key-round`,size:24,node:[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]};t.node;var n=e(t);export{n as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{at as e}from"./route-
|
|
1
|
+
import{at as e}from"./route-7eu-iAqD.js";var t={name:`loader-circle`,size:24,node:[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]],aliases:[`loader-2`]};t.node;var n=e(t);export{n as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{$ as e,J as t,Q as n,Y as r,Z as i,a,at as o,ct as s,n as c,ot as l,p as u,q as d,r as ee,rt as f,t as p}from"./route-
|
|
1
|
+
import{$ as e,J as t,Q as n,Y as r,Z as i,a,at as o,ct as s,n as c,ot as l,p as u,q as d,r as ee,rt as f,t as p}from"./route-7eu-iAqD.js";import{t as m}from"./button-BiFx4Lyw.js";import{a as te,i as ne,o as re,t as ie}from"./zone-CHDOrDBF.js";import{t as ae}from"./loader-circle-BxDJOoJO.js";import{t as oe}from"./rotate-ccw-CwdA-J3t.js";import{t as se}from"./triangle-alert-C5nF69rW.js";import{a as ce,i as le,n as ue,o as de,r as fe,t as pe}from"./table-Drc_n1gF.js";import{$t as me,Gt as he,Jt as ge,Q as _e,Qt as h,Wt as ve,an as ye}from"./index-CpHnjRLv.js";var g={name:`clipboard`,size:24,node:[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}]]};g.node;var be=o(g),_={name:`shield-check`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]};_.node;var xe=o(_),v=s(l(),1),y=[{id:`inner`,label:`Inner`,hint:`Only rows that have a match on both sides`},{id:`left`,label:`Left`,hint:`Every row so far, with the match when there is one`},{id:`right`,label:`Right`,hint:`Every row of the new table, with the match when there is one`},{id:`full`,label:`Full`,hint:`Every row from both sides`},{id:`cross`,label:`Cross`,hint:`Every row so far with every row of the new table`}],b=[`=`,`<>`,`<`,`<=`,`>`,`>=`],x=[{id:`count`,label:`count`},{id:`count distinct`,label:`count distinct`},{id:`sum`,label:`sum`},{id:`avg`,label:`average`},{id:`min`,label:`min`},{id:`max`,label:`max`}],S={eq:`is`,ne:`is not`,lt:`is less than`,lte:`is at most`,gt:`is more than`,gte:`is at least`,contains:`contains`,notcontains:`does not contain`,starts:`starts with`,ends:`ends with`,in:`is one of`,notin:`is none of`,between:`is between`,last:`is within the last`,true:`is true`,false:`is false`,null:`is empty (null)`,notnull:`is not empty`},Se=0,C=()=>`b${Date.now().toString(36)}${(Se++).toString(36)}`,w=(e=`and`)=>({kind:`group`,id:C(),match:e,items:[]}),T=()=>({joins:[],items:[],where:w(),having:w(),sort:[],distinct:!1,limit:100}),E=(e,t)=>`${e}.${t}`,Ce=e=>new Map(e.map(e=>[E(e.schema,e.name),e])),D=e=>[...e.from?[e.from]:[],...e.joins.map(e=>e.source)],O=(e,t)=>e.get(E(t.schema,t.table));function k(e,t,n,r){let i=D(e).find(e=>e.id===n);return i&&O(t,i)?.columns.find(e=>e.name===r)?.type}function A(e){return/^[a-z_][a-z0-9_$]*$/.test(e)&&!u(e)&&!p.has(e)?e:`"${e.replace(/"/g,`""`)}"`}function we(e,t){if(!t.includes(e))return e;for(let n=2;;n++)if(!t.includes(`${e}_${n}`))return`${e}_${n}`}function Te(e,t){return{id:C(),schema:e.schema,table:e.name,alias:we(e.name,t)}}function j(e){let t=e.toLowerCase().replace(/\(.*?\)/g,``).trim();return t.endsWith(`[]`)?`${j(t.slice(0,-2))}[]`:/^(smallint|integer|bigint|int[248]?|numeric|decimal|real|double precision|float[48]?|money|oid)$/.test(t)?`number`:/^(text|character varying|varchar|character|char|bpchar|citext|name)$/.test(t)?`text`:/^(boolean|bool)$/.test(t)?`boolean`:i(t)?`time`:/^json/.test(t)?`json`:t}var M=e=>j(e)===`number`,N=e=>j(e)===`text`;function P(e,t,n){let r=n.column===`*`?`bigint`:k(e,t,n.source,n.column);if(r)return n.aggregate===`count`||n.aggregate===`count distinct`?`bigint`:n.aggregate===`sum`||n.aggregate===`avg`?`numeric`:n.aggregate?r:n.bucket?n.bucket===`dow`||n.bucket===`hod`?`numeric`:`timestamp`:r}function Ee(e){let t=[`null`,`notnull`];if(!e)return[`eq`,`ne`,...t];let n=j(e);return n===`boolean`?[`true`,`false`,...t]:n===`number`?[`eq`,`ne`,`lt`,`lte`,`gt`,`gte`,`between`,`in`,`notin`,...t]:n===`time`?[`last`,`lt`,`lte`,`gt`,`gte`,`between`,`eq`,`ne`,...t]:n===`text`?[`eq`,`ne`,`contains`,`notcontains`,`starts`,`ends`,`in`,`notin`,`lt`,`gt`,...t]:[`eq`,`ne`,`in`,`notin`,`contains`,...t]}var De=e=>[`eq`,`ne`,`lt`,`lte`,`gt`,`gte`].includes(e),Oe=[`eq`,`ne`,`lt`,`lte`,`gt`,`gte`,`contains`,`notcontains`,`starts`,`ends`,`in`,`notin`,`between`,`last`],ke=e=>Oe.includes(e),F=e=>`'${e.replace(/\0/g,``).replace(/'/g,`''`)}'`;function I(e,t){let n=t.trim();return e&&M(e)&&/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(n)?n:e&&j(e)===`boolean`&&/^(true|false)$/i.test(n)?n.toLowerCase():F(t)}var Ae=e=>e.replace(/[\\%_]/g,e=>`\\${e}`),je=[`minutes`,`hours`,`days`,`weeks`,`months`,`years`],Me=/^\d+ (minutes|hours|days|weeks|months|years)$/,L=(e,t)=>{let n=D(e).find(e=>e.id===t.source);return n?`${A(n.alias)}.${A(t.column)}`:void 0};function R(e,n,r){if(r.column===`*`)return r.aggregate===`count`?`count(*)`:void 0;let a=L(e,r);if(!a)return;if(r.aggregate)return`${r.aggregate===`count distinct`?`count(DISTINCT `:`${r.aggregate}(`}${a})`;let o=t.find(e=>e.id===r.bucket);if(!o)return a;let s=i(k(e,n,r.source,r.column)??``)??`timestamp`;return d(a,s,o,e.zone||void 0)}function Ne(e,t,n){let r=R(e,t,n.left);if(!r)return;let i=P(e,t,n.left),a=i&&!N(i)?`${r}::text`:r,o=e=>e===void 0||e.trim()===``?void 0:e,s=()=>(n.value??``).split(`,`).map(e=>e.trim()).filter(e=>e!==``),c={eq:`=`,ne:`<>`,lt:`<`,lte:`<=`,gt:`>`,gte:`>=`};switch(n.op){case`null`:return`${r} IS NULL`;case`notnull`:return`${r} IS NOT NULL`;case`true`:return`${r} IS TRUE`;case`false`:return`${r} IS FALSE`;case`eq`:case`ne`:case`lt`:case`lte`:case`gt`:case`gte`:{if(n.other){let t=L(e,n.other);return t?`${r} ${c[n.op]} ${t}`:void 0}let t=o(n.value);return t===void 0?void 0:`${r} ${c[n.op]} ${I(i,t)}`}case`contains`:case`notcontains`:case`starts`:case`ends`:{let e=o(n.value);if(e===void 0)return;let t=Ae(e),r=n.op===`starts`?`${t}%`:n.op===`ends`?`%${t}`:`%${t}%`;return`${a} ${n.op===`notcontains`?`NOT ILIKE`:`ILIKE`} ${F(r)}`}case`in`:case`notin`:{let e=s();return e.length===0?void 0:`${r} ${n.op===`notin`?`NOT IN`:`IN`} (${e.map(e=>I(i,e)).join(`, `)})`}case`between`:{let[e,t]=[o(n.value),o(n.value2)];return e===void 0||t===void 0?void 0:`${r} BETWEEN ${I(i,e)} AND ${I(i,t)}`}case`last`:{let e=n.value?.trim();return e&&Me.test(e)?`${r} >= now() - interval ${F(e)}`:void 0}}}function z(e,t,n,r){let i=n.items.flatMap(n=>{let r=n.kind===`group`?z(e,t,n,!0):Ne(e,t,n);return r===void 0?[]:[r]});if(i.length===0)return;let a=n.match===`and`?`AND`:`OR`;return r?i.length>1?`(${i.join(` ${a} `)})`:i[0]:i.join(`\n ${a} `)}var Pe=(e,t,n)=>Ne(e,t,n)!==void 0;function Fe(e){let n=t=>D(e).find(e=>e.id===t)?.alias??``,r=e=>{if(e.aggregate){let t=e.aggregate===`count distinct`?`distinct`:e.aggregate;return e.column===`*`?`count`:`${t}_${e.column}`}return e.bucket?t.find(t=>t.id===e.bucket)?.alias??e.column:e.column},i=e.items.map(e=>e.alias?.trim()||r(e)),a=e=>i.filter(t=>t===e).length,o=i.map((t,r)=>{let i=e.items[r];return i.alias?.trim()||a(t)===1?t:`${n(i.source)}_${t}`}),s=new Map;return o.map(e=>{let t=(s.get(e)??0)+1;return s.set(e,t),t===1?e:`${e}_${t}`})}var Ie=(e,t)=>e===void 0||t===void 0||j(e)===j(t),B=e=>e.items.some(e=>e.aggregate);function V(e){return e.items.flatMap(e=>e.kind===`group`?V(e):[e])}function Le(e,t){let n=[];if(!e.from)return[{level:`error`,text:`Pick a table to start from.`}];for(let r of D(e))O(t,r)||n.push({level:`error`,text:`${r.schema}.${r.table} is not in this database.`});for(let r of e.joins){r.kind!==`cross`&&!r.on.some(t=>L(e,t.left)&&L(e,t.right))&&n.push({level:`error`,text:`Say how ${r.source.alias} joins: pick the columns that match.`});for(let i of r.on){let[r,a]=[k(e,t,i.left.source,i.left.column),k(e,t,i.right.source,i.right.column)];!i.asText&&!Ie(r,a)&&n.push({level:`warning`,text:`${i.left.column} (${r}) and ${i.right.column} (${a}) have different types, which Postgres may refuse to compare. Tick "as text" on that join.`})}}e.items.length===0&&n.push({level:`error`,text:`Pick at least one column to show.`}),V(e.where).some(e=>e.left.aggregate)&&n.push({level:`error`,text:`Filters on a total belong under "Having".`});let r=B(e);if(V(e.having).length>0&&!r&&n.push({level:`error`,text:`"Having" filters totals, so show at least one count, sum, ... too.`}),V(e.having).some(e=>!e.left.aggregate)&&n.push({level:`error`,text:`"Having" can only test a count, sum, ...`}),r){let r=new Set(e.items.filter(e=>!e.aggregate).map(n=>R(e,t,n)));for(let i of e.sort)if(!i.expr.aggregate&&!r.has(R(e,t,i.expr))){n.push({level:`error`,text:`With totals, sort by a column you show, or by a total.`});break}}else e.sort.some(e=>e.expr.aggregate)&&n.push({level:`error`,text:`Sorting by a total needs that total in the columns shown.`});return e.distinct&&e.sort.some(n=>!e.items.some(r=>R(e,t,r)===R(e,t,n.expr)))&&n.push({level:`error`,text:`With "unique rows", sort only by columns you show.`}),n}function Re(e,t){if(!e.from||e.items.length===0)return;let n=Fe(e),r=e.items.flatMap((r,i)=>{let a=R(e,t,r);return a?[!r.aggregate&&!r.bucket&&n[i]===r.column?` ${a}`:` ${a} AS ${A(n[i])}`]:[]});if(r.length===0)return;let i=e=>`${A(e.schema)}.${A(e.table)}${e.alias===e.table?``:` AS ${A(e.alias)}`}`,a=[`SELECT${e.distinct?` DISTINCT`:``}`,r.join(`,
|
|
2
2
|
`),`FROM ${i(e.from)}`];for(let t of e.joins){if(t.kind===`cross`){a.push(`CROSS JOIN ${i(t.source)}`);continue}let n=t.on.flatMap(t=>{let[n,r]=[L(e,t.left),L(e,t.right)];return n&&r?[t.asText?`${n}::text ${t.op} ${r}::text`:`${n} ${t.op} ${r}`]:[]});a.push(`${t.kind.toUpperCase()} JOIN ${i(t.source)}`),a.push(` ON ${n.length>0?n.join(`
|
|
3
3
|
AND `):`true`}`)}let o=z(e,t,e.where,!1);o&&a.push(`WHERE ${o}`);let s=z(e,t,e.having,!1);if(B(e)){let n=e.items.filter(e=>!e.aggregate).flatMap(n=>R(e,t,n)??[]);n.length>0&&a.push(`GROUP BY ${n.join(`, `)}`)}s&&a.push(`HAVING ${s}`);let c=e.sort.flatMap(n=>{let r=R(e,t,n.expr);return r?[`${r}${n.descending?` DESC`:``}`]:[]});return c.length>0&&a.push(`ORDER BY ${c.join(`, `)}`),e.limit!==null&&e.limit>0&&a.push(`LIMIT ${Math.floor(e.limit)}`),`${a.join(`
|
|
4
4
|
`)};\n`}function H(e,t,n){let r=D(e).find(e=>e.id===n.source);if(!r)return!1;let i=O(t,r);return!i||n.column===`*`||i.columns.some(e=>e.name===n.column)}function ze(e,t){let n=r=>({...r,items:r.items.flatMap(r=>r.kind===`group`?[n(r)]:H(e,t,r.left)?[r.other&&!H(e,t,r.other)?{...r,other:void 0}:r]:[])});return{...e,joins:e.joins.map(n=>({...n,on:n.on.filter(n=>H(e,t,n.left)&&H(e,t,n.right))})),items:e.items.filter(n=>H(e,t,n)),where:n(e.where),having:n(e.having),sort:e.sort.filter(n=>H(e,t,n.expr))}}var Be=(e,t,n)=>ze({...e,joins:e.joins.filter(e=>e.id!==n)},t);function Ve(e,t){let n=[];for(let r of e){let e=t.get(r.id);if(e){for(let t of e.outgoing)n.push({table:t.to,via:r.id,on:t.fromColumns.map((e,n)=>({from:e,to:t.toColumns[n]})),label:`${t.to.schema}.${t.to.name} · ${r.alias}.${t.fromColumns.join(`, `)} → ${t.toColumns.join(`, `)}`});for(let t of e.incoming)n.push({table:t.from,via:r.id,on:t.toColumns.map((e,n)=>({from:e,to:t.fromColumns[n]})),label:`${t.from.schema}.${t.from.name} · ${t.fromColumns.join(`, `)} → ${r.alias}.${t.toColumns.join(`, `)}`})}}return n}function He(e,t,n){let r=D(e),[i,a]=[r.find(e=>e.id===n.left.source),r.find(e=>e.id===n.right.source)];if(!i||!a||n.op!==`=`)return!1;let o=[...t.get(i.id)?.outgoing??[],...t.get(i.id)?.incoming??[],...t.get(a.id)?.outgoing??[],...t.get(a.id)?.incoming??[]],s=(e,t)=>e.schema===t.schema&&e.name===t.table;return o.some(e=>e.fromColumns.some((t,r)=>{let o=e.toColumns[r];return s(e.from,i)&&s(e.to,a)&&t===n.left.column&&o===n.right.column||s(e.from,a)&&s(e.to,i)&&t===n.right.column&&o===n.left.column}))}var Ue=e=>JSON.stringify(e);function We(e){if(e)try{let t=JSON.parse(e);return!t||typeof t!=`object`||!Array.isArray(t.joins)||!Array.isArray(t.items)?void 0:{...T(),...t}}catch{return}}var U=e=>`psql-explorer:builder:${e}`;function Ge(e){try{return We(window.localStorage.getItem(U(e)))}catch{return}}function Ke(e,t){try{!t||!t.from?window.localStorage.removeItem(U(e)):window.localStorage.setItem(U(e),Ue(t))}catch{}}var W=f(),G=100,K=`border-input bg-background rounded-lg border px-2 py-1 text-sm`,q=`*`,J=e=>`${e.source}\u0001${e.column}`,qe=e=>{let[t,n]=e.split(``);return{source:t,column:n}};function Y({title:e,hint:t,action:n,children:r}){return(0,W.jsxs)(`section`,{className:`border-border border p-4`,children:[(0,W.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-baseline justify-between gap-2`,children:[(0,W.jsx)(`h2`,{className:`text-sm font-medium tracking-widest uppercase`,children:e}),n]}),t&&(0,W.jsx)(`p`,{className:`text-muted-foreground mb-3 text-xs`,children:t}),(0,W.jsx)(`div`,{className:`flex flex-col gap-2`,children:r})]})}function X({children:e,onClick:t,disabled:n}){return(0,W.jsxs)(m,{type:`button`,variant:`outline`,size:`sm`,className:`self-start`,onClick:t,disabled:n,children:[(0,W.jsx)(h,{className:`size-3.5`}),` `,e]})}function Z({label:e,onClick:t}){return(0,W.jsx)(m,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":e,title:e,onClick:t,children:(0,W.jsx)(ge,{className:`text-destructive size-3.5`})})}function Q({ctx:e,sources:t,value:n,onChange:r,label:i,rows:a=!1,className:o=``}){let s=t.some(e=>e.id===n.source)||n.column===q;return(0,W.jsxs)(`select`,{"aria-label":i,className:`${K} ${o}`,value:J(n),onChange:e=>r(qe(e.target.value)),children:[!s&&(0,W.jsx)(`option`,{value:J(n),children:n.column}),a&&(0,W.jsx)(`option`,{value:J({source:t[0]?.id??``,column:q}),children:`rows (count them)`}),t.map(t=>(0,W.jsx)(`optgroup`,{label:t.alias,children:e.catalog.get(E(t.schema,t.table))?.columns.map(e=>(0,W.jsxs)(`option`,{value:J({source:t.id,column:e.name}),children:[e.name,` · `,e.type]},e.name))},t.id))]})}function Je({ctx:e,expr:t,onChange:n,mode:a,label:o}){let s=D(e.builder),c=t.column===q?void 0:P(e.builder,e.catalog,{source:t.source,column:t.column}),l=c?i(c):void 0,u=a!==`where`,d=x.filter(e=>t.column===q?e.id===`count`:![`sum`,`avg`].includes(e.id)||c&&j(c)===`number`);return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Q,{ctx:e,sources:s,value:t,onChange:r=>{let o={source:r.source,column:r.column};if(r.column===q)o.aggregate=`count`;else{let n=e.catalog.get(E(...Ye(e.builder,r.source)))?.columns.find(e=>e.name===r.column)?.type;t.aggregate&&(e=>![`sum`,`avg`].includes(e)||n&&j(n)===`number`)(t.aggregate)?o.aggregate=t.aggregate:a===`having`&&(o.aggregate=`count`),t.bucket&&n&&i(n)&&!o.aggregate&&(o.bucket=t.bucket)}n(o)},label:o,rows:u}),u&&(0,W.jsxs)(`select`,{"aria-label":`${o}: total`,className:K,value:t.aggregate??``,onChange:e=>{let r=e.target.value||void 0;n({source:t.source,column:t.column,...r?{aggregate:r}:{},...t.bucket&&!r?{bucket:t.bucket}:{}})},children:[a!==`having`&&t.column!==q&&(0,W.jsx)(`option`,{value:``,children:`as it is`}),d.map(e=>(0,W.jsx)(`option`,{value:e.id,children:e.label},e.id))]}),(a===`item`||a===`sort`)&&l&&!t.aggregate&&(0,W.jsxs)(`select`,{"aria-label":`${o}: group by`,className:K,value:t.bucket??``,onChange:e=>n({source:t.source,column:t.column,...e.target.value?{bucket:e.target.value}:{}}),children:[(0,W.jsx)(`option`,{value:``,children:`exact time`}),r(l).map(e=>(0,W.jsxs)(`option`,{value:e.id,children:[`by `,e.label.toLowerCase()]},e.id))]})]})}var Ye=(e,t)=>{let n=D(e).find(e=>e.id===t);return[n?.schema??``,n?.table??``]};function Xe({catalog:e,value:t,onChange:n,label:r,children:i}){let a=(0,v.useMemo)(()=>{let t=new Map;for(let n of e.values())t.set(n.schema,[...t.get(n.schema)??[],n.name]);return[...t].sort(([e],[t])=>e.localeCompare(t))},[e]);return(0,W.jsxs)(`select`,{"aria-label":r,className:K,value:t??``,onChange:e=>{let[t,r]=e.target.value.split(``);t===`related`?n({schema:``,name:``},Number(r)):t&&r&&n({schema:t,name:r})},children:[(0,W.jsx)(`option`,{value:``,disabled:!0,children:`Pick a table...`}),i,a.map(([e,t])=>(0,W.jsx)(`optgroup`,{label:e,children:t.sort().map(t=>(0,W.jsx)(`option`,{value:`${e}\u0001${t}`,children:t},t))},e))]})}function Ze({ctx:e,join:t,keys:n,onChange:r,onRemove:i}){let a=D(e.builder),o=a.slice(0,a.findIndex(e=>e.id===t.source.id)),s=e=>r({...t,on:t.on.map(t=>t.id===e.id?e:t)});return(0,W.jsxs)(`div`,{className:`border-border flex flex-col gap-2 border p-3`,children:[(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,W.jsx)(`select`,{"aria-label":`Kind of join with ${t.source.alias}`,className:K,value:t.kind,title:y.find(e=>e.id===t.kind)?.hint,onChange:e=>r({...t,kind:e.target.value}),children:y.map(e=>(0,W.jsxs)(`option`,{value:e.id,children:[e.label,` join`]},e.id))}),(0,W.jsxs)(`strong`,{className:`font-mono`,children:[t.source.schema,`.`,t.source.table]}),t.source.alias!==t.source.table&&(0,W.jsxs)(`span`,{className:`text-muted-foreground`,children:[`as `,t.source.alias]}),(0,W.jsx)(`span`,{className:`ml-auto`}),(0,W.jsx)(Z,{label:`Remove the join with ${t.source.alias}`,onClick:i})]}),t.kind!==`cross`&&(0,W.jsxs)(W.Fragment,{children:[t.on.map(i=>{let a=He(e.builder,n,i);return(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,W.jsx)(`span`,{className:`text-muted-foreground`,children:`where`}),(0,W.jsx)(Q,{ctx:e,sources:o,value:i.left,onChange:e=>s({...i,left:e}),label:`Column so far`}),(0,W.jsx)(`select`,{"aria-label":`Comparison`,className:K,value:i.op,onChange:e=>s({...i,op:e.target.value}),children:b.map(e=>(0,W.jsx)(`option`,{children:e},e))}),(0,W.jsx)(Q,{ctx:e,sources:[t.source],value:i.right,onChange:e=>s({...i,right:e}),label:`Column of ${t.source.alias}`}),(0,W.jsxs)(`label`,{className:`text-muted-foreground flex items-center gap-1 text-xs`,title:`Compare both as text, for columns of different types`,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:i.asText,onChange:e=>s({...i,asText:e.target.checked})}),` as text`]}),(0,W.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:a?`foreign key`:`not a foreign key`}),t.on.length>1&&(0,W.jsx)(Z,{label:`Remove this test`,onClick:()=>r({...t,on:t.on.filter(e=>e.id!==i.id)})})]},i.id)}),(0,W.jsx)(X,{onClick:()=>{let n=o[0],i=t=>e.catalog.get(E(t.schema,t.table))?.columns[0]?.name??``;n&&r({...t,on:[...t.on,{id:C(),left:{source:n.id,column:i(n)},op:`=`,right:{source:t.source.id,column:i(t.source)},asText:!1}]})},children:`and another test`})]})]})}function Qe(e){let t=/^(\d*) ?(\w*)$/.exec(e??``);return[t?.[1]??``,je.find(e=>e===t?.[2])??`days`]}function $e({ctx:e,condition:t,mode:n,onChange:r,onRemove:i}){let a=Ee(P(e.builder,e.catalog,t.left)),o=D(e.builder),s=Pe(e.builder,e.catalog,t),c=e=>r({...t,...e}),[l,u]=Qe(t.value);return(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm ${s?``:`opacity-70`}`,title:s?void 0:`Left out of the query until it is filled in`,children:[(0,W.jsx)(Je,{ctx:e,expr:t.left,mode:n,label:`Filter column`,onChange:n=>{let r=Ee(P(e.builder,e.catalog,n));c({left:n,op:r.includes(t.op)?t.op:r[0],other:void 0})}}),(0,W.jsx)(`select`,{"aria-label":`Test`,className:K,value:a.includes(t.op)?t.op:a[0],onChange:e=>{let t=e.target.value;c({op:t,...De(t)?{}:{other:void 0},...t===`last`?{value:`7 days`}:{}})},children:a.map(e=>(0,W.jsx)(`option`,{value:e,children:S[e]},e))}),De(t.op)&&(0,W.jsxs)(`select`,{"aria-label":`Compare with`,className:K,value:t.other?`column`:`value`,onChange:t=>c({other:t.target.value===`column`?{source:o[0]?.id??``,column:e.catalog.get(E(...Ye(e.builder,o[0]?.id??``)))?.columns[0]?.name??``}:void 0}),children:[(0,W.jsx)(`option`,{value:`value`,children:`a value`}),(0,W.jsx)(`option`,{value:`column`,children:`a column`})]}),t.other?(0,W.jsx)(Q,{ctx:e,sources:o,value:t.other,onChange:e=>c({other:e}),label:`Other column`}):t.op===`last`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`input`,{"aria-label":`How many`,type:`number`,min:0,className:`${K} w-20`,value:l,onChange:e=>c({value:`${e.target.value} ${u}`})}),(0,W.jsx)(`select`,{"aria-label":`Unit`,className:K,value:u,onChange:e=>c({value:`${l} ${e.target.value}`}),children:je.map(e=>(0,W.jsx)(`option`,{children:e},e))})]}):ke(t.op)&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`input`,{"aria-label":`Value`,className:`${K} w-44`,placeholder:t.op===`in`||t.op===`notin`?`a, b, c`:`value`,value:t.value??``,onChange:e=>c({value:e.target.value})}),t.op===`between`&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`text-muted-foreground`,children:`and`}),(0,W.jsx)(`input`,{"aria-label":`Upper value`,className:`${K} w-44`,placeholder:`value`,value:t.value2??``,onChange:e=>c({value2:e.target.value})})]})]}),(0,W.jsx)(Z,{label:`Remove this filter`,onClick:i})]})}function $({ctx:e,group:t,mode:n,root:r,onChange:i,onRemove:a}){let o=D(e.builder)[0],s=()=>{let t=o&&e.catalog.get(E(o.schema,o.table))?.columns[0]?.name,r=n===`having`?{source:o?.id??``,column:q,aggregate:`count`}:{source:o?.id??``,column:t??``};return{kind:`condition`,id:C(),left:r,op:Ee(P(e.builder,e.catalog,r))[0]}},c=(e,n)=>i({...t,items:t.items.flatMap(t=>t.id===e?n?[n]:[]:[t])});return(0,W.jsxs)(`div`,{className:r?`flex flex-col gap-2`:`border-border ml-4 flex flex-col gap-2 border-l-2 pl-3`,children:[(t.items.length>1||!r)&&(0,W.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,W.jsx)(`span`,{className:`text-muted-foreground`,children:r?`A row must match`:`Match`}),(0,W.jsxs)(`select`,{"aria-label":`All or any`,className:K,value:t.match,onChange:e=>i({...t,match:e.target.value}),children:[(0,W.jsx)(`option`,{value:`and`,children:`all of these`}),(0,W.jsx)(`option`,{value:`or`,children:`any of these`})]}),a&&(0,W.jsx)(Z,{label:`Remove this group`,onClick:a})]}),t.items.map(t=>t.kind===`group`?(0,W.jsx)($,{ctx:e,group:t,mode:n,onChange:e=>c(t.id,e),onRemove:()=>c(t.id,void 0)},t.id):(0,W.jsx)($e,{ctx:e,condition:t,mode:n,onChange:e=>c(t.id,e),onRemove:()=>c(t.id,void 0)},t.id)),(0,W.jsxs)(`div`,{className:`flex gap-2`,children:[(0,W.jsx)(X,{onClick:()=>i({...t,items:[...t.items,s()]}),disabled:!o,children:`filter`}),(0,W.jsx)(X,{onClick:()=>i({...t,items:[...t.items,{...w(`or`),items:[s()]}]}),disabled:!o,children:`group`})]})]})}function et({environment:t,builder:r}){let i=ve(()=>e.catalog(t),t),o=(0,v.useMemo)(()=>Ce(i.data??[]),[i.data]),[s,l]=(0,v.useState)(()=>We(r.state)??Ge(t)??T()),[u,d]=(0,v.useState)(),[f,p]=(0,v.useState)(new Map),ge=(0,v.useMemo)(()=>ie(),[]),h={builder:s,catalog:o},g=D(s),_=e=>l(t=>ze(e(t),o));(0,v.useEffect)(()=>{Ke(t,s),s.from&&a({environment:t,builder:{state:Ue(s)}})},[t,s]);let y=g.map(e=>E(e.schema,e.table)).join(`,`);(0,v.useEffect)(()=>{if(i.data!==void 0)for(let n of D(s)){let r=E(n.schema,n.table);o.has(r)&&!f.has(r)&&e.foreignKeys(t,{kind:`table`,schema:n.schema,name:n.table}).then(e=>p(t=>new Map(t).set(r,e))).catch(()=>p(e=>new Map(e).set(r,{outgoing:[],incoming:[]})))}},[y,i.data,t]);let b=(0,v.useMemo)(()=>new Map(g.flatMap(e=>{let t=f.get(E(e.schema,e.table));return t?[[e.id,t]]:[]})),[f,y]),x=(0,v.useMemo)(()=>Re(s,o),[s,o]),S=(0,v.useMemo)(()=>Le(s,o),[s,o]),Se=!x||S.some(e=>e.level===`error`),w=(0,v.useMemo)(()=>Ve(g,b),[b]),O=(0,v.useRef)(0),k=async(n=0)=>{if(!x||!c(x))return;let r=++O.current;d(e=>({sql:x,page:n,running:!0,...e?.sql===x?{result:e.result}:{}}));try{let i=await e.query(t,x,n*G,G);r===O.current&&d({sql:x,page:n,result:i,running:!1})}catch(e){r===O.current&&d({sql:x,page:n,error:e.message,running:!1})}},A=(e,t)=>{if(!s.from)return;let n=t===void 0?void 0:w[t],r=Te(n?.table??e,g.map(e=>e.alias)),i=e=>o.get(E(e.schema,e.table))?.columns[0]?.name??``,a=n?n.on.map(e=>({id:C(),left:{source:n.via,column:e.from},op:`=`,right:{source:r.id,column:e.to},asText:!1})):[{id:C(),left:{source:s.from.id,column:i(s.from)},op:`=`,right:{source:r.id,column:i(r)},asText:!1}];_(e=>({...e,joins:[...e.joins,{id:C(),kind:`inner`,source:r,on:a}]}))},j=e=>_(t=>({...t,items:[...t.items,{...e,id:C()}]})),M=e=>o.get(E(e.schema,e.table))?.columns[0]?.name??``;if(i.error)return(0,W.jsx)(`p`,{className:`text-destructive text-sm`,children:i.error});if(i.loading||!i.data)return(0,W.jsx)(he,{className:`h-40`});let N=B(s),P=u&&u.sql!==x;return(0,W.jsxs)(`div`,{className:`flex max-w-5xl flex-col gap-4`,children:[(0,W.jsxs)(`p`,{className:`text-muted-foreground flex items-center gap-2 text-sm`,children:[(0,W.jsx)(xe,{className:`size-4 shrink-0`}),` Builds a query that reads rows. Nothing here can insert, change or delete data.`]}),(0,W.jsx)(Y,{title:`From`,hint:`The table the rows come from.`,children:(0,W.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:(0,W.jsx)(Xe,{catalog:o,label:`Table to start from`,value:s.from?`${s.from.schema}\u0001${s.from.table}`:void 0,onChange:e=>_(t=>{let n=t.from?{...t.from,schema:e.schema,table:e.name,alias:we(e.name,t.joins.map(e=>e.source.alias))}:Te(e,[]),r=t.items.length>0?t.items:[{id:C(),source:n.id,column:o.get(E(e.schema,e.name))?.columns[0]?.name??``}];return{...t,from:n,items:r}})})})}),s.from&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(Y,{title:`Join`,hint:`Add tables whose rows match yours. A foreign key is not needed: pick any two columns that hold the same thing.`,children:[s.joins.map(e=>(0,W.jsx)(Ze,{ctx:h,join:e,keys:b,onChange:e=>_(t=>({...t,joins:t.joins.map(t=>t.id===e.id?e:t)})),onRemove:()=>l(Be(s,o,e.id))},e.id)),(0,W.jsx)(Xe,{catalog:o,label:`Add a table to join`,onChange:A,children:w.length>0&&(0,W.jsx)(`optgroup`,{label:`Related by a foreign key`,children:w.map((e,t)=>(0,W.jsx)(`option`,{value:`related\u0001${t}`,children:e.label},t))})})]}),(0,W.jsxs)(Y,{title:`Columns`,hint:N?`Counts, sums and the like are worked out for each combination of the other columns.`:`What to show. Use a count, sum, ... to group rows instead.`,children:[s.items.map(e=>(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,W.jsx)(Je,{ctx:h,expr:e,mode:`item`,label:`Column`,onChange:t=>_(n=>({...n,items:n.items.map(n=>n.id===e.id?{...t,id:e.id,...e.alias?{alias:e.alias}:{}}:n)}))}),(0,W.jsx)(`input`,{"aria-label":`Name in the result`,className:`${K} w-36`,placeholder:`name in result`,value:e.alias??``,onChange:t=>_(n=>({...n,items:n.items.map(n=>n.id===e.id?{...n,alias:t.target.value||void 0}:n)}))}),(0,W.jsx)(Z,{label:`Remove this column`,onClick:()=>_(t=>({...t,items:t.items.filter(t=>t.id!==e.id)}))})]},e.id)),(0,W.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,W.jsx)(X,{onClick:()=>j({source:s.from.id,column:M(s.from)}),children:`column`}),(0,W.jsx)(X,{onClick:()=>j({source:s.from.id,column:q,aggregate:`count`}),children:`count of rows`}),g.map(e=>(0,W.jsxs)(m,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>_(t=>({...t,items:[...t.items,...(o.get(E(e.schema,e.table))?.columns??[]).filter(n=>!t.items.some(t=>t.source===e.id&&t.column===n.name&&!t.aggregate&&!t.bucket)).map(t=>({id:C(),source:e.id,column:t.name}))]})),children:[`all of `,e.alias]},e.id))]})]}),(0,W.jsx)(Y,{title:`Filter`,hint:`Only the rows that match.`,children:(0,W.jsx)($,{ctx:h,group:s.where,mode:`where`,root:!0,onChange:e=>_(t=>({...t,where:e}))})}),N&&(0,W.jsx)(Y,{title:`Having`,hint:`Filter on the totals, e.g. customers with more than 5 orders.`,children:(0,W.jsx)($,{ctx:h,group:s.having,mode:`having`,root:!0,onChange:e=>_(t=>({...t,having:e}))})}),(0,W.jsxs)(Y,{title:`Sort and limit`,children:[s.sort.map(e=>(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,W.jsx)(Je,{ctx:h,expr:e.expr,mode:`sort`,label:`Sort by`,onChange:t=>_(n=>({...n,sort:n.sort.map(n=>n.id===e.id?{...n,expr:t}:n)}))}),(0,W.jsxs)(`select`,{"aria-label":`Direction`,className:K,value:e.descending?`desc`:`asc`,onChange:t=>_(n=>({...n,sort:n.sort.map(n=>n.id===e.id?{...n,descending:t.target.value===`desc`}:n)})),children:[(0,W.jsx)(`option`,{value:`asc`,children:`lowest first`}),(0,W.jsx)(`option`,{value:`desc`,children:`highest first`})]}),(0,W.jsx)(Z,{label:`Remove this sort`,onClick:()=>_(t=>({...t,sort:t.sort.filter(t=>t.id!==e.id)}))})]},e.id)),(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 text-sm`,children:[(0,W.jsx)(X,{onClick:()=>{let e=s.items[0];_(t=>({...t,sort:[...t.sort,{id:C(),expr:e?{source:e.source,column:e.column,...e.aggregate?{aggregate:e.aggregate}:{},...e.bucket?{bucket:e.bucket}:{}}:{source:t.from.id,column:M(t.from)},descending:!1}]}))},children:`sort`}),(0,W.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(`span`,{className:`text-muted-foreground`,children:`Limit`}),(0,W.jsx)(`input`,{"aria-label":`Limit`,type:`number`,min:1,placeholder:`none`,className:`${K} w-24`,value:s.limit??``,onChange:e=>_(t=>({...t,limit:e.target.value===``?null:Math.max(1,Math.floor(Number(e.target.value))||1)}))})]}),(0,W.jsxs)(`label`,{className:`flex items-center gap-2`,title:`Leave out rows that repeat`,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:s.distinct,onChange:e=>_(t=>({...t,distinct:e.target.checked}))}),` unique rows only`]}),s.items.some(e=>e.bucket)&&(0,W.jsxs)(`label`,{className:`flex items-center gap-2`,title:`Days, months, ... of a timestamp with time zone are cut in this zone`,children:[(0,W.jsx)(`span`,{className:`text-muted-foreground`,children:`Time zone`}),(0,W.jsx)(`input`,{"aria-label":`Time zone`,className:`${K} w-40`,list:`builder-zones`,placeholder:`session's`,value:s.zone??``,onChange:e=>_(t=>({...t,zone:e.target.value||void 0}))}),(0,W.jsx)(`datalist`,{id:`builder-zones`,children:n().map(e=>(0,W.jsx)(`option`,{value:e},e))})]})]})]})]}),(0,W.jsxs)(Y,{title:`SQL`,action:(0,W.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,W.jsxs)(m,{type:`button`,disabled:Se||u?.running,onClick:()=>void k(0),children:[u?.running?(0,W.jsx)(ae,{className:`size-4 animate-spin`}):(0,W.jsx)(me,{className:`size-4`}),` Run`]}),(0,W.jsxs)(m,{type:`button`,variant:`outline`,disabled:!x,onClick:()=>x&&ee(t,x,!1),children:[(0,W.jsx)(ye,{className:`size-4`}),` Edit as SQL`]}),(0,W.jsxs)(m,{type:`button`,variant:`outline`,disabled:!x,onClick:()=>x&&void navigator.clipboard.writeText(x).catch(()=>{}),children:[(0,W.jsx)(be,{className:`size-4`}),` Copy`]}),(0,W.jsxs)(m,{type:`button`,variant:`ghost`,disabled:!s.from,onClick:()=>{l(T()),d(void 0)},children:[(0,W.jsx)(oe,{className:`size-4`}),` Start over`]})]}),children:[x?(0,W.jsx)(`pre`,{"aria-label":`Generated SQL`,className:`bg-muted/40 overflow-x-auto rounded-lg p-3 font-mono text-xs whitespace-pre`,children:x}):(0,W.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`Pick a table and a column to see the query.`}),S.length>0&&(0,W.jsx)(`ul`,{className:`text-xs`,children:S.map((e,t)=>(0,W.jsxs)(`li`,{className:`flex items-start gap-1 ${e.level===`error`?`text-destructive`:`text-amber-500`}`,children:[(0,W.jsx)(se,{className:`mt-0.5 size-3 shrink-0`}),` `,e.text]},t))})]}),u?.error&&(0,W.jsx)(`p`,{className:`text-destructive text-sm break-words`,children:u.error}),u?.result&&(0,W.jsxs)(`div`,{className:P?`opacity-60`:void 0,children:[P&&(0,W.jsx)(`p`,{className:`text-muted-foreground mb-2 text-xs`,children:`The query has changed since this ran.`}),(0,W.jsxs)(`p`,{className:`text-muted-foreground mb-2 text-xs`,children:[u.result.rows.length===0?u.page>0?`no more rows`:`0 rows`:`rows ${u.page*G+1}-${u.page*G+u.result.rows.length}${u.result.truncated?``:` (${u.page*G+u.result.rows.length} in all)`}`,` `,`in `,_e(u.result.durationMs)]}),(0,W.jsx)(te,{data:u.result,fetchAll:()=>e.exportSql(t,u.sql),filename:`query-builder-result`}),(0,W.jsxs)(pe,{children:[(0,W.jsx)(ce,{children:(0,W.jsx)(de,{children:u.result.columns.map((e,t)=>(0,W.jsx)(le,{title:e.type,children:e.name},t))})}),(0,W.jsx)(ue,{children:u.result.rows.map((e,t)=>(0,W.jsx)(de,{children:e.map((e,t)=>(0,W.jsx)(fe,{children:e===null?(0,W.jsx)(`span`,{className:`text-muted-foreground italic`,children:`NULL`}):(0,W.jsx)(re,{value:e,type:u.result.columns[t].type,zone:ge})},t))},t))})]}),(u.page>0||u.result.truncated)&&(0,W.jsx)(`div`,{className:`text-muted-foreground mt-3 flex items-center gap-4 text-xs`,children:(0,W.jsx)(ne,{page:u.page,hasMore:u.result.truncated,disabled:u.running,onPage:e=>void k(e)})})]})]})}export{et as BuilderView};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{at as e}from"./route-
|
|
1
|
+
import{at as e}from"./route-7eu-iAqD.js";var t={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};t.node;var n=e(t);export{n as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function w(){}var T={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function D(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function O(e,t){return D(e.type,t,e.props)}function k(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function A(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ee=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?A(``+e.key):t.toString(36)}function te(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(w,w):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(ee,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(k(o)&&(o=O(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ee,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=M(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=M(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return M(te(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function N(e,t,n){if(e==null)return e;var r=[],i=0;return M(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function P(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var F=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)};function I(e){var t=T.T,n={};n.types=t===null?null:t.types,T.T=n;try{var r=e(),i=T.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(w,F)}catch(e){F(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),T.T=t}}function ne(e){var t=T.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else I(ne.bind(null,e))}var re={map:N,forEach:function(e,t,n){N(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!k(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=re,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=x,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},e.addTransitionType=ne,e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!E.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return D(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)E.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return D(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=k,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:P}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=I,e.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},e.use=function(e){return T.H.use(e)},e.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},e.useCallback=function(e,t){return T.H.useCallback(e,t)},e.useContext=function(e){return T.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return T.H.useEffect(e,t)},e.useEffectEvent=function(e){return T.H.useEffectEvent(e)},e.useId=function(){return T.H.useId()},e.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return T.H.useMemo(e,t)},e.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},e.useRef=function(e){return T.H.useRef(e)},e.useState=function(e){return T.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return T.H.useTransition()},e.version=`19.3.1`})),u=o(((e,t)=>{t.exports=l()})),d=c(u(),1),f=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function p(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:f(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var m=e=>{let t=``,n=!1;for(let r of e)r===`-`||r===`_`||r<=` `?n=t.length>0:(t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1);return t},h=e=>{let t=m(e);return t.charAt(0).toUpperCase()+t.slice(1)},g=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),_={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function v(e){return e!=null}function y(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??_.width,a=e.size??e.height??_.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?g(...c):g(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??_[`stroke-width`])*Number(e.size??e.width??_.width)/Number(t.size??t.width??_.width):t.strokeWidth??_[`stroke-width`];return[`svg`,{...Object.entries(_).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&v(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&v(t.width)&&{[r(`width`)]:t.width},...`height`in t&&v(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function b(e,t={}){return y(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var x=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},S=(0,d.createContext)({}),C=()=>(0,d.useContext)(S),w=(0,d.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:l=[],icon:u={node:l,aliases:[],size:24},...f},p)=>{let{size:m=24,strokeWidth:h=2,absoluteStrokeWidth:_=!1,nonScalingStroke:v=!1,color:y=`currentColor`,className:S=``}=C()??{},w=!!c||x(f),[T,E,D=[]]=b(u,{color:e??y,width:n??t??m,height:r??t??m,strokeWidth:i??h,absoluteStrokeWidth:a??_,nonScalingStroke:o??v,className:g(S,s),hasA11yProp:w,attributes:f});return(0,d.createElement)(T,{ref:p,...E},[...D.map(([e,t])=>(0,d.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function T(e,t=[],n=[]){let r=typeof e==`string`?p(e,t,n):e,i=(0,d.forwardRef)(({className:e,...t},n)=>(0,d.createElement)(w,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=h(r.name)),i}var E=48,D=(e,t=0)=>{let n=new Int32Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r)-E-t;return n},O=e=>{let t=new Int32Array(e.length+1);for(let n=0;n<e.length;n++)t[n+1]=t[n]+e[n];return t},k=e=>{let t=new Int32Array(e.length),n=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r)-E;n+=i>>>1^-(i&1),t[r]=n}return t},A=384,ee=[],j=O(D(`E0500002005282000000002000150000020021820000011200000003022202000300004200120000200420001200021200301200010400162000010000220021010:2192001200220012000220012000200200200400010200040000000000400200108200110100000022010313000162002000020020012020080213000228200000000082000000000120002000120020020040101020300130001001010`)),te=O(D(`:11111111211111119311546544411119731869:671397415686432441111111111161114151214313433415:78311132233313187211117221449443411141111151152226611131111112212518142224214215421421542142424242516171151615616347111111111197911327451111111111111111111113134714133513411111311111111111111111111112444411111342312715245411117:3`)),M=`@containerabcdefghinlmoprstunderlineviawzccentlignnimatespectuto-colsrowsaglorightnessckdrop-sisbcontrastfiltergrayscalehue-rotateinvertopacityslurrightnessaturateepia-coniclinearpositionradialsizeockurrderttom-belrstxyespacing-xyaretoursorlnt-umnsendspantartainentrasteividerop-shadowurationcorationlay-xyasendillexontromlter-featuresstretchapr-xyayscaleidow-colsrowsue-rotatedentlinesetvert-beringsxyeshadoweiadingftnest-clamp-imageabein-lrstxyskx--b-coniclpositionrsizet-x-y-fromto-fromto-inearfromto-fromto-adialfromto-fromtofromtofromtofromtoblockhinlinew-screenesblockhinlinewbjectpacityrutlinederigin-offsetbelrstxyesrspective-originaceholderioghtng-offsettateundedw-xyz-belrstlreseslr-endspantartaturatecepiahizekewpace-taleroll-xyz-barmpbelrstxyesbelrstxyes-thumbrackadowrink-xyxyartrokeabextora-shadowpckingnsformitionlate-xyz-offsetill-changeoom`,N=(()=>{let e=j.length-1,t=new Int32Array(e);for(let n=e-1;n>=0;n--){let e=1,r=n+1;for(let i=j[n];i<j[n+1];i++)e+=t[r],r+=t[r];t[n]=e}let n=new Int32Array(j[e]),r=0;for(let i=0;i<e;i++){let e=i+1;for(let a=j[i];a<j[i+1];a++)n[r++]=e,e+=t[e]}return n})(),P=D(`02000000000000900<=0?000B000F00F00ŏI0J0LNPRTVX0000]_a00000000000000000000000rst0000000zŏ00000000000
ŏ0000000ŏ00000000000000000000000000000000000000000000000000000000000000Ë000000000000000000000Þ000000000000000000ð0000000ø0ùúûüýþÿĀāĂ㥹Ć000000000000000000000000000000000000000000ħ0ĨĪ00000000000000000000ļĽ00000Ŭ000000`,1),F=O(D(`123333359346463635126536711576`)),I=D(`93203242332583253248325D>E?F@03263243255B:032523853:0325B:8GA032542H<C=12727B:0328432553;D>E?3257D>032585:0325B:;0328B:032`),ne=D(`012113445661666666789111:5;;;;;;;;444;;;:62999<1161=62>>?61:21@ABCD4446996:64E:::;:?::64:F114GHHIHHHHIHH1HH1HH1HHHHHH::EEJ4444::EE4444441691;644444114244444:;K6666555555555555555999666664444444444444444444444226?6:66644L9M?D:111::::6DE199`),re=k(`020200202020020020020020020020200200200200200200200002020202001003040106000200200200200200200200200200200200200200200200200200200200200200200200200200200200020020020020020020002020200202002002002002002002002002002020002002020020200220200200200200200200200200200200020020020000200020002000200200200020020020002000200200200020020202002020202000200200020022000200200020020002002000200220002002000200W0Z00020020002002020002002000200g0j0002002000200200020020002002000200200020020002000200002000002002002002002000200020000200002002002002002002002020020020200200200200200200200200202020020020020020020020020002002002020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020002002002002002002000200200200200200200200200200020202020002000200020002002002002000020200200`),ie=(()=>{let e=new Int32Array(319).fill(-1),t=k(`02422242:222222242224222242442222222422222244442242226224222426222422442462222422622222222626222462242622422622422424242422222222422222222242422222222222222222622442224222222222222224424442262222222222222222222226224222424242422224422422422222`),n=k(`02222222222222222222202222222222222222222222221422222222222222222222222222222222222Y\\222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221422222222222222222222222222222222222222Ŀł222222222222222222`);for(let r=0;r<t.length;r++)e[t[r]]=n[r];return e})(),ae=`container |break-after- all auto avoid avoid-page column left page right|break-before- all auto avoid avoid-page column left page right|break-inside-a uto void void-column void-page|box-decoration- clone slice|box- border content| contents flow-root hidden table table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group| not-sr-only sr-only|float- end left none right start|clear- both end left none right start|isolat e ion-auto|overflow- auto clip hidden scroll visible|overflow-x- auto clip hidden scroll visible|overflow-y- auto clip hidden scroll visible|overscroll- auto contain none|overscroll-x- auto contain none|overscroll-y- auto contain none| absolute fixed relative static sticky| collapse invisible visible|justify- around baseline between center center-safe end end-safe evenly normal start stretch|justify-items- center center-safe end end-safe normal start stretch|justify-self- auto center center-safe end end-safe start stretch|items- baseline baseline-last center center-safe end end-safe start stretch|self- auto baseline baseline-last center center-safe end end-safe start stretch|place-content- around baseline between center center-safe end end-safe evenly start stretch|place-items- baseline center center-safe end end-safe start stretch|place-self- auto center center-safe end end-safe start stretch| antialiased subpixel-antialiased| italic not-italic|normal-nums |ordinal |slashed-zero | lining-nums oldstyle-nums| proportional-nums tabular-nums| diagonal-fractions stacked-fractions| no-underline overline| capitalize lowercase normal-case uppercase|truncate |whitespace- break-spaces normal nowrap pre pre-line pre-wrap|break- all keep normal words|wrap- anywhere break-word normal|hyphens- auto manual none|mix-blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay plus-darker plus-lighter saturation screen soft-light|table- auto fixed|caption- bottom top|backface- hidden visible|appearance- auto none|scheme- dark light light-dark normal only-dark only-light|field-sizing- content fixed|pointer-events- auto none|resize -none -x -y|snap- align-none center end start|snap- always normal|snap- both none x y|snap- mandatory proximity|touch- auto manipulation none|touch-pan- left right x|touch-pan- down up y|touch-pinch-zoom |select- all auto none text|forced-color-adjust- auto none| normal size| baseline bottom middle sub super text-bottom text-top top| bounce none ping pulse spin| auto square video| auto fr max min px|none | auto full px| fixed local scroll|clip- border content padding text|origin- border content padding| bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| no-repeat repeat repeat-round repeat-space repeat-x repeat-y| auto contain cover| gradient-to-b gradient-to-bl gradient-to-br gradient-to-l gradient-to-r gradient-to-t gradient-to-tl gradient-to-tr none|blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay saturation screen soft-light|to- b bl br l r t tl tr| auto dvh fit full lh lvh max min px screen svh| dashed dotted double hidden none solid| collapse separate|px |auto |full | content none strict| inline-size size|layout |paint |style | around baseline between center center-safe end end-safe evenly normal start stretch| alias all-scroll auto cell col-resize context-menu copy crosshair default e-resize ew-resize grab grabbing help move n-resize ne-resize nesw-resize no-drop none not-allowed ns-resize nw-resize nwse-resize pointer progress row-resize s-resize se-resize sw-resize text vertical-text w-resize wait zoom-in zoom-out| dashed dotted double solid wavy| auto from-font|reverse |initial | in in-out initial linear out| col col-reverse row row-reverse| nowrap wrap wrap-reverse| auto initial none| black bold extrabold extralight light medium normal semibold thin| condensed expanded extra-condensed extra-expanded normal semi-condensed semi-expanded ultra-condensed ultra-expanded|flow- col col-dense dense row row-dense| none subgrid| auto dvh dvw fit full lh lvh lvw max min px screen svh svw| block flex grid table| auto dvw fit full lvw max min px screen svw| loose none normal px relaxed snug tight|through |item | inside outside| decimal disc none| auto px| clip-border clip-content clip-fill clip-padding clip-stroke clip-view no-clip| add exclude intersect subtract| alpha luminance match|origin- border content fill padding stroke view|type- alpha luminance| circle ellipse| closest-corner closest-side farthest-corner farthest-side|at- bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| dvh fit full lh lvh max min none px screen svh| auto dvh dvw fit full lh lvh lvw max min none px screen svh svw| dvw fit full lvw max min none px screen svw| auto dvh dvw fit full lvh lvw max min none prose px svh svw| auto dvh dvw fit full lvh lvw max min none px screen svh svw| contain cover fill none scale-down| first last none| distant dramatic midrange near none normal|inset | full none|3d | auto smooth|gutter- auto both stable| auto none thin| inner none| auto dvh dvw fit full lvh lvw max min px svh svw|base | center end justify left right start| clip ellipsis| balance nowrap pretty wrap| normal tight tighter wide wider widest| cpu gpu none| 3d flat| all colors none opacity shadow transform| discrete normal| full px| auto dvh dvw fit full lvh lvw max min px screen svh svw| auto contents scroll transform`.split(`|`).map(e=>{let t=e.split(` `),n=t.shift();for(let e=0;e<t.length;e++)t[e]=n+t[e];return t}),oe=k(`0000000000000000000000000000000000000000000000000000000000000262242:6@200000006:240B428:4422400002046044222426220026642642462026224222824220022400000000\\00N222422242222222224062242222222422226264222422222222222222442804222422222222222222222222220<4<0204260002444020204224422`),L=k(`ɠ222222222222222222222222222222222222222222222222222222222222˕4222226>ʶ22ʷʺʷ2ʸʷ42ʴ2ʓ22>621422ɶ222ɹɼɷɺɷɺ22ɱ42222ɨ2ɧ26622ɘɓ244ƸƵ222]d24242ǖǓƚÄȫ2263ȨȥȨ2222222ǣ222222222222222222ǂƽ2ƾƵ2222222422222ƜƑ22222222222222222222144Ŧţ22Ţş222222222222222222222ĸ2ı68ĦģĦɡŰ4Ġ«®ĝ822ĔđĔ2ē2222622`),se=k(`02222222222222222222222222222222222222222222222222222222222222222202022222222222EH2200IL021042222Y\\222IL0cf2e10j2222U00X202[^2y0000120|{~22
:22|22222222222G000qOVI00000}2>40000B00000I¨©000¬00000000000000021M®00°000000000000000000000222HGHa1º222¿2À2222ÉÌ000°2±`),ce=new Int32Array(995),le=new Int32Array(995),ue=new Int32Array(995),de=``,fe=new Int32Array(1038);{let e=new Map,t=0,n=0;for(let r=0;r<oe.length;r++)for(let i of ae[se[r]]){let a=e.get(i);a===void 0&&(a=t++,e.set(i,a),fe[a*2]=de.length,fe[a*2+1]=i.length,de+=i),ce[n]=oe[r],le[n]=L[r],ue[n]=a,n++}}var pe=k(`0b2N:222@R>F@286¦2@H2D266226FB22B2>BD\\6N22222Z222D222p`),me=O(D(`1::24444432:442:44:44>222222:44:4421322511111311111114`)),he=k(`24A;33N=C@H4A;33N=C@<27;83:;8393NQ:3NQʰ222ˉºŴŽ2R2=18cƴÅŇ=cĞÛC1ƈǝȈ:ħ25=11D3A@4=<1;1DEr25;11B3?<6;:371BCn9@7=<8192>2E121@9@EHE@9>2T25511<398454131<=V25511<398454131<=ƧNž2Đå242L222290000f22500ɛ000ǘ222`),ge=D(`ij`),_e=D(``),ve=D(`1`),ye={GROUP_COUNT:A,customValidatorNames:ee,edgeStart:j,labelStart:te,labelText:M,edgeTarget:N,nodeGroup:P,nodeVlist:ie,vlistPat:F,vlistOps:I,vlistRef:ne,vlistGroup:re,litAnchor:ce,litGroup:le,litPool:ue,poolOffsets:fe,poolText:de,adjGid:pe,adjStart:me,adjTgt:he,patGid:ge,patTgt:_e,postfixLookupGroups:ve,orderSensitiveModifiers:`* ** after backdrop before details-content file first-letter first-line marker placeholder selection`},be=`line`in Error(),xe=-1,Se=-1,Ce=(e,t,n)=>{let r=2166136261;for(let i=t;i<n;i++)r=Math.imul(r^e.charCodeAt(i),16777619);return r},we=(e,t,n)=>{let r=n-t,i=Math.imul(r,2654435761)^e.charCodeAt(t);if(r>3){let a=r>>2,o=r>>1;i=Math.imul(i^e.charCodeAt(t+1)<<8^e.charCodeAt(t+2)<<16^e.charCodeAt(t+a),2246822507),i=Math.imul(i^e.charCodeAt(t+o)<<8^e.charCodeAt(t+o+a)<<16^e.charCodeAt(n-3),3266489909),i^=e.charCodeAt(n-2)<<8^e.charCodeAt(n-1)<<16;for(let r=t+3,a=n-4;r<t+8&&r<a;r++,a--)i=Math.imul(i^e.charCodeAt(r)^e.charCodeAt(a)<<8,16777619)}return i^i>>>15},Te=(e,t,n={})=>{let{GROUP_COUNT:r,edgeStart:i,labelStart:a,labelText:o,edgeTarget:s,nodeGroup:c,nodeVlist:l,vlistPat:u,vlistOps:d,vlistRef:f,vlistGroup:p,litAnchor:m,litGroup:h,litPool:g,poolOffsets:_,poolText:v,adjGid:y,adjStart:b,adjTgt:x,patGid:S,patTgt:C,postfixLookupGroups:w,customValidatorNames:T,orderSensitiveModifiers:E}=e,D=new Int32Array(r).fill(-1);for(let e=0;e<y.length;e++)D[y[e]]=e;let O=0;for(let e=0;e+1<b.length;e++){let t=b[e+1]-b[e];t>O&&(O=t)}let k=32;for(;k<2*(1+O+S.length);)k<<=1;let A=new Int32Array(f.length+1);for(let e=0;e<f.length;e++)A[e+1]=A[e]+u[f[e]+1]-u[f[e]];let ee=new Uint8Array(r);for(let e=0;e<w.length;e++)ee[w[e]]=1;let j=i.length-1,te=new Uint8Array(j),M=0,N=!0;for(let e=0;e<m.length;e++){te[m[e]]=1;let t=_[g[e]*2+1];t>M&&(M=t);let n=v.charCodeAt(_[g[e]*2]);(n===91||n===40)&&(N=!1)}let P=1;for(;P<m.length*2;)P<<=1;let F=new Int32Array(P).fill(-1);for(let e=0;e<m.length;e++){let t=_[g[e]*2],n=(Ce(v,t,t+_[g[e]*2+1])^Math.imul(m[e],2654435761)|0)&P-1;for(;F[n]!==-1;)n=n+1&P-1;F[n]=e}let I=(e,t,n,r)=>{let i=(Ce(t,n,r)^Math.imul(e,2654435761)|0)&P-1,a=r-n;for(;;){let r=F[i];if(r===-1)return-1;if(m[r]===e&&_[g[r]*2+1]===a){let e=_[g[r]*2],i=!0;for(let r=0;r<a;r++)if(v.charCodeAt(e+r)!==t.charCodeAt(n+r)){i=!1;break}if(i)return h[r]}i=i+1&P-1}},ne=n.cacheSize??8192,re=n.prefix??e.prefix??``,ie=re===``?``:re+`:`,ae=ie.length,oe=(T??[]).map(e=>{let n=t&&t[e];if(!n)throw Error(`cn: missing validator `+e);return n}),L=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,se=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,ce=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,le=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ue=0,de=-1,fe=-1,pe=-1,me=-1,he=e=>e>=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57||e===95,ge=e=>/\s/.test(String.fromCharCode(e)),_e=(e,t,n)=>{if(ue=0,de=-1,n-t<3)return;let r=e.charCodeAt(t),i=e.charCodeAt(n-1);if(r===91&&i===93)ue=1;else if(r===40&&i===41)ue=2;else return;pe=t+1,me=n-1;let a=t+1;if(he(e.charCodeAt(a))){for(a++;a<n-1;){let t=e.charCodeAt(a);if(!he(t)&&t!==45)break;a++}a<n-2&&e.charCodeAt(a)===58&&(de=t+1,fe=a,pe=a+1)}},ve=(e,t,n,r)=>{if(n-t!==r.length)return!1;for(let n=0;n<r.length;n++)if(e.charCodeAt(t+n)!==r.charCodeAt(n))return!1;return!0},ye=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Te=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ee=e=>!!e&&!Number.isNaN(Number(e)),De=(e,t,n)=>{if(n-t<11||!ve(e,t,t+10,`@container`))return!1;if(e.charCodeAt(t+10)===47)return n-t>=12;let r=e.charCodeAt(t+11);return r===115&&n-t>=17&&ve(e,t+10,t+16,`-size/`)||r===110&&n-t>=19&&ve(e,t+10,t+18,`-normal/`)},ke=[1,1,1,1,1,1,1,1,2,2,2,2,2,2,2],Ae=`length|number|number weight|family-name|position percentage|length size bg-size|image url|shadow|length|family-name|position percentage|length size bg-size|image url|shadow|number weight`.split(`|`).map(e=>e.split(` `)),je=[2,3,1,0,0,0,4,5,0,0,0,0,0,1,1],Me=(e,t,n,r)=>{if(e>=10){if(e>=25)return oe[e-25](t.slice(n,r));let i=e-10;if(ue!==ke[i])return!1;if(de>=0){for(let e of Ae[i])if(ve(t,de,fe,e))return!0;return!1}switch(je[i]){case 0:return!1;case 1:return!0;case 2:{let e=t.slice(pe,me);return L.test(e)&&!se.test(e)}case 3:return Ee(t.slice(pe,me));case 4:return le.test(t.slice(pe,me));default:return ce.test(t.slice(pe,me))}}switch(e){case 0:return!0;case 1:return ue===0;case 2:return ue===1;case 3:return ue===2;case 4:return ye.test(t.slice(n,r));case 5:return Ee(t.slice(n,r));case 6:{let e=t.slice(n,r);return!!e&&Number.isInteger(Number(e))}case 7:return r>n&&t.charCodeAt(r-1)===37&&Ee(t.slice(n,r-1));case 8:return Te.test(t.slice(n,r));default:return De(t,n,r)}},Ne=new Set(typeof E==`string`?E.split(` `):E),Pe=(e,t,n,r,i,a)=>{let o=Ce(t,n,r)^(i?2654435769:0),s=e.get(o);if(s!==void 0)outer:for(let e=0;e<s.length;e++){let a=s[e];if(a.imp===i&&a.k.length===r-n){for(let e=0;e<a.k.length;e++)if(a.k.charCodeAt(e)!==t.charCodeAt(n+e))continue outer;return a.id}}else e.set(o,s=[]);let c=t.slice(n,r),l=a(c);return s.push({k:c,imp:i,id:l}),l},Fe=new Map,Ie=new Map,Le=2,Re=4096,ze=(e,t)=>{let n=[],r=0,i=0,a=0;for(let t=0;t<e.length;t++){let o=e.charCodeAt(t);r===0&&i===0&&o===58?(n.push(e.slice(a,t)),a=t+1):o===91?r++:o===93?r--:o===40?i++:o===41&&i--}n.push(e.slice(a));let o=n[0];if(n.length>1){let e=[],t=[];for(let r of n)r.charCodeAt(0)===91||Ne.has(r)?(t.length&&(e.push(...t.sort()),t=[]),e.push(r)):t.push(r);t.length&&e.push(...t.sort()),o=e.join(`:`)}let s=t?o+` !`:o,c=Ie.get(s);return c===void 0&&Ie.set(s,c=Le++),c},Be=new Map,Ve=r,R=r+4096,He=()=>Ve++,z=2097152,Ue=8192,B=new Int32Array(Ue),V=Array(Ue).fill(null),We=new Int32Array(Ue),Ge=new Int32Array(Ue),Ke=new Uint8Array(Ue),qe=0,Je=(e,t,n,r,i,a,o,s)=>{let c=e;if(V[e]!==null){if(V[e|1]===null)c=e|1;else if(!(qe++&3))c=e|qe>>2&1;else return}V[c]=t.slice(n,r),B[c]=i,We[c]=a,Ge[c]=o,Ke[c]=s},Ye=()=>V.fill(null),H=256,Xe=[new Int32Array(H),new Int32Array(H),new Int32Array(H),new Int32Array(H)],[Ze,U,Qe,$e]=Xe,et=new Uint8Array(H),tt=new Uint8Array(H),nt=()=>{H*=2,Xe=Xe.map(e=>{let t=new Int32Array(H);return t.set(e),t}),[Ze,U,Qe,$e]=Xe;let e=new Uint8Array(H);e.set(et),et=e,tt=new Uint8Array(H)},W=64,rt=new Int32Array(W),it=new Int32Array(W),at=new Int32Array(r),ot=2048,st=21,ct=new Float64Array(ot),lt=new Int32Array(ot),ut=0,dt=(e,t)=>{if(e===0&&t<r)return at[t]===ut?1:(at[t]=ut,0);let n=e*2097152+t+1,i=Math.imul(n,2654435761)>>>st;for(;lt[i]===ut;){if(ct[i]===n)return 1;i=i+1&ot-1}return ct[i]=n,lt[i]=ut,0},ft=(e,t,n,r,i)=>{if(n-t>=2&&e.charCodeAt(t)===91&&e.charCodeAt(n-1)===93){let r=-1;for(let i=t+1;i<n-1;i++)if(e.charCodeAt(i)===58){r=i;break}return r===-1||r===t+1?xe:Pe(Be,e,t+1,r,0,He)}if(r>=0&&c[r]>=0)return c[r];for(let t=i-1;t>=0;t--){let r=it[t];if(r>n)continue;let i=rt[t],a=n-r;if(te[i]===1&&a>0&&a<=M){let t=e.charCodeAt(r);if(N===!1||t!==91&&t!==40){let t=I(i,e,r,n);if(t>=0)return t}}let o=l[i];if(o<0)continue;let s=f[o],c=u[s],m=u[s+1];if(c===m)continue;_e(e,r,n);let h=A[o]-c;for(let t=c;t<m;t++)if(Me(d[t],e,r,n))return p[h+t]}return xe},pt=e=>{let t=e.length,n=0,c=0,u=!1;(Le>Re||Fe.size>Re)&&(Fe=new Map,Ie=new Map,Le=2,Ye()),Ve>R&&(Be=new Map,Ve=r,Ye());let d=0;for(;d<t;){let f=e.charCodeAt(d);if(f===32||f>=9&&f<=13||f>=160&&ge(f)){f!==32&&(u=!0),d++;continue}let p=d,m=0;for(;d<t;){if(f=e.charCodeAt(d),f<=32){if(f===32)break;if(f>=9&&f<=13){u=!0;break}}else if(f>=160&&ge(f)){u=!0;break}m=Math.imul(m^f,16777619),d++}let h=d,g=h-p;n===H&&nt();let _=n++;Ze[_]=p,U[_]=h,c+=g,m^=Math.imul(g,2654435761);let v=m^m>>>15,y=v&8190;{let t=-1;if(B[y]===v&&V[y]!==null&&V[y].length===g?t=y:B[y|1]===v&&V[y|1]!==null&&V[y|1].length===g&&(t=y|1),t>=0){let n=V[t],r=!0;for(let t=0;t<g;t++)if(n.charCodeAt(t)!==e.charCodeAt(p+t)){r=!1;break}if(r){Qe[_]=We[t],$e[_]=Ge[t],et[_]=Ke[t];continue}}}let b=p;if(ae!==0){if(h-p<=ae||!e.startsWith(ie,p)){Qe[_]=xe,Je(y,e,p,h,v,xe,0,0);continue}b=p+ae}let x=0,S=0,C=-1,w=-1;for(let t=b;t<h;t++){let n=e.charCodeAt(t);if(x===0&&S===0){if(n===58){C=t;continue}if(n===47){w=t;continue}}n===91?x++:n===93?x--:n===40?S++:n===41&&S--}let T=C>=b?C+1:b,E=T,D=h,O=!1,k=0;D>E&&e.charCodeAt(D-1)===33?(O=!0,D--):D>E&&e.charCodeAt(E)===33&&(O=!0,E++,k=1);let A=-1;w>T&&(A=w+k,A>=D&&(A=-1));let j=E;D-E>1&&e.charCodeAt(E)===45&&(j=E+1);let M=0,N=0,P=0,F=-1,I=0;(l[0]>=0||te[0]===1)&&(rt[0]=0,it[0]=j,I=1);let ne=Se,re=0;for(let t=j;t<D;t++)if(t===A&&(ne=N<P?Se:M,re=I),M!==Se){let n=e.charCodeAt(t),r=-1;if(N<P)o.charCodeAt(N)===n?(N++,N===P&&(r=M=F)):M=Se;else{let e=i[M],t=i[M+1],c=Se;for(let i=e;i<t;i++){let e=a[i];if(o.charCodeAt(e)===n){a[i+1]-e===1?r=c=s[i]:(N=e+1,P=a[i+1],F=s[i],c=M);break}}M=c}if(r>=0&&(l[r]>=0||te[r]===1)&&t+1<D&&e.charCodeAt(t+1)===45){if(I===W){W*=2;let e=new Int32Array(W);e.set(rt),rt=e;let t=new Int32Array(W);t.set(it),it=t}rt[I]=r,it[I]=t+2,I++}}A===D&&(ne=N<P?Se:M,re=I);let oe=N<P?Se:M,L,se=!1;if(A>=0){if(se=!0,L=ft(e,E,A,ne,re),L!==xe&&L<r&&ee[L]){let t=ft(e,E,D,oe,I);t!==xe&&t!==L&&(L=t,se=!1)}else L===xe&&(L=ft(e,E,D,oe,I),se=!1)}else L=ft(e,E,D,oe,I);let ce=0,le=0;L===xe?Qe[_]=xe:(le=+!!se,ce=b>=C?+!!O:Pe(Fe,e,b,C,+!!O,e=>ze(e,O)),Qe[_]=L,et[_]=le,$e[_]=ce),Je(y,e,p,h,v,L,ce,le)}if(n===0)return``;if(n===1)return Ze[0]===0&&U[0]===t?e:e.slice(Ze[0],U[0]);if(n*k>ot){for(;n*k>ot;)ot<<=1,st--;ct=new Float64Array(ot),lt=new Int32Array(ot)}if(Le>=z||Ve>=z)throw Error(`cn: too many distinct classes in one merge`);ut=ut+1|0,ut===0&&(at.fill(0),lt.fill(0),ut=1);let f=!1;for(let e=n-1;e>=0;e--){let t=Qe[e];if(t===xe){tt[e]=1;continue}let n=$e[e];if(dt(n,t)===1)tt[e]=0,f=!0;else if(tt[e]=1,t<r){let r=D[t];if(r>=0)for(let e=b[r];e<b[r+1];e++)dt(n,x[e]);if(et[e]&1)for(let e=0;e<S.length;e++)S[e]===t&&dt(n,C[e])}}if(!f&&!u&&t===c+n-1)return e;let p=``,m=0;for(;m<n;){if(!tt[m]){m++;continue}let t=Ze[m],r=U[m],i=m+1;for(;i<n&&tt[i]&&Ze[i]===r+1&&e.charCodeAt(r)===32;)r=U[i],i++;p.length>0&&(p+=` `),p+=e.slice(t,r),m=i}return p},G=16384,K=new Int32Array(G*2),mt=0,q=1,ht=Object.create(null),gt=Object.create(null),_t=new Map,vt=new Map,yt=0,bt=0,J=()=>{mt^=G,q=q+1|0,bt=0},xt=e=>{let t=ht[e];if(t!==void 0)return t;let n=we(e,0,e.length),r=(n&16383)+mt,i=K[r]===(n^q)||K[r^G]===(n^q-1);return i&&(t=gt[e],t!==void 0)?(ht[e]=t,t):(t=pt(e),i?(ht[e]=t,++yt>ne&&(yt=0,gt=ht,ht=Object.create(null),J())):(K[r]=n^q,++bt>G&&J()),t)},St=e=>{let t=_t.get(e);if(t!==void 0)return t;let n=we(e,0,e.length),r=(n&16383)+mt,i=K[r]===(n^q)||K[r^G]===(n^q-1);return i&&(t=vt.get(e),t!==void 0)?(_t.set(e,t),t):(t=pt(e),i?(_t.set(e,t),++yt>ne&&(yt=0,vt=_t,_t=new Map,J())):(K[r]=n^q,++bt>G&&J()),t)},Ct=e=>{let t=we(e,0,e.length),n=(t&16383)+mt;return K[n]===(t^q)||K[n^G]===(t^q-1)||(K[n]=t^q,++bt>G&&J(),!1)},Y=ne===0?pt:be?e=>{let t=_t.get(e);return t===void 0?St(e):t}:xt;return{merge:function(){return arguments.length===1&&typeof arguments[0]==`string`?Y(arguments[0]):Y(Oe.apply(null,arguments))},mergeString:Y,seenBefore:ne===0?()=>!1:Ct,mergeUncached:pt}},Ee=(e,t)=>{if(!e)return``;if(typeof e==`string`)return e;let n=``;if(typeof e.length==`number`&&(!t||Array.isArray(e))){let r=e;for(let e=0;e<r.length;e++){let i=r[e];if(!i)continue;let a=typeof i==`string`?i:Ee(i,t);a&&(n&&(n+=` `),n+=a)}return n}if(t){if(typeof e==`number`)return``+e;if(typeof e==`object`)for(let t in e)e[t]&&(n&&(n+=` `),n+=t)}return n},De=(e,t)=>{let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(!i)continue;let a=typeof i==`string`?i:Ee(i,t);a&&(n&&(n+=` `),n+=a)}return n},Oe=function(){return De(arguments,!1)},ke=256,Ae=16,je=1024,Me=4096,Ne=(e,t)=>{let n=t===void 0?()=>!0:t.seenBefore,r=t===void 0?e:t.mergeUncached,i=new Map,a=new Map,o=0,s=null,c=null,l=[],u=[],d=0,f=(t,n,r)=>{c===null&&(c=Array(Me).fill(``),l=Array(Me).fill(``),u=Array(Me).fill(``));let i=we(t,0,t.length)&4094;if(c[i]===t&&l[i]===n)return u[i];if(c[i|1]===t&&l[i|1]===n)return u[i|1];let a=e(r?n+` `+t:t),o=c[i]===``?i:i|(c[i|1]===``?1:d++&1);return c[o]=t,l[o]=n,u[o]=a,a},p=(e,t,n,r)=>{let i=0;if(t){if(t!==e.a0)return!1;i=1}if(n){if(n!==(i===0?e.a0:e.a1))return!1;i++}if(r){if(r!==(i===0?e.a0:i===1?e.a1:e.a2))return!1;i++}return i===e.t},m=(e,t)=>{let n=e.a,r=0;for(let e=0;e<t.length;e++){let i=t[e];if(i){if(i!==n[r])return!1;r++}}return r===e.t},h=(t,c)=>{let l=t.length,u=s===null?null:s.n;if(!c){if(u!==null&&m(u,t))return s=u,u.r;if(s!==null&&s!==u&&m(s,t))return s.r}let d=``,p=-1,h=0,g=!1;for(let e=0;e<l;e++){let n=t[e];if(n){if(typeof n!=`string`){if(n=t[e]=Ee(n,!0),!n)continue;g=!0}p<0&&(d=n,p=e),h++}}if(h===0)return``;if(h===1)return e(d);if(g){if(u!==null&&m(u,t))return s=u,u.r;if(s!==null&&s!==u&&m(s,t))return s.r}let _=i.get(d);_===void 0&&(_=a.get(d),_!==void 0&&i.set(d,_));let v=null;if(_!==void 0){if(_.skip>0){_.skip--,s=null;let e=d;for(let n=p+1;n<l;n++){let r=t[n];r&&(e+=` `+r)}return f(e,``,!1)}let e=_.e;outer:for(let n=0;n<e.length;n++){let r=e[n];if(r.t!==h)continue;let i=r.a,a=1;for(let e=p+1;e<l;e++){let n=t[e];if(n&&n!==i[a++])continue outer}v=r;break}v!==null&&(_.miss=0)}if(v===null){let s=d,c=[d];for(let e=p+1;e<l;e++){let n=t[e];n&&(s+=` `+n,c.push(n))}if(!n(s))return r(s);v={r:e(s),t:c.length,a0:c[0],a1:c[1],a2:c[2]??``,a:c,n:null},_===void 0?i.set(d,_={e:[],miss:0,skip:0,at:0}):++_.miss>Ae&&(_.miss=Ae,_.skip=je,_.e.length=0,_.at=0);let u=_.e;u.length<ke?u.push(v):(u[_.at]=v,_.at=_.at+1&255),++o>1e3&&(o=0,a=i,i=new Map)}return s!==null&&s!==v&&(s.n=v),s=v,v.r},g=t=>Array.isArray(t)?h(t.slice(),!1):e(Ee(t,!0));return function(t,n,r){let a=arguments.length;if((a|1)==3){let e=s;if(e!==null){let i=e.n;if(i!==null&&p(i,t,n,r))return s=i,i.r;if(e!==i&&p(e,t,n,r))return e.r}if(a===2&&typeof n==`string`&&n!==``){let e=i.get(t);if(e!==void 0&&e.skip>0)return e.skip--,s=null,f(n,t,!0)}return h([t,n,r],!0)}if(a===1)return typeof t==`string`?e(t):g(t);let o=s;if(o!==null){let e=o.n;if(e!==null){let t=e.a,n=0,r=!0;for(let e=0;e<a;e++){let i=arguments[e];if(i){if(i!==t[n]){r=!1;break}n++}}if(r&&n===e.t)return s=e,e.r}if(o!==e){let e=o.a,t=0,n=!0;for(let r=0;r<a;r++){let i=arguments[r];if(i){if(i!==e[t]){n=!1;break}t++}}if(n&&t===o.t)return o.r}}let c=[];for(let e=0;e<a;e++)c.push(arguments[e]);return h(c,!0)}},Pe=Te(ye),Fe=Ne(Pe.mergeString,Pe);Pe.merge;var Ie=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),Le=o(((e,t)=>{t.exports=Ie()})),Re=`psql-explorer:gucs:`;function ze(e){try{let t=JSON.parse(window.localStorage.getItem(Re+e)??`[]`);return Array.isArray(t)?t.filter(e=>typeof e?.name==`string`&&typeof e.value==`string`):[]}catch{return[]}}function Be(e,t){try{t.length===0?window.localStorage.removeItem(Re+e):window.localStorage.setItem(Re+e,JSON.stringify(t))}catch{}}var Ve=e=>e.filter(({name:e})=>e.trim()!==``).map(({name:e,value:t})=>({name:e.trim(),value:t}));async function R(e){let t=await fetch(e),n=await t.text(),r;try{r=n?JSON.parse(n):void 0}catch{}if(!t.ok||r===void 0)throw Error(r?.error??`The psql-explorer API did not answer (${t.status}). Is "psql-explorer web" running on port 7878?`);return r}var He=e=>Ve(ze(e));async function z(e,t,n){let r=await fetch(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t),signal:n}),i=await r.text(),a;try{a=i?JSON.parse(i):void 0}catch{}if(!r.ok||a===void 0)throw Object.assign(Error(a?.error??`The psql-explorer API did not answer (${r.status}).`),{statement:a?.statement});return a}async function Ue(e){let t=await fetch(e,{method:`DELETE`});if(!t.ok){let e=await t.json().catch(()=>void 0);throw Error(e?.error??`The psql-explorer API did not answer (${t.status}).`)}}var B=e=>new URLSearchParams(Object.entries(e).flatMap(([e,t])=>t===void 0?[]:[[e,String(t)]])).toString(),V=e=>`/api/envs/${encodeURIComponent(e)}`,We={writeMode:e=>R(`${V(e)}/write`),setWriteMode:(e,t)=>z(`${V(e)}/write`,{enabled:t}),prompt:()=>R(`/api/prompt`),answer:({envName:e,field:t},n)=>z(`/api/prompt`,{envName:e,field:t,value:n}),environments:()=>R(`/api/envs`),info:e=>R(`${V(e)}/info`),schemas:e=>R(`${V(e)}/schemas`),objects:(e,t)=>R(`${V(e)}/objects?${B({schema:t})}`),relation:(e,{schema:t,name:n})=>R(`${V(e)}/object?${B({kind:`table`,schema:t,name:n})}`),function:(e,{schema:t,name:n,args:r})=>R(`${V(e)}/object?${B({kind:`function`,schema:t,name:n,args:r})}`),sequence:(e,{schema:t,name:n})=>R(`${V(e)}/object?${B({kind:`sequence`,schema:t,name:n})}`),type:(e,{schema:t,name:n})=>R(`${V(e)}/object?${B({kind:`type`,schema:t,name:n})}`),erd:(e,t)=>R(`${V(e)}/erd?${B({schema:t})}`),searchIndex:e=>R(`${V(e)}/search-index`),find:(e,t,n)=>R(`${V(e)}/find?${B({q:t,schema:n})}`),catalog:e=>R(`${V(e)}/catalog`),functions:e=>R(`${V(e)}/functions`),query:(e,t,n=0,r=100,i)=>z(`${V(e)}/query`,{sql:t,offset:n,limit:r,settings:He(e)},i),exportSql:(e,t)=>z(`${V(e)}/export`,{sql:t,settings:He(e)}),exportTable:(e,{schema:t,name:n},{filters:r,sort:i})=>z(`${V(e)}/export`,{schema:t,table:n,filters:r,sort:i}),history:(e,t=``)=>R(`${V(e)}/history?${B({q:t||void 0,limit:200})}`),saved:e=>R(`${V(e)}/saved`),saveQuery:(e,t)=>z(`${V(e)}/saved`,t),updateSaved:(e,t,n)=>z(`${V(e)}/saved/${t}`,n),deleteSaved:(e,t)=>Ue(`${V(e)}/saved/${t}`),explain:(e,t)=>z(`${V(e)}/explain`,{sql:t,settings:He(e)}),explainAnalyze:(e,t)=>z(`${V(e)}/explain`,{sql:t,analyze:!0,settings:He(e)}),stats:e=>R(`${V(e)}/stats`),tableStats:(e,{schema:t,name:n})=>R(`${V(e)}/stats?${B({schema:t,table:n})}`),schemaDiff:(e,t,n,r)=>R(`${V(e)}/schema-diff?${B({with:t,schema:n,withSchema:r})}`),security:(e,{schema:t,name:n})=>R(`${V(e)}/security?${B({schema:t,name:n})}`),functionSecurity:(e,{schema:t,name:n,args:r})=>R(`${V(e)}/security?${B({schema:t,name:n,args:r??``})}`),roles:e=>R(`${V(e)}/roles`),dependents:(e,{kind:t,schema:n,name:r,args:i})=>R(`${V(e)}/dependents?${B({kind:t,schema:n,name:r,args:i})}`),rows:(e,{schema:t,name:n},r=0,{filters:i,sort:a}={filters:[],sort:[]})=>R(`${V(e)}/rows?${B({schema:t,table:n,limit:100,offset:r,filters:i.length>0?JSON.stringify(i):void 0,sort:a.length>0?JSON.stringify(a):void 0})}`),edit:(e,{schema:t,name:n},r,i)=>z(`${V(e)}/edit`,{schema:t,table:n,...r,apply:i}),seedSetup:(e,{schema:t,name:n})=>R(`${V(e)}/seed?${B({schema:t,table:n})}`),previewSeed:(e,{schema:t,name:n},r)=>z(`${V(e)}/seed`,{schema:t,table:n,...r}),runSeed:(e,{schema:t,name:n},r,i)=>z(`${V(e)}/seed`,{schema:t,table:n,...r,apply:!0},i),graph:(e,{schema:t,name:n},r,i)=>z(`${V(e)}/graph`,{schema:t,table:n,...r},i),cypher:(e,t,n)=>z(`${V(e)}/cypher`,t,n),expandGraph:(e,t)=>z(`${V(e)}/graph/expand`,t),design:(e,t,n=!1,r)=>z(`${V(e)}/design`,{design:t,apply:n},r),loadDesign:(e,t,n)=>R(`${V(e)}/design?${B({schema:t,name:n})}`),alter:(e,t,n=!1,r)=>z(`${V(e)}/alter`,{...t,apply:n},r),dropTable:(e,t,n,r,i=!1,a)=>z(`${V(e)}/drop-table`,{schema:t,name:n,cascade:r,apply:i},a),dependentsOf:(e,t)=>R(`${V(e)}/dependents?${B({kind:t.kind,schema:t.schema,name:t.name,table:`table`in t?t.table:void 0})}`),schemaForeignKeys:(e,t)=>R(`${V(e)}/schema-foreign-keys?${B({schema:t})}`),foreignKeys:(e,{schema:t,name:n})=>R(`${V(e)}/foreign-keys?${B({schema:t,table:n})}`),references:(e,{schema:t,name:n},r)=>z(`${V(e)}/references`,{schema:t,table:n,values:r}),profile:(e,{schema:t,name:n},r)=>R(`${V(e)}/profile?${B({schema:t,table:n,column:r})}`)};function Ge(e){let t=e.toLowerCase();if(t===`date`)return`date`;if(t===`timestamptz`||/^timestamp(\(\d+\))? with time zone/.test(t))return`timestamptz`;if(/^timestamp(\(\d+\))?( without time zone)?$/.test(t))return`timestamp`}var Ke=e=>t=>`date_trunc('${e}', ${t})`,qe=e=>t=>`extract(${e} from ${t})`,Je=[{id:`minute`,label:`Minute`,alias:`minute`,needsTime:!0,sql:Ke(`minute`)},{id:`hour`,label:`Hour`,alias:`hour`,needsTime:!0,sql:Ke(`hour`)},{id:`day`,label:`Day`,alias:`day`,sql:Ke(`day`)},{id:`week`,label:`Week`,alias:`week`,sql:Ke(`week`)},{id:`month`,label:`Month`,alias:`month`,sql:Ke(`month`)},{id:`quarter`,label:`Quarter`,alias:`quarter`,sql:Ke(`quarter`)},{id:`year`,label:`Year`,alias:`year`,sql:Ke(`year`)},{id:`dow`,label:`Day of week`,alias:`day_of_week`,sql:qe(`isodow`)},{id:`hod`,label:`Hour of day`,alias:`hour_of_day`,needsTime:!0,sql:qe(`hour`)}],Ye=e=>Je.filter(t=>!t.needsTime||e!==`date`),H=e=>Ye(e).filter(e=>[`hour`,`day`,`week`,`month`,`year`].includes(e.id)),Xe=e=>`'${e.replace(/'/g,`''`)}'`;function Ze(e,t,n){return t===`timestamptz`&&n?`${e} AT TIME ZONE ${Xe(n)}`:e}function U(e,t,n,r){return n.sql(Ze(e,t,r))}var Qe=e=>/^[a-z_][a-z0-9_$]*$/.test(e)?e:`"${e.replace(/"/g,`""`)}"`;function $e(e){let t=Ge(e.type);if(!t)return;let n=U(`q.${Qe(e.column)}`,t,e.bucket,e.zone),r=e.statement.trim().replace(/;+\s*$/,``).replace(/\n/g,`
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function w(){}var T={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function D(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function O(e,t){return D(e.type,t,e.props)}function k(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function A(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ee=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?A(``+e.key):t.toString(36)}function te(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(w,w):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(ee,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(k(o)&&(o=O(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ee,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=M(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=M(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return M(te(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function N(e,t,n){if(e==null)return e;var r=[],i=0;return M(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function P(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var F=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)};function I(e){var t=T.T,n={};n.types=t===null?null:t.types,T.T=n;try{var r=e(),i=T.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(w,F)}catch(e){F(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),T.T=t}}function ne(e){var t=T.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else I(ne.bind(null,e))}var re={map:N,forEach:function(e,t,n){N(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!k(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=re,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=x,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},e.addTransitionType=ne,e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!E.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return D(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)E.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return D(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=k,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:P}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=I,e.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},e.use=function(e){return T.H.use(e)},e.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},e.useCallback=function(e,t){return T.H.useCallback(e,t)},e.useContext=function(e){return T.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return T.H.useEffect(e,t)},e.useEffectEvent=function(e){return T.H.useEffectEvent(e)},e.useId=function(){return T.H.useId()},e.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return T.H.useMemo(e,t)},e.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},e.useRef=function(e){return T.H.useRef(e)},e.useState=function(e){return T.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return T.H.useTransition()},e.version=`19.3.1`})),u=o(((e,t)=>{t.exports=l()})),d=c(u(),1),f=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function p(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:f(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var m=e=>{let t=``,n=!1;for(let r of e)r===`-`||r===`_`||r<=` `?n=t.length>0:(t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1);return t},h=e=>{let t=m(e);return t.charAt(0).toUpperCase()+t.slice(1)},g=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),_={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function v(e){return e!=null}function y(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??_.width,a=e.size??e.height??_.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?g(...c):g(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??_[`stroke-width`])*Number(e.size??e.width??_.width)/Number(t.size??t.width??_.width):t.strokeWidth??_[`stroke-width`];return[`svg`,{...Object.entries(_).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&v(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&v(t.width)&&{[r(`width`)]:t.width},...`height`in t&&v(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function b(e,t={}){return y(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var x=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},S=(0,d.createContext)({}),C=()=>(0,d.useContext)(S),w=(0,d.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:l=[],icon:u={node:l,aliases:[],size:24},...f},p)=>{let{size:m=24,strokeWidth:h=2,absoluteStrokeWidth:_=!1,nonScalingStroke:v=!1,color:y=`currentColor`,className:S=``}=C()??{},w=!!c||x(f),[T,E,D=[]]=b(u,{color:e??y,width:n??t??m,height:r??t??m,strokeWidth:i??h,absoluteStrokeWidth:a??_,nonScalingStroke:o??v,className:g(S,s),hasA11yProp:w,attributes:f});return(0,d.createElement)(T,{ref:p,...E},[...D.map(([e,t])=>(0,d.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function T(e,t=[],n=[]){let r=typeof e==`string`?p(e,t,n):e,i=(0,d.forwardRef)(({className:e,...t},n)=>(0,d.createElement)(w,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=h(r.name)),i}var E=48,D=(e,t=0)=>{let n=new Int32Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r)-E-t;return n},O=e=>{let t=new Int32Array(e.length+1);for(let n=0;n<e.length;n++)t[n+1]=t[n]+e[n];return t},k=e=>{let t=new Int32Array(e.length),n=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r)-E;n+=i>>>1^-(i&1),t[r]=n}return t},A=384,ee=[],j=O(D(`E0500002005282000000002000150000020021820000011200000003022202000300004200120000200420001200021200301200010400162000010000220021010:2192001200220012000220012000200200200400010200040000000000400200108200110100000022010313000162002000020020012020080213000228200000000082000000000120002000120020020040101020300130001001010`)),te=O(D(`:11111111211111119311546544411119731869:671397415686432441111111111161114151214313433415:78311132233313187211117221449443411141111151152226611131111112212518142224214215421421542142424242516171151615616347111111111197911327451111111111111111111113134714133513411111311111111111111111111112444411111342312715245411117:3`)),M=`@containerabcdefghinlmoprstunderlineviawzccentlignnimatespectuto-colsrowsaglorightnessckdrop-sisbcontrastfiltergrayscalehue-rotateinvertopacityslurrightnessaturateepia-coniclinearpositionradialsizeockurrderttom-belrstxyespacing-xyaretoursorlnt-umnsendspantartainentrasteividerop-shadowurationcorationlay-xyasendillexontromlter-featuresstretchapr-xyayscaleidow-colsrowsue-rotatedentlinesetvert-beringsxyeshadoweiadingftnest-clamp-imageabein-lrstxyskx--b-coniclpositionrsizet-x-y-fromto-fromto-inearfromto-fromto-adialfromto-fromtofromtofromtofromtoblockhinlinew-screenesblockhinlinewbjectpacityrutlinederigin-offsetbelrstxyesrspective-originaceholderioghtng-offsettateundedw-xyz-belrstlreseslr-endspantartaturatecepiahizekewpace-taleroll-xyz-barmpbelrstxyesbelrstxyes-thumbrackadowrink-xyxyartrokeabextora-shadowpckingnsformitionlate-xyz-offsetill-changeoom`,N=(()=>{let e=j.length-1,t=new Int32Array(e);for(let n=e-1;n>=0;n--){let e=1,r=n+1;for(let i=j[n];i<j[n+1];i++)e+=t[r],r+=t[r];t[n]=e}let n=new Int32Array(j[e]),r=0;for(let i=0;i<e;i++){let e=i+1;for(let a=j[i];a<j[i+1];a++)n[r++]=e,e+=t[e]}return n})(),P=D(`02000000000000900<=0?000B000F00F00ŏI0J0LNPRTVX0000]_a00000000000000000000000rst0000000zŏ00000000000
ŏ0000000ŏ00000000000000000000000000000000000000000000000000000000000000Ë000000000000000000000Þ000000000000000000ð0000000ø0ùúûüýþÿĀāĂ㥹Ć000000000000000000000000000000000000000000ħ0ĨĪ00000000000000000000ļĽ00000Ŭ000000`,1),F=O(D(`123333359346463635126536711576`)),I=D(`93203242332583253248325D>E?F@03263243255B:032523853:0325B:8GA032542H<C=12727B:0328432553;D>E?3257D>032585:0325B:;0328B:032`),ne=D(`012113445661666666789111:5;;;;;;;;444;;;:62999<1161=62>>?61:21@ABCD4446996:64E:::;:?::64:F114GHHIHHHHIHH1HH1HH1HHHHHH::EEJ4444::EE4444441691;644444114244444:;K6666555555555555555999666664444444444444444444444226?6:66644L9M?D:111::::6DE199`),re=k(`020200202020020020020020020020200200200200200200200002020202001003040106000200200200200200200200200200200200200200200200200200200200200200200200200200200200020020020020020020002020200202002002002002002002002002002020002002020020200220200200200200200200200200200200020020020000200020002000200200200020020020002000200200200020020202002020202000200200020022000200200020020002002000200220002002000200W0Z00020020002002020002002000200g0j0002002000200200020020002002000200200020020002000200002000002002002002002000200020000200002002002002002002002020020020200200200200200200200200202020020020020020020020020002002002020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020002002002002002002000200200200200200200200200200020202020002000200020002002002002000020200200`),ie=(()=>{let e=new Int32Array(319).fill(-1),t=k(`02422242:222222242224222242442222222422222244442242226224222426222422442462222422622222222626222462242622422622422424242422222222422222222242422222222222222222622442224222222222222224424442262222222222222222222226224222424242422224422422422222`),n=k(`02222222222222222222202222222222222222222222221422222222222222222222222222222222222Y\\222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221422222222222222222222222222222222222222Ŀł222222222222222222`);for(let r=0;r<t.length;r++)e[t[r]]=n[r];return e})(),ae=`container |break-after- all auto avoid avoid-page column left page right|break-before- all auto avoid avoid-page column left page right|break-inside-a uto void void-column void-page|box-decoration- clone slice|box- border content| contents flow-root hidden table table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group| not-sr-only sr-only|float- end left none right start|clear- both end left none right start|isolat e ion-auto|overflow- auto clip hidden scroll visible|overflow-x- auto clip hidden scroll visible|overflow-y- auto clip hidden scroll visible|overscroll- auto contain none|overscroll-x- auto contain none|overscroll-y- auto contain none| absolute fixed relative static sticky| collapse invisible visible|justify- around baseline between center center-safe end end-safe evenly normal start stretch|justify-items- center center-safe end end-safe normal start stretch|justify-self- auto center center-safe end end-safe start stretch|items- baseline baseline-last center center-safe end end-safe start stretch|self- auto baseline baseline-last center center-safe end end-safe start stretch|place-content- around baseline between center center-safe end end-safe evenly start stretch|place-items- baseline center center-safe end end-safe start stretch|place-self- auto center center-safe end end-safe start stretch| antialiased subpixel-antialiased| italic not-italic|normal-nums |ordinal |slashed-zero | lining-nums oldstyle-nums| proportional-nums tabular-nums| diagonal-fractions stacked-fractions| no-underline overline| capitalize lowercase normal-case uppercase|truncate |whitespace- break-spaces normal nowrap pre pre-line pre-wrap|break- all keep normal words|wrap- anywhere break-word normal|hyphens- auto manual none|mix-blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay plus-darker plus-lighter saturation screen soft-light|table- auto fixed|caption- bottom top|backface- hidden visible|appearance- auto none|scheme- dark light light-dark normal only-dark only-light|field-sizing- content fixed|pointer-events- auto none|resize -none -x -y|snap- align-none center end start|snap- always normal|snap- both none x y|snap- mandatory proximity|touch- auto manipulation none|touch-pan- left right x|touch-pan- down up y|touch-pinch-zoom |select- all auto none text|forced-color-adjust- auto none| normal size| baseline bottom middle sub super text-bottom text-top top| bounce none ping pulse spin| auto square video| auto fr max min px|none | auto full px| fixed local scroll|clip- border content padding text|origin- border content padding| bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| no-repeat repeat repeat-round repeat-space repeat-x repeat-y| auto contain cover| gradient-to-b gradient-to-bl gradient-to-br gradient-to-l gradient-to-r gradient-to-t gradient-to-tl gradient-to-tr none|blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay saturation screen soft-light|to- b bl br l r t tl tr| auto dvh fit full lh lvh max min px screen svh| dashed dotted double hidden none solid| collapse separate|px |auto |full | content none strict| inline-size size|layout |paint |style | around baseline between center center-safe end end-safe evenly normal start stretch| alias all-scroll auto cell col-resize context-menu copy crosshair default e-resize ew-resize grab grabbing help move n-resize ne-resize nesw-resize no-drop none not-allowed ns-resize nw-resize nwse-resize pointer progress row-resize s-resize se-resize sw-resize text vertical-text w-resize wait zoom-in zoom-out| dashed dotted double solid wavy| auto from-font|reverse |initial | in in-out initial linear out| col col-reverse row row-reverse| nowrap wrap wrap-reverse| auto initial none| black bold extrabold extralight light medium normal semibold thin| condensed expanded extra-condensed extra-expanded normal semi-condensed semi-expanded ultra-condensed ultra-expanded|flow- col col-dense dense row row-dense| none subgrid| auto dvh dvw fit full lh lvh lvw max min px screen svh svw| block flex grid table| auto dvw fit full lvw max min px screen svw| loose none normal px relaxed snug tight|through |item | inside outside| decimal disc none| auto px| clip-border clip-content clip-fill clip-padding clip-stroke clip-view no-clip| add exclude intersect subtract| alpha luminance match|origin- border content fill padding stroke view|type- alpha luminance| circle ellipse| closest-corner closest-side farthest-corner farthest-side|at- bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| dvh fit full lh lvh max min none px screen svh| auto dvh dvw fit full lh lvh lvw max min none px screen svh svw| dvw fit full lvw max min none px screen svw| auto dvh dvw fit full lvh lvw max min none prose px svh svw| auto dvh dvw fit full lvh lvw max min none px screen svh svw| contain cover fill none scale-down| first last none| distant dramatic midrange near none normal|inset | full none|3d | auto smooth|gutter- auto both stable| auto none thin| inner none| auto dvh dvw fit full lvh lvw max min px svh svw|base | center end justify left right start| clip ellipsis| balance nowrap pretty wrap| normal tight tighter wide wider widest| cpu gpu none| 3d flat| all colors none opacity shadow transform| discrete normal| full px| auto dvh dvw fit full lvh lvw max min px screen svh svw| auto contents scroll transform`.split(`|`).map(e=>{let t=e.split(` `),n=t.shift();for(let e=0;e<t.length;e++)t[e]=n+t[e];return t}),oe=k(`0000000000000000000000000000000000000000000000000000000000000262242:6@200000006:240B428:4422400002046044222426220026642642462026224222824220022400000000\\00N222422242222222224062242222222422226264222422222222222222442804222422222222222222222222220<4<0204260002444020204224422`),L=k(`ɠ222222222222222222222222222222222222222222222222222222222222˕4222226>ʶ22ʷʺʷ2ʸʷ42ʴ2ʓ22>621422ɶ222ɹɼɷɺɷɺ22ɱ42222ɨ2ɧ26622ɘɓ244ƸƵ222]d24242ǖǓƚÄȫ2263ȨȥȨ2222222ǣ222222222222222222ǂƽ2ƾƵ2222222422222ƜƑ22222222222222222222144Ŧţ22Ţş222222222222222222222ĸ2ı68ĦģĦɡŰ4Ġ«®ĝ822ĔđĔ2ē2222622`),se=k(`02222222222222222222222222222222222222222222222222222222222222222202022222222222EH2200IL021042222Y\\222IL0cf2e10j2222U00X202[^2y0000120|{~22
:22|22222222222G000qOVI00000}2>40000B00000I¨©000¬00000000000000021M®00°000000000000000000000222HGHa1º222¿2À2222ÉÌ000°2±`),ce=new Int32Array(995),le=new Int32Array(995),ue=new Int32Array(995),de=``,fe=new Int32Array(1038);{let e=new Map,t=0,n=0;for(let r=0;r<oe.length;r++)for(let i of ae[se[r]]){let a=e.get(i);a===void 0&&(a=t++,e.set(i,a),fe[a*2]=de.length,fe[a*2+1]=i.length,de+=i),ce[n]=oe[r],le[n]=L[r],ue[n]=a,n++}}var pe=k(`0b2N:222@R>F@286¦2@H2D266226FB22B2>BD\\6N22222Z222D222p`),me=O(D(`1::24444432:442:44:44>222222:44:4421322511111311111114`)),he=k(`24A;33N=C@H4A;33N=C@<27;83:;8393NQ:3NQʰ222ˉºŴŽ2R2=18cƴÅŇ=cĞÛC1ƈǝȈ:ħ25=11D3A@4=<1;1DEr25;11B3?<6;:371BCn9@7=<8192>2E121@9@EHE@9>2T25511<398454131<=V25511<398454131<=ƧNž2Đå242L222290000f22500ɛ000ǘ222`),ge=D(`ij`),_e=D(``),ve=D(`1`),ye={GROUP_COUNT:A,customValidatorNames:ee,edgeStart:j,labelStart:te,labelText:M,edgeTarget:N,nodeGroup:P,nodeVlist:ie,vlistPat:F,vlistOps:I,vlistRef:ne,vlistGroup:re,litAnchor:ce,litGroup:le,litPool:ue,poolOffsets:fe,poolText:de,adjGid:pe,adjStart:me,adjTgt:he,patGid:ge,patTgt:_e,postfixLookupGroups:ve,orderSensitiveModifiers:`* ** after backdrop before details-content file first-letter first-line marker placeholder selection`},be=`line`in Error(),xe=-1,Se=-1,Ce=(e,t,n)=>{let r=2166136261;for(let i=t;i<n;i++)r=Math.imul(r^e.charCodeAt(i),16777619);return r},we=(e,t,n)=>{let r=n-t,i=Math.imul(r,2654435761)^e.charCodeAt(t);if(r>3){let a=r>>2,o=r>>1;i=Math.imul(i^e.charCodeAt(t+1)<<8^e.charCodeAt(t+2)<<16^e.charCodeAt(t+a),2246822507),i=Math.imul(i^e.charCodeAt(t+o)<<8^e.charCodeAt(t+o+a)<<16^e.charCodeAt(n-3),3266489909),i^=e.charCodeAt(n-2)<<8^e.charCodeAt(n-1)<<16;for(let r=t+3,a=n-4;r<t+8&&r<a;r++,a--)i=Math.imul(i^e.charCodeAt(r)^e.charCodeAt(a)<<8,16777619)}return i^i>>>15},Te=(e,t,n={})=>{let{GROUP_COUNT:r,edgeStart:i,labelStart:a,labelText:o,edgeTarget:s,nodeGroup:c,nodeVlist:l,vlistPat:u,vlistOps:d,vlistRef:f,vlistGroup:p,litAnchor:m,litGroup:h,litPool:g,poolOffsets:_,poolText:v,adjGid:y,adjStart:b,adjTgt:x,patGid:S,patTgt:C,postfixLookupGroups:w,customValidatorNames:T,orderSensitiveModifiers:E}=e,D=new Int32Array(r).fill(-1);for(let e=0;e<y.length;e++)D[y[e]]=e;let O=0;for(let e=0;e+1<b.length;e++){let t=b[e+1]-b[e];t>O&&(O=t)}let k=32;for(;k<2*(1+O+S.length);)k<<=1;let A=new Int32Array(f.length+1);for(let e=0;e<f.length;e++)A[e+1]=A[e]+u[f[e]+1]-u[f[e]];let ee=new Uint8Array(r);for(let e=0;e<w.length;e++)ee[w[e]]=1;let j=i.length-1,te=new Uint8Array(j),M=0,N=!0;for(let e=0;e<m.length;e++){te[m[e]]=1;let t=_[g[e]*2+1];t>M&&(M=t);let n=v.charCodeAt(_[g[e]*2]);(n===91||n===40)&&(N=!1)}let P=1;for(;P<m.length*2;)P<<=1;let F=new Int32Array(P).fill(-1);for(let e=0;e<m.length;e++){let t=_[g[e]*2],n=(Ce(v,t,t+_[g[e]*2+1])^Math.imul(m[e],2654435761)|0)&P-1;for(;F[n]!==-1;)n=n+1&P-1;F[n]=e}let I=(e,t,n,r)=>{let i=(Ce(t,n,r)^Math.imul(e,2654435761)|0)&P-1,a=r-n;for(;;){let r=F[i];if(r===-1)return-1;if(m[r]===e&&_[g[r]*2+1]===a){let e=_[g[r]*2],i=!0;for(let r=0;r<a;r++)if(v.charCodeAt(e+r)!==t.charCodeAt(n+r)){i=!1;break}if(i)return h[r]}i=i+1&P-1}},ne=n.cacheSize??8192,re=n.prefix??e.prefix??``,ie=re===``?``:re+`:`,ae=ie.length,oe=(T??[]).map(e=>{let n=t&&t[e];if(!n)throw Error(`cn: missing validator `+e);return n}),L=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,se=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,ce=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,le=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ue=0,de=-1,fe=-1,pe=-1,me=-1,he=e=>e>=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57||e===95,ge=e=>/\s/.test(String.fromCharCode(e)),_e=(e,t,n)=>{if(ue=0,de=-1,n-t<3)return;let r=e.charCodeAt(t),i=e.charCodeAt(n-1);if(r===91&&i===93)ue=1;else if(r===40&&i===41)ue=2;else return;pe=t+1,me=n-1;let a=t+1;if(he(e.charCodeAt(a))){for(a++;a<n-1;){let t=e.charCodeAt(a);if(!he(t)&&t!==45)break;a++}a<n-2&&e.charCodeAt(a)===58&&(de=t+1,fe=a,pe=a+1)}},ve=(e,t,n,r)=>{if(n-t!==r.length)return!1;for(let n=0;n<r.length;n++)if(e.charCodeAt(t+n)!==r.charCodeAt(n))return!1;return!0},ye=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Te=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ee=e=>!!e&&!Number.isNaN(Number(e)),De=(e,t,n)=>{if(n-t<11||!ve(e,t,t+10,`@container`))return!1;if(e.charCodeAt(t+10)===47)return n-t>=12;let r=e.charCodeAt(t+11);return r===115&&n-t>=17&&ve(e,t+10,t+16,`-size/`)||r===110&&n-t>=19&&ve(e,t+10,t+18,`-normal/`)},ke=[1,1,1,1,1,1,1,1,2,2,2,2,2,2,2],Ae=`length|number|number weight|family-name|position percentage|length size bg-size|image url|shadow|length|family-name|position percentage|length size bg-size|image url|shadow|number weight`.split(`|`).map(e=>e.split(` `)),je=[2,3,1,0,0,0,4,5,0,0,0,0,0,1,1],Me=(e,t,n,r)=>{if(e>=10){if(e>=25)return oe[e-25](t.slice(n,r));let i=e-10;if(ue!==ke[i])return!1;if(de>=0){for(let e of Ae[i])if(ve(t,de,fe,e))return!0;return!1}switch(je[i]){case 0:return!1;case 1:return!0;case 2:{let e=t.slice(pe,me);return L.test(e)&&!se.test(e)}case 3:return Ee(t.slice(pe,me));case 4:return le.test(t.slice(pe,me));default:return ce.test(t.slice(pe,me))}}switch(e){case 0:return!0;case 1:return ue===0;case 2:return ue===1;case 3:return ue===2;case 4:return ye.test(t.slice(n,r));case 5:return Ee(t.slice(n,r));case 6:{let e=t.slice(n,r);return!!e&&Number.isInteger(Number(e))}case 7:return r>n&&t.charCodeAt(r-1)===37&&Ee(t.slice(n,r-1));case 8:return Te.test(t.slice(n,r));default:return De(t,n,r)}},Ne=new Set(typeof E==`string`?E.split(` `):E),Pe=(e,t,n,r,i,a)=>{let o=Ce(t,n,r)^(i?2654435769:0),s=e.get(o);if(s!==void 0)outer:for(let e=0;e<s.length;e++){let a=s[e];if(a.imp===i&&a.k.length===r-n){for(let e=0;e<a.k.length;e++)if(a.k.charCodeAt(e)!==t.charCodeAt(n+e))continue outer;return a.id}}else e.set(o,s=[]);let c=t.slice(n,r),l=a(c);return s.push({k:c,imp:i,id:l}),l},Fe=new Map,Ie=new Map,Le=2,Re=4096,ze=(e,t)=>{let n=[],r=0,i=0,a=0;for(let t=0;t<e.length;t++){let o=e.charCodeAt(t);r===0&&i===0&&o===58?(n.push(e.slice(a,t)),a=t+1):o===91?r++:o===93?r--:o===40?i++:o===41&&i--}n.push(e.slice(a));let o=n[0];if(n.length>1){let e=[],t=[];for(let r of n)r.charCodeAt(0)===91||Ne.has(r)?(t.length&&(e.push(...t.sort()),t=[]),e.push(r)):t.push(r);t.length&&e.push(...t.sort()),o=e.join(`:`)}let s=t?o+` !`:o,c=Ie.get(s);return c===void 0&&Ie.set(s,c=Le++),c},Be=new Map,Ve=r,R=r+4096,He=()=>Ve++,z=2097152,Ue=8192,B=new Int32Array(Ue),V=Array(Ue).fill(null),We=new Int32Array(Ue),Ge=new Int32Array(Ue),Ke=new Uint8Array(Ue),qe=0,Je=(e,t,n,r,i,a,o,s)=>{let c=e;if(V[e]!==null){if(V[e|1]===null)c=e|1;else if(!(qe++&3))c=e|qe>>2&1;else return}V[c]=t.slice(n,r),B[c]=i,We[c]=a,Ge[c]=o,Ke[c]=s},Ye=()=>V.fill(null),H=256,Xe=[new Int32Array(H),new Int32Array(H),new Int32Array(H),new Int32Array(H)],[Ze,U,Qe,$e]=Xe,et=new Uint8Array(H),tt=new Uint8Array(H),nt=()=>{H*=2,Xe=Xe.map(e=>{let t=new Int32Array(H);return t.set(e),t}),[Ze,U,Qe,$e]=Xe;let e=new Uint8Array(H);e.set(et),et=e,tt=new Uint8Array(H)},W=64,rt=new Int32Array(W),it=new Int32Array(W),at=new Int32Array(r),ot=2048,st=21,ct=new Float64Array(ot),lt=new Int32Array(ot),ut=0,dt=(e,t)=>{if(e===0&&t<r)return at[t]===ut?1:(at[t]=ut,0);let n=e*2097152+t+1,i=Math.imul(n,2654435761)>>>st;for(;lt[i]===ut;){if(ct[i]===n)return 1;i=i+1&ot-1}return ct[i]=n,lt[i]=ut,0},ft=(e,t,n,r,i)=>{if(n-t>=2&&e.charCodeAt(t)===91&&e.charCodeAt(n-1)===93){let r=-1;for(let i=t+1;i<n-1;i++)if(e.charCodeAt(i)===58){r=i;break}return r===-1||r===t+1?xe:Pe(Be,e,t+1,r,0,He)}if(r>=0&&c[r]>=0)return c[r];for(let t=i-1;t>=0;t--){let r=it[t];if(r>n)continue;let i=rt[t],a=n-r;if(te[i]===1&&a>0&&a<=M){let t=e.charCodeAt(r);if(N===!1||t!==91&&t!==40){let t=I(i,e,r,n);if(t>=0)return t}}let o=l[i];if(o<0)continue;let s=f[o],c=u[s],m=u[s+1];if(c===m)continue;_e(e,r,n);let h=A[o]-c;for(let t=c;t<m;t++)if(Me(d[t],e,r,n))return p[h+t]}return xe},pt=e=>{let t=e.length,n=0,c=0,u=!1;(Le>Re||Fe.size>Re)&&(Fe=new Map,Ie=new Map,Le=2,Ye()),Ve>R&&(Be=new Map,Ve=r,Ye());let d=0;for(;d<t;){let f=e.charCodeAt(d);if(f===32||f>=9&&f<=13||f>=160&&ge(f)){f!==32&&(u=!0),d++;continue}let p=d,m=0;for(;d<t;){if(f=e.charCodeAt(d),f<=32){if(f===32)break;if(f>=9&&f<=13){u=!0;break}}else if(f>=160&&ge(f)){u=!0;break}m=Math.imul(m^f,16777619),d++}let h=d,g=h-p;n===H&&nt();let _=n++;Ze[_]=p,U[_]=h,c+=g,m^=Math.imul(g,2654435761);let v=m^m>>>15,y=v&8190;{let t=-1;if(B[y]===v&&V[y]!==null&&V[y].length===g?t=y:B[y|1]===v&&V[y|1]!==null&&V[y|1].length===g&&(t=y|1),t>=0){let n=V[t],r=!0;for(let t=0;t<g;t++)if(n.charCodeAt(t)!==e.charCodeAt(p+t)){r=!1;break}if(r){Qe[_]=We[t],$e[_]=Ge[t],et[_]=Ke[t];continue}}}let b=p;if(ae!==0){if(h-p<=ae||!e.startsWith(ie,p)){Qe[_]=xe,Je(y,e,p,h,v,xe,0,0);continue}b=p+ae}let x=0,S=0,C=-1,w=-1;for(let t=b;t<h;t++){let n=e.charCodeAt(t);if(x===0&&S===0){if(n===58){C=t;continue}if(n===47){w=t;continue}}n===91?x++:n===93?x--:n===40?S++:n===41&&S--}let T=C>=b?C+1:b,E=T,D=h,O=!1,k=0;D>E&&e.charCodeAt(D-1)===33?(O=!0,D--):D>E&&e.charCodeAt(E)===33&&(O=!0,E++,k=1);let A=-1;w>T&&(A=w+k,A>=D&&(A=-1));let j=E;D-E>1&&e.charCodeAt(E)===45&&(j=E+1);let M=0,N=0,P=0,F=-1,I=0;(l[0]>=0||te[0]===1)&&(rt[0]=0,it[0]=j,I=1);let ne=Se,re=0;for(let t=j;t<D;t++)if(t===A&&(ne=N<P?Se:M,re=I),M!==Se){let n=e.charCodeAt(t),r=-1;if(N<P)o.charCodeAt(N)===n?(N++,N===P&&(r=M=F)):M=Se;else{let e=i[M],t=i[M+1],c=Se;for(let i=e;i<t;i++){let e=a[i];if(o.charCodeAt(e)===n){a[i+1]-e===1?r=c=s[i]:(N=e+1,P=a[i+1],F=s[i],c=M);break}}M=c}if(r>=0&&(l[r]>=0||te[r]===1)&&t+1<D&&e.charCodeAt(t+1)===45){if(I===W){W*=2;let e=new Int32Array(W);e.set(rt),rt=e;let t=new Int32Array(W);t.set(it),it=t}rt[I]=r,it[I]=t+2,I++}}A===D&&(ne=N<P?Se:M,re=I);let oe=N<P?Se:M,L,se=!1;if(A>=0){if(se=!0,L=ft(e,E,A,ne,re),L!==xe&&L<r&&ee[L]){let t=ft(e,E,D,oe,I);t!==xe&&t!==L&&(L=t,se=!1)}else L===xe&&(L=ft(e,E,D,oe,I),se=!1)}else L=ft(e,E,D,oe,I);let ce=0,le=0;L===xe?Qe[_]=xe:(le=+!!se,ce=b>=C?+!!O:Pe(Fe,e,b,C,+!!O,e=>ze(e,O)),Qe[_]=L,et[_]=le,$e[_]=ce),Je(y,e,p,h,v,L,ce,le)}if(n===0)return``;if(n===1)return Ze[0]===0&&U[0]===t?e:e.slice(Ze[0],U[0]);if(n*k>ot){for(;n*k>ot;)ot<<=1,st--;ct=new Float64Array(ot),lt=new Int32Array(ot)}if(Le>=z||Ve>=z)throw Error(`cn: too many distinct classes in one merge`);ut=ut+1|0,ut===0&&(at.fill(0),lt.fill(0),ut=1);let f=!1;for(let e=n-1;e>=0;e--){let t=Qe[e];if(t===xe){tt[e]=1;continue}let n=$e[e];if(dt(n,t)===1)tt[e]=0,f=!0;else if(tt[e]=1,t<r){let r=D[t];if(r>=0)for(let e=b[r];e<b[r+1];e++)dt(n,x[e]);if(et[e]&1)for(let e=0;e<S.length;e++)S[e]===t&&dt(n,C[e])}}if(!f&&!u&&t===c+n-1)return e;let p=``,m=0;for(;m<n;){if(!tt[m]){m++;continue}let t=Ze[m],r=U[m],i=m+1;for(;i<n&&tt[i]&&Ze[i]===r+1&&e.charCodeAt(r)===32;)r=U[i],i++;p.length>0&&(p+=` `),p+=e.slice(t,r),m=i}return p},G=16384,K=new Int32Array(G*2),mt=0,q=1,ht=Object.create(null),gt=Object.create(null),_t=new Map,vt=new Map,yt=0,bt=0,J=()=>{mt^=G,q=q+1|0,bt=0},xt=e=>{let t=ht[e];if(t!==void 0)return t;let n=we(e,0,e.length),r=(n&16383)+mt,i=K[r]===(n^q)||K[r^G]===(n^q-1);return i&&(t=gt[e],t!==void 0)?(ht[e]=t,t):(t=pt(e),i?(ht[e]=t,++yt>ne&&(yt=0,gt=ht,ht=Object.create(null),J())):(K[r]=n^q,++bt>G&&J()),t)},St=e=>{let t=_t.get(e);if(t!==void 0)return t;let n=we(e,0,e.length),r=(n&16383)+mt,i=K[r]===(n^q)||K[r^G]===(n^q-1);return i&&(t=vt.get(e),t!==void 0)?(_t.set(e,t),t):(t=pt(e),i?(_t.set(e,t),++yt>ne&&(yt=0,vt=_t,_t=new Map,J())):(K[r]=n^q,++bt>G&&J()),t)},Ct=e=>{let t=we(e,0,e.length),n=(t&16383)+mt;return K[n]===(t^q)||K[n^G]===(t^q-1)||(K[n]=t^q,++bt>G&&J(),!1)},Y=ne===0?pt:be?e=>{let t=_t.get(e);return t===void 0?St(e):t}:xt;return{merge:function(){return arguments.length===1&&typeof arguments[0]==`string`?Y(arguments[0]):Y(Oe.apply(null,arguments))},mergeString:Y,seenBefore:ne===0?()=>!1:Ct,mergeUncached:pt}},Ee=(e,t)=>{if(!e)return``;if(typeof e==`string`)return e;let n=``;if(typeof e.length==`number`&&(!t||Array.isArray(e))){let r=e;for(let e=0;e<r.length;e++){let i=r[e];if(!i)continue;let a=typeof i==`string`?i:Ee(i,t);a&&(n&&(n+=` `),n+=a)}return n}if(t){if(typeof e==`number`)return``+e;if(typeof e==`object`)for(let t in e)e[t]&&(n&&(n+=` `),n+=t)}return n},De=(e,t)=>{let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(!i)continue;let a=typeof i==`string`?i:Ee(i,t);a&&(n&&(n+=` `),n+=a)}return n},Oe=function(){return De(arguments,!1)},ke=256,Ae=16,je=1024,Me=4096,Ne=(e,t)=>{let n=t===void 0?()=>!0:t.seenBefore,r=t===void 0?e:t.mergeUncached,i=new Map,a=new Map,o=0,s=null,c=null,l=[],u=[],d=0,f=(t,n,r)=>{c===null&&(c=Array(Me).fill(``),l=Array(Me).fill(``),u=Array(Me).fill(``));let i=we(t,0,t.length)&4094;if(c[i]===t&&l[i]===n)return u[i];if(c[i|1]===t&&l[i|1]===n)return u[i|1];let a=e(r?n+` `+t:t),o=c[i]===``?i:i|(c[i|1]===``?1:d++&1);return c[o]=t,l[o]=n,u[o]=a,a},p=(e,t,n,r)=>{let i=0;if(t){if(t!==e.a0)return!1;i=1}if(n){if(n!==(i===0?e.a0:e.a1))return!1;i++}if(r){if(r!==(i===0?e.a0:i===1?e.a1:e.a2))return!1;i++}return i===e.t},m=(e,t)=>{let n=e.a,r=0;for(let e=0;e<t.length;e++){let i=t[e];if(i){if(i!==n[r])return!1;r++}}return r===e.t},h=(t,c)=>{let l=t.length,u=s===null?null:s.n;if(!c){if(u!==null&&m(u,t))return s=u,u.r;if(s!==null&&s!==u&&m(s,t))return s.r}let d=``,p=-1,h=0,g=!1;for(let e=0;e<l;e++){let n=t[e];if(n){if(typeof n!=`string`){if(n=t[e]=Ee(n,!0),!n)continue;g=!0}p<0&&(d=n,p=e),h++}}if(h===0)return``;if(h===1)return e(d);if(g){if(u!==null&&m(u,t))return s=u,u.r;if(s!==null&&s!==u&&m(s,t))return s.r}let _=i.get(d);_===void 0&&(_=a.get(d),_!==void 0&&i.set(d,_));let v=null;if(_!==void 0){if(_.skip>0){_.skip--,s=null;let e=d;for(let n=p+1;n<l;n++){let r=t[n];r&&(e+=` `+r)}return f(e,``,!1)}let e=_.e;outer:for(let n=0;n<e.length;n++){let r=e[n];if(r.t!==h)continue;let i=r.a,a=1;for(let e=p+1;e<l;e++){let n=t[e];if(n&&n!==i[a++])continue outer}v=r;break}v!==null&&(_.miss=0)}if(v===null){let s=d,c=[d];for(let e=p+1;e<l;e++){let n=t[e];n&&(s+=` `+n,c.push(n))}if(!n(s))return r(s);v={r:e(s),t:c.length,a0:c[0],a1:c[1],a2:c[2]??``,a:c,n:null},_===void 0?i.set(d,_={e:[],miss:0,skip:0,at:0}):++_.miss>Ae&&(_.miss=Ae,_.skip=je,_.e.length=0,_.at=0);let u=_.e;u.length<ke?u.push(v):(u[_.at]=v,_.at=_.at+1&255),++o>1e3&&(o=0,a=i,i=new Map)}return s!==null&&s!==v&&(s.n=v),s=v,v.r},g=t=>Array.isArray(t)?h(t.slice(),!1):e(Ee(t,!0));return function(t,n,r){let a=arguments.length;if((a|1)==3){let e=s;if(e!==null){let i=e.n;if(i!==null&&p(i,t,n,r))return s=i,i.r;if(e!==i&&p(e,t,n,r))return e.r}if(a===2&&typeof n==`string`&&n!==``){let e=i.get(t);if(e!==void 0&&e.skip>0)return e.skip--,s=null,f(n,t,!0)}return h([t,n,r],!0)}if(a===1)return typeof t==`string`?e(t):g(t);let o=s;if(o!==null){let e=o.n;if(e!==null){let t=e.a,n=0,r=!0;for(let e=0;e<a;e++){let i=arguments[e];if(i){if(i!==t[n]){r=!1;break}n++}}if(r&&n===e.t)return s=e,e.r}if(o!==e){let e=o.a,t=0,n=!0;for(let r=0;r<a;r++){let i=arguments[r];if(i){if(i!==e[t]){n=!1;break}t++}}if(n&&t===o.t)return o.r}}let c=[];for(let e=0;e<a;e++)c.push(arguments[e]);return h(c,!0)}},Pe=Te(ye),Fe=Ne(Pe.mergeString,Pe);Pe.merge;var Ie=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),Le=o(((e,t)=>{t.exports=Ie()})),Re=`psql-explorer:gucs:`;function ze(e){try{let t=JSON.parse(window.localStorage.getItem(Re+e)??`[]`);return Array.isArray(t)?t.filter(e=>typeof e?.name==`string`&&typeof e.value==`string`):[]}catch{return[]}}function Be(e,t){try{t.length===0?window.localStorage.removeItem(Re+e):window.localStorage.setItem(Re+e,JSON.stringify(t))}catch{}}var Ve=e=>e.filter(({name:e})=>e.trim()!==``).map(({name:e,value:t})=>({name:e.trim(),value:t}));async function R(e){let t=await fetch(e),n=await t.text(),r;try{r=n?JSON.parse(n):void 0}catch{}if(!t.ok||r===void 0)throw Error(r?.error??`The psql-explorer API did not answer (${t.status}). Is "psql-explorer web" running on port 7878?`);return r}var He=e=>Ve(ze(e));async function z(e,t,n){let r=await fetch(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t),signal:n}),i=await r.text(),a;try{a=i?JSON.parse(i):void 0}catch{}if(!r.ok||a===void 0)throw Object.assign(Error(a?.error??`The psql-explorer API did not answer (${r.status}).`),{statement:a?.statement});return a}async function Ue(e){let t=await fetch(e,{method:`DELETE`});if(!t.ok){let e=await t.json().catch(()=>void 0);throw Error(e?.error??`The psql-explorer API did not answer (${t.status}).`)}}var B=e=>new URLSearchParams(Object.entries(e).flatMap(([e,t])=>t===void 0?[]:[[e,String(t)]])).toString(),V=e=>`/api/envs/${encodeURIComponent(e)}`,We={writeMode:e=>R(`${V(e)}/write`),setWriteMode:(e,t)=>z(`${V(e)}/write`,{enabled:t}),prompt:()=>R(`/api/prompt`),answer:({envName:e,field:t},n)=>z(`/api/prompt`,{envName:e,field:t,value:n}),environments:()=>R(`/api/envs`),info:e=>R(`${V(e)}/info`),schemas:e=>R(`${V(e)}/schemas`),objects:(e,t)=>R(`${V(e)}/objects?${B({schema:t})}`),relation:(e,{schema:t,name:n})=>R(`${V(e)}/object?${B({kind:`table`,schema:t,name:n})}`),function:(e,{schema:t,name:n,args:r})=>R(`${V(e)}/object?${B({kind:`function`,schema:t,name:n,args:r})}`),sequence:(e,{schema:t,name:n})=>R(`${V(e)}/object?${B({kind:`sequence`,schema:t,name:n})}`),type:(e,{schema:t,name:n})=>R(`${V(e)}/object?${B({kind:`type`,schema:t,name:n})}`),erd:(e,t)=>R(`${V(e)}/erd?${B({schema:t})}`),searchIndex:e=>R(`${V(e)}/search-index`),find:(e,t,n)=>R(`${V(e)}/find?${B({q:t,schema:n})}`),catalog:e=>R(`${V(e)}/catalog`),functions:e=>R(`${V(e)}/functions`),query:(e,t,n=0,r=100,i)=>z(`${V(e)}/query`,{sql:t,offset:n,limit:r,settings:He(e)},i),run:(e,t,n=0,r=100,i)=>z(`${V(e)}/query`,{sql:t,offset:n,limit:r,settings:He(e),asWritten:!0},i),exportSql:(e,t)=>z(`${V(e)}/export`,{sql:t,settings:He(e)}),exportTable:(e,{schema:t,name:n},{filters:r,sort:i})=>z(`${V(e)}/export`,{schema:t,table:n,filters:r,sort:i}),history:(e,t=``)=>R(`${V(e)}/history?${B({q:t||void 0,limit:200})}`),saved:e=>R(`${V(e)}/saved`),saveQuery:(e,t)=>z(`${V(e)}/saved`,t),updateSaved:(e,t,n)=>z(`${V(e)}/saved/${t}`,n),deleteSaved:(e,t)=>Ue(`${V(e)}/saved/${t}`),explain:(e,t)=>z(`${V(e)}/explain`,{sql:t,settings:He(e)}),explainAnalyze:(e,t)=>z(`${V(e)}/explain`,{sql:t,analyze:!0,settings:He(e)}),stats:e=>R(`${V(e)}/stats`),tableStats:(e,{schema:t,name:n})=>R(`${V(e)}/stats?${B({schema:t,table:n})}`),schemaDiff:(e,t,n,r)=>R(`${V(e)}/schema-diff?${B({with:t,schema:n,withSchema:r})}`),security:(e,{schema:t,name:n})=>R(`${V(e)}/security?${B({schema:t,name:n})}`),functionSecurity:(e,{schema:t,name:n,args:r})=>R(`${V(e)}/security?${B({schema:t,name:n,args:r??``})}`),roles:e=>R(`${V(e)}/roles`),dependents:(e,{kind:t,schema:n,name:r,args:i})=>R(`${V(e)}/dependents?${B({kind:t,schema:n,name:r,args:i})}`),rows:(e,{schema:t,name:n},r=0,{filters:i,sort:a}={filters:[],sort:[]})=>R(`${V(e)}/rows?${B({schema:t,table:n,limit:100,offset:r,filters:i.length>0?JSON.stringify(i):void 0,sort:a.length>0?JSON.stringify(a):void 0})}`),edit:(e,{schema:t,name:n},r,i)=>z(`${V(e)}/edit`,{schema:t,table:n,...r,apply:i}),seedSetup:(e,{schema:t,name:n})=>R(`${V(e)}/seed?${B({schema:t,table:n})}`),previewSeed:(e,{schema:t,name:n},r)=>z(`${V(e)}/seed`,{schema:t,table:n,...r}),runSeed:(e,{schema:t,name:n},r,i)=>z(`${V(e)}/seed`,{schema:t,table:n,...r,apply:!0},i),graph:(e,{schema:t,name:n},r,i)=>z(`${V(e)}/graph`,{schema:t,table:n,...r},i),cypher:(e,t,n)=>z(`${V(e)}/cypher`,t,n),expandGraph:(e,t)=>z(`${V(e)}/graph/expand`,t),design:(e,t,n=!1,r)=>z(`${V(e)}/design`,{design:t,apply:n},r),loadDesign:(e,t,n)=>R(`${V(e)}/design?${B({schema:t,name:n})}`),alter:(e,t,n=!1,r)=>z(`${V(e)}/alter`,{...t,apply:n},r),dropTable:(e,t,n,r,i=!1,a)=>z(`${V(e)}/drop-table`,{schema:t,name:n,cascade:r,apply:i},a),dependentsOf:(e,t)=>R(`${V(e)}/dependents?${B({kind:t.kind,schema:t.schema,name:t.name,table:`table`in t?t.table:void 0})}`),schemaForeignKeys:(e,t)=>R(`${V(e)}/schema-foreign-keys?${B({schema:t})}`),foreignKeys:(e,{schema:t,name:n})=>R(`${V(e)}/foreign-keys?${B({schema:t,table:n})}`),references:(e,{schema:t,name:n},r)=>z(`${V(e)}/references`,{schema:t,table:n,values:r}),profile:(e,{schema:t,name:n},r)=>R(`${V(e)}/profile?${B({schema:t,table:n,column:r})}`)};function Ge(e){let t=e.toLowerCase();if(t===`date`)return`date`;if(t===`timestamptz`||/^timestamp(\(\d+\))? with time zone/.test(t))return`timestamptz`;if(/^timestamp(\(\d+\))?( without time zone)?$/.test(t))return`timestamp`}var Ke=e=>t=>`date_trunc('${e}', ${t})`,qe=e=>t=>`extract(${e} from ${t})`,Je=[{id:`minute`,label:`Minute`,alias:`minute`,needsTime:!0,sql:Ke(`minute`)},{id:`hour`,label:`Hour`,alias:`hour`,needsTime:!0,sql:Ke(`hour`)},{id:`day`,label:`Day`,alias:`day`,sql:Ke(`day`)},{id:`week`,label:`Week`,alias:`week`,sql:Ke(`week`)},{id:`month`,label:`Month`,alias:`month`,sql:Ke(`month`)},{id:`quarter`,label:`Quarter`,alias:`quarter`,sql:Ke(`quarter`)},{id:`year`,label:`Year`,alias:`year`,sql:Ke(`year`)},{id:`dow`,label:`Day of week`,alias:`day_of_week`,sql:qe(`isodow`)},{id:`hod`,label:`Hour of day`,alias:`hour_of_day`,needsTime:!0,sql:qe(`hour`)}],Ye=e=>Je.filter(t=>!t.needsTime||e!==`date`),H=e=>Ye(e).filter(e=>[`hour`,`day`,`week`,`month`,`year`].includes(e.id)),Xe=e=>`'${e.replace(/'/g,`''`)}'`;function Ze(e,t,n){return t===`timestamptz`&&n?`${e} AT TIME ZONE ${Xe(n)}`:e}function U(e,t,n,r){return n.sql(Ze(e,t,r))}var Qe=e=>/^[a-z_][a-z0-9_$]*$/.test(e)?e:`"${e.replace(/"/g,`""`)}"`;function $e(e){let t=Ge(e.type);if(!t)return;let n=U(`q.${Qe(e.column)}`,t,e.bucket,e.zone),r=e.statement.trim().replace(/;+\s*$/,``).replace(/\n/g,`
|
|
2
2
|
`);return[`SELECT`,` ${n} AS ${e.bucket.alias},`,` count(*) AS rows`,`FROM (`,` ${r}`,`) AS q`,`GROUP BY 1`,`ORDER BY 1;`,``].join(`
|
|
3
3
|
`)}function et(){return[`UTC`,...(typeof Intl.supportedValuesOf==`function`?Intl.supportedValuesOf(`timeZone`):[]).filter(e=>e!==`UTC`)]}var tt=()=>Intl.DateTimeFormat().resolvedOptions().timeZone,nt=/(--[^\n]*|\/\*[\s\S]*?(?:\*\/|$))|((?:[eEbBxXnNuU]&?)?'(?:[^']|'')*(?:'|$))|("(?:[^"]|"")*(?:"|$))|(\$[A-Za-z_\u0080-]*\$)|(\$\d+)|(::)|((?<![\w:]):[A-Za-z_]\w*)|([A-Za-z_\u0080-][\w$\u0080-]*)|(\d+(?:\.\d+)?(?:[eE][+-]?\d+)?|\.\d+)|(\s+)|([+\-*/<>=~!@#%^&|`?]+)|([\s\S])/g;function W(e){let t=[];nt.lastIndex=0;let n=0;for(;n<e.length;){nt.lastIndex=n;let r=nt.exec(e);if(!r)break;let i=r[0],a=n+i.length,o;if(r[1])o=`comment`;else if(r[2]||r[3])o=r[2]?`string`:`quoted`;else if(r[4]){let t=e.indexOf(i,a);a=t<0?e.length:t+i.length,o=`string`}else o=r[5]||r[7]?`param`:r[6]?`operator`:r[8]?`word`:r[9]?`number`:r[10]?`space`:r[11]?`operator`:`punct`;t.push({kind:o,text:e.slice(n,a),start:n,end:a}),n=a}return t}function rt(e){let t=[],n=0,r=!1,i=i=>{if(r){let r=e.slice(n,i),a=r.length-r.trimStart().length,o=r.trim();t.push({text:o,start:n+a,end:n+a+o.length})}r=!1};for(let t of W(e))t.kind===`punct`&&t.text===`;`?(i(t.start),n=t.end):t.kind!==`space`&&t.kind!==`comment`&&(r=!0);return i(e.length),t}function it(e,t){let n=rt(e),r=n.findIndex(e=>t<=e.end);if(r<0)return n[n.length-1];let i=n[r],a=n[r-1];return a&&t<i.start&&!e.slice(a.end,t).includes(`
|
|
4
4
|
`)?a:i}function at(e,t,n){return t===n?it(e,t)?.text??e.trim():e.slice(Math.min(t,n),Math.max(t,n)).trim()}function ot(e){let t=new Map;for(let n of W(e))n.kind===`param`&&(t.has(n.text)||t.set(n.text,{name:n.text,label:n.text}));return[...t.values()].sort((e,t)=>{let n=/^\$(\d+)$/.exec(e.name),r=/^\$(\d+)$/.exec(t.name);return n&&r?Number(n[1])-Number(r[1]):0})}function st(e){let t=e.trim();if(/^null$/i.test(t))return`NULL`;if(/^(true|false)$/i.test(t))return t.toLowerCase();if(/^-?\d+(\.\d+)?$/.test(t))return t;let n=/^'(.*)'$/s.exec(t)?.[1];return`'${(n===void 0?e:n).replace(/'/g,`''`)}'`}function ct(e,t){let n=``;for(let r of W(e)){let e=r.kind===`param`?t[r.text]:void 0;n+=e===void 0||e===``?r.text:st(e)}return n}var lt=[{name:`smallint`},{name:`integer`},{name:`bigint`},{name:`numeric`,sized:`numeric`},{name:`real`},{name:`double precision`},{name:`money`},{name:`boolean`},{name:`text`},{name:`varchar`,sized:`length`},{name:`char`,sized:`length`},{name:`citext`},{name:`bytea`},{name:`uuid`},{name:`date`},{name:`time`,sized:`precision`},{name:`timetz`,sized:`precision`},{name:`timestamp`,sized:`precision`},{name:`timestamptz`,sized:`precision`},{name:`interval`,sized:`precision`},{name:`json`},{name:`jsonb`},{name:`xml`},{name:`inet`},{name:`cidr`},{name:`macaddr`},{name:`bit`,sized:`length`},{name:`varbit`,sized:`length`},{name:`tsvector`},{name:`tsquery`},{name:`point`},{name:`int4range`},{name:`int8range`},{name:`numrange`},{name:`daterange`},{name:`tsrange`},{name:`tstzrange`}],ut=[`now()`,`current_timestamp`,`current_date`,`gen_random_uuid()`,`true`,`false`,`''`,`0`,`'{}'::jsonb`,`'[]'::jsonb`],dt=[`no action`,`restrict`,`cascade`,`set null`,`set default`],ft=[`btree`,`hash`,`gin`,`gist`,`brin`],pt=0,G=()=>`r${Date.now().toString(36)}${(pt++).toString(36)}`,K=(e=``)=>({id:G(),name:e,type:{name:`text`},notNull:!1,default:``,identity:``,generated:``,comment:``}),mt=()=>({id:G(),column:``,expression:``,descending:!1});function q(e=`public`){return{schema:e,name:``,unlogged:!1,comment:``,partition:{method:``,column:``},columns:[{...K(`id`),type:{name:`bigint`},identity:`always`,notNull:!0}],constraints:[],indexes:[]}}var ht=e=>{let t=q(e.schema);return e.name===``&&!e.unlogged&&e.comment===``&&e.partition.method===``&&e.constraints.length===0&&e.indexes.length===0&&e.columns.length===1&&e.columns[0].name===t.columns[0].name&&e.columns[0].type.name===`bigint`},gt=e=>e.schema===void 0?lt.find(t=>t.name===e.name)?.sized:void 0,_t=e=>e.schema===void 0?`b:${e.name}`:`t:${e.schema}.${e.name}`;function vt(e){if(e.startsWith(`t:`)){let t=e.slice(2),n=t.indexOf(`.`);return{schema:t.slice(0,n),name:t.slice(n+1)}}return{name:e.slice(2)}}function yt(e){let t=gt(e);return{name:e.name,...e.schema===void 0?{}:{schema:e.schema},...(t===`length`||t===`precision`)&&e.length!==void 0?{length:e.length}:{},...t===`numeric`&&e.precision!==void 0?{precision:e.precision}:{},...t===`numeric`&&e.precision!==void 0&&e.scale!==void 0?{scale:e.scale}:{},...e.array?{array:e.array}:{}}}var bt=gt,J=(e,t)=>e.columns.find(e=>e.id===t)?.name??``;function xt(e,t){let n=e.name||`table`,r=t=>t.map(t=>J(e,t)||`column`);switch(t.kind){case`primary`:return`${n}_pkey`;case`unique`:return`${n}_${r(t.columns).join(`_`)}_key`;case`foreign`:return`${n}_${r(t.columns).join(`_`)}_fkey`;case`check`:return`${n}_check`}}function St(e,t){let n=t.items.map(t=>t.column?J(e,t.column)||`column`:`expr`);return`${e.name||`table`}_${n.join(`_`)}_idx`}var Ct=e=>e.trim()===``?void 0:e,Y=(e,t)=>t===void 0||t===!1?{}:{[e]:t};function wt(e,{ids:t=!1}={}){let n=e=>t?{id:e}:{},r=t=>t.map(t=>J(e,t)),i=new Set(e.constraints.flatMap(e=>e.kind===`primary`?e.columns:[]));return{schema:e.schema,name:e.name,columns:e.columns.map(e=>({...n(e.id),name:e.name,type:yt(e.type),...Y(`notNull`,e.notNull||i.has(e.id)||void 0),...Y(`default`,Ct(e.default)),...e.identity?{identity:e.identity}:{},...Y(`generated`,Ct(e.generated)),...Y(`comment`,Ct(e.comment))})),constraints:e.constraints.map(t=>{let i=Ct(t.name);switch(t.kind){case`primary`:return{...n(t.id),kind:`primary`,...Y(`name`,i),columns:r(t.columns)};case`unique`:return{...n(t.id),kind:`unique`,...Y(`name`,i),columns:r(t.columns),...Y(`nullsNotDistinct`,t.nullsNotDistinct||void 0)};case`check`:return{...n(t.id),kind:`check`,...Y(`name`,i),expression:t.expression};case`foreign`:{let a=t.target.self;return{...n(t.id),kind:`foreign`,...Y(`name`,i),columns:r(t.columns),references:{schema:a?e.schema:t.target.schema,table:a?e.name:t.target.table,columns:a?r(t.targetColumns):t.targetColumns},...t.onDelete?{onDelete:t.onDelete}:{},...t.onUpdate?{onUpdate:t.onUpdate}:{},...Y(`matchFull`,t.matchFull||void 0),...Y(`deferrable`,t.deferrable||void 0),...Y(`initiallyDeferred`,t.initiallyDeferred||void 0)}}}}),indexes:e.indexes.map(t=>({...n(t.id),...Y(`name`,Ct(t.name)),...Y(`unique`,t.unique||void 0),...t.method===`btree`?{}:{method:t.method},items:t.items.map(t=>({...t.column?{column:J(e,t.column)}:{expression:t.expression},...Y(`descending`,t.descending||void 0)})),...t.include.length>0?{include:r(t.include)}:{},...Y(`where`,Ct(t.where))})),...Y(`unlogged`,e.unlogged||void 0),...Y(`comment`,Ct(e.comment)),...e.partition.method&&e.partition.column?{partition:{method:e.partition.method,column:J(e,e.partition.column)}}:{}}}function Tt(e){let t=e.columns.map(e=>({id:G(),name:e.name,type:e.type,notNull:!!e.notNull,default:e.default??``,identity:e.identity??``,generated:e.generated??``,comment:e.comment??``})),n=e=>t.find(t=>t.name===e)?.id??``,r=e=>e.map(n),i=e=>dt.includes(e??``)?e:``;return{schema:e.schema,name:e.name,unlogged:!!e.unlogged,comment:e.comment??``,partition:e.partition?{method:e.partition.method,column:n(e.partition.column)}:{method:``,column:``},columns:t,constraints:e.constraints.map(t=>{let n={id:G(),name:t.name??``};switch(t.kind){case`primary`:return{...n,kind:`primary`,columns:r(t.columns)};case`unique`:return{...n,kind:`unique`,columns:r(t.columns),nullsNotDistinct:!!t.nullsNotDistinct};case`check`:return{...n,kind:`check`,expression:t.expression};case`foreign`:{let a=t.references.schema===e.schema&&t.references.table===e.name;return{...n,kind:`foreign`,columns:r(t.columns),target:{self:a,schema:t.references.schema,table:t.references.table},targetColumns:a?r(t.references.columns):t.references.columns,onDelete:i(t.onDelete),onUpdate:i(t.onUpdate),matchFull:!!t.matchFull,deferrable:!!t.deferrable,initiallyDeferred:!!t.initiallyDeferred}}}}),indexes:e.indexes.map(e=>({id:G(),name:e.name??``,unique:!!e.unique,method:ft.includes(e.method??`btree`)?e.method??`btree`:`btree`,items:e.items.map(e=>({id:G(),column:`column`in e?n(e.column):``,expression:`expression`in e?e.expression:``,descending:!!e.descending})),include:r(e.include??[]),where:e.where??``}))}}var Et=(e,t)=>`${e}.${t}`,Dt={varchar:`character varying`,char:`character`,timestamp:`timestamp without time zone`,timestamptz:`timestamp with time zone`,time:`time without time zone`,timetz:`time with time zone`,int:`integer`,int2:`smallint`,int4:`integer`,int8:`bigint`,bool:`boolean`,float8:`double precision`,float4:`real`,varbit:`bit varying`,decimal:`numeric`};function Ot(e){return(e.schema===void 0?Dt[e.name]??e.name:`${e.schema}.${e.name}`)+`[]`.repeat(e.array??0)}var kt=e=>{let t=e.replace(/\(.*?\)/g,``).trim().toLowerCase(),n=/(\[\])+$/.exec(t)?.[0]??``,r=t.slice(0,t.length-n.length).replace(/^"?public"?\./,``);return(Dt[r]??r)+n},At=new Set([`smallint`,`integer`,`bigint`]),jt=63;function Mt(e,t={}){let n=[],r=(e,t,r)=>n.push({level:e,message:t,row:r});e.schema||r(`error`,`Pick a schema.`),e.name.trim()?e.name.length>jt&&r(`error`,`The table name is longer than ${jt} characters.`):r(`error`,`Name the table.`),e.columns.length===0&&r(`error`,`The table needs a column.`);let i=new Map;for(let t of e.columns){if(!t.name.trim()){r(`error`,`A column has no name.`,t.id);continue}t.name.length>jt&&r(`error`,`The column name "${t.name.slice(0,20)}..." is longer than ${jt} characters.`,t.id),i.has(t.name)&&r(`error`,`Two columns are named "${t.name}".`,t.id),i.set(t.name,t.id),t.generated.trim()&&(t.default.trim()||t.identity)?r(`error`,`"${t.name}" is generated, so it has no default or identity.`,t.id):t.identity&&t.default.trim()&&r(`error`,`"${t.name}" is an identity, so it has no default.`,t.id),t.identity&&t.type.schema===void 0&&!At.has(t.type.name)&&!t.type.array&&r(`warning`,`"${t.name}" is an identity but not an integer; Postgres only allows integers.`,t.id),t.type.array&&(t.identity||t.generated.trim())&&r(`error`,`"${t.name}" is an array, which cannot be an identity or generated.`,t.id);let e=gt(t.type);e===`length`&&t.type.length!==void 0&&!(t.type.length>=1)&&r(`error`,`The length of "${t.name}" is at least 1.`,t.id),e===`numeric`&&t.type.scale!==void 0&&t.type.precision===void 0&&r(`error`,`"${t.name}" has a scale but no precision.`,t.id)}let a=new Set(e.columns.map(e=>e.id)),o=t=>`"${J(e,t)||`?`}"`,s=(e,t,n)=>{e.length===0&&r(`error`,`${t} needs a column.`,n),e.some(e=>!e||!a.has(e))&&r(`error`,`${t} has a column that is not picked.`,n),new Set(e).size!==e.length&&r(`error`,`${t} lists a column twice.`,n)},c=new Map,l=e.constraints.filter(e=>e.kind===`primary`);l.length>1&&r(`error`,`A table has only one primary key.`,l[1].id);for(let n of e.constraints){let i={primary:`The primary key`,unique:`A unique constraint`,check:`A check`,foreign:`A foreign key`}[n.kind],a=n.name.trim()||xt(e,n);switch(a.length>jt&&r(`error`,`The name "${a.slice(0,20)}..." is longer than ${jt} characters.`,n.id),n.name.trim()&&(c.has(a)&&r(`error`,`Two constraints are named "${a}".`,n.id),c.set(a,n.id)),n.kind){case`primary`:case`unique`:if(s(n.columns,i,n.id),n.kind===`unique`&&n.nullsNotDistinct&&t.serverMajor!==void 0&&t.serverMajor<15&&r(`error`,`NULLS NOT DISTINCT needs PostgreSQL 15 or later.`,n.id),n.kind===`primary`)for(let t of n.columns){let i=e.columns.find(e=>e.id===t);i&&!i.notNull&&r(`note`,`${o(t)} is part of the primary key, so it becomes NOT NULL.`,n.id)}e.partition.method&&e.partition.column&&!n.columns.includes(e.partition.column)&&r(`error`,`${i} of a partitioned table must include ${o(e.partition.column)}.`,n.id);break;case`check`:n.expression.trim()||r(`error`,`A check has no expression.`,n.id);break;case`foreign`:{s(n.columns,i,n.id);let a=n.target.self;if(!a&&(!n.target.schema||!n.target.table)){r(`error`,`A foreign key needs a table to point at.`,n.id);break}if(n.targetColumns.length!==n.columns.length||n.targetColumns.some(e=>!e)){r(`error`,`A foreign key needs a referenced column for each column.`,n.id);break}let c=a?e.columns.map(e=>({id:e.id,name:e.name,type:Ot(e.type)})):t.targets?.get(Et(n.target.schema,n.target.table))?.map(e=>({id:e.name,name:e.name,type:e.type}));n.columns.forEach((t,i)=>{let s=e.columns.find(e=>e.id===t),l=c?.find(e=>e.id===n.targetColumns[i]);s&&c&&(l?kt(Ot(s.type))!==kt(l.type)&&r(`warning`,`${o(t)} is ${Ot(s.type)} but ${l.name} is ${l.type}; the types should match.`,n.id):r(`error`,`${o(t)} points at a column that is not in ${a?`this table`:n.target.table}.`,n.id))}),n.initiallyDeferred&&!n.deferrable&&r(`error`,`A foreign key can only start deferred if it is deferrable.`,n.id),a&&!e.name.trim()&&r(`error`,`Name the table before it points at itself.`,n.id);break}}}let u=new Map;for(let t of e.indexes){t.name.trim()&&(u.has(t.name)&&r(`error`,`Two indexes are named "${t.name}".`,t.id),u.set(t.name,t.id),t.name.length>jt&&r(`error`,`The index name "${t.name.slice(0,20)}..." is too long.`,t.id)),t.items.length===0&&r(`error`,`An index needs a column or an expression.`,t.id);for(let e of t.items)e.column&&!a.has(e.column)&&r(`error`,`An index has a column that is not picked.`,t.id),!e.column&&!e.expression.trim()&&r(`error`,`An index item is neither a column nor an expression.`,t.id);t.unique&&t.method!==`btree`&&r(`error`,`A ${t.method} index cannot be unique.`,t.id),t.include.length>0&&t.method!==`btree`&&t.method!==`gist`&&r(`error`,`A ${t.method} index cannot have INCLUDE columns.`,t.id),t.include.some(e=>!a.has(e))&&r(`error`,`An index has an included column that is not picked.`,t.id)}return e.partition.method&&(e.partition.column&&a.has(e.partition.column)||r(`error`,`Pick the column to partition by.`),e.unlogged&&r(`error`,`A partitioned table cannot be unlogged.`)),n}var Nt=e=>e.some(e=>e.level===`error`),Pt=e=>`psql-explorer:design:${e}`;function Ft(e){try{let t=window.localStorage.getItem(Pt(e));if(!t)return;let n=JSON.parse(t);return typeof n.schema!=`string`||typeof n.name!=`string`||!Array.isArray(n.columns)?void 0:{...q(n.schema),...n}}catch{return}}function It(e,t){try{!t||ht(t)?window.localStorage.removeItem(Pt(e)):window.localStorage.setItem(Pt(e),JSON.stringify(t))}catch{}}var Lt=/(--[^\n]*|\/\*[\s\S]*?(?:\*\/|$))|('(?:[^']|'')*(?:'|$))|("(?:[^"]|"")*(?:"|$))|([A-Za-z_][\w$]*)|(\d+(?:\.\d+)?)|(\s+)|([\s\S])/g;function Rt(e){let t=[];for(let n of e.matchAll(Lt)){let e=n[1]?`comment`:n[2]?`string`:n[3]?`quoted`:n[4]?`word`:n[5]?`number`:n[6]?`space`:`punct`;t.push({kind:e,text:n[0],start:n.index,end:n.index+n[0].length})}return t}var zt=new Set(`select from where and or not in is null as on join inner left right full outer cross natural using
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{$ as e,at as t,ct as n,o as r,ot as i,rt as a}from"./route-
|
|
1
|
+
import{$ as e,at as t,ct as n,o as r,ot as i,rt as a}from"./route-7eu-iAqD.js";import{t as o}from"./button-BiFx4Lyw.js";import{t as s}from"./key-round-JiGCgCWS.js";import{t as c}from"./rotate-ccw-CwdA-J3t.js";import{a as l,i as u,n as d,o as f,r as p,t as m}from"./table-Drc_n1gF.js";import{Gt as h,K as g,Kt as _,Q as ee,Qt as v,Wt as y,Yt as b,nn as x,on as te,q as ne,qt as S}from"./index-CpHnjRLv.js";var C={name:`git-branch`,size:24,node:[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]};C.node;var re=t(C),w=n(i(),1),T=a(),E=`border-input bg-background rounded-lg border px-2 py-1 text-sm`,D=new Set([`default`,`null`,`constant`,`someOf`,`reference`,`link`]),O={min:1,max:3};function ie(e,t){let n=new Map(t.map(e=>[e.name,e])),r=new Set(e.map(e=>e.name));return[...e.map(e=>({name:e.name,schema:e.to.schema,table:e.to.name,mode:n.get(e.name)?.mode??`random`,unique:n.get(e.name)?.unique??!1,key:e})),...t.filter(e=>!r.has(e.name)&&e.schema&&e.table).map(e=>({name:e.name,schema:e.schema,table:e.table,mode:e.mode??`random`,unique:e.unique??!1}))]}var k=(0,w.createContext)({environment:``,links:[]}),A=[{op:`eq`,label:`is`},{op:`ne`,label:`is not`},{op:`in`,label:`is one of`},{op:`gt`,label:`>`},{op:`gte`,label:`≥`},{op:`lt`,label:`<`},{op:`lte`,label:`≤`},{op:`null`,label:`is NULL`},{op:`notNull`,label:`is not NULL`}];function j(e,t,n){let r=Object.fromEntries((t?.options??[]).map(e=>[e.name,e.default??``]));return(n===`oneOf`||n===`someOf`)&&e.allowedValues&&(r.values=e.allowedValues.join(`
|
|
2
2
|
`)),{generator:n,options:r}}var ae={count:100,locale:`en`,seed:``,skipConflicts:!1,skipDuplicates:!1,links:[],perRow:{min:1,max:3}},M=(e,t,n)=>`psql-explorer:seed:${e}:${t}.${n}`;function oe(e){try{let t=window.localStorage.getItem(e);return t?JSON.parse(t):void 0}catch{return}}function se(e,t){try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}var N=(e,t,n)=>{window.location.hash=r({environment:e,seed:{schema:t,table:n}})};function P({environment:t,schema:n,table:r}){let i=y(()=>e.schemas(t),t),[a,o]=(0,w.useState)(n),s=a??n??i.data?.find(e=>e.name===`public`)?.name??i.data?.[0]?.name,c=y(()=>s?e.objects(t,s):Promise.resolve(void 0),`${t}\0${s??``}`),l=(c.data?.tables??[]).filter(e=>e.kind===`table`||e.kind===`partitioned`);return(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,T.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:`Schema`}),(0,T.jsx)(`select`,{"aria-label":`Schema`,className:E,value:s??``,onChange:e=>o(e.target.value),children:i.data?.map(e=>(0,T.jsx)(`option`,{value:e.name,children:e.name},e.name))})]}),(0,T.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:`Table`}),(0,T.jsxs)(`select`,{"aria-label":`Table`,className:E,value:s===n?r??``:``,onChange:e=>s&&e.target.value&&N(t,s,e.target.value),children:[(0,T.jsx)(`option`,{value:``,children:c.loading?`loading...`:l.length?`pick a table`:`no tables`}),l.map(e=>(0,T.jsxs)(`option`,{value:e.name,children:[e.name,e.estimatedRows!==null&&e.estimatedRows>=0?` (~${e.estimatedRows} rows)`:``]},e.name))]})]}),(i.error||c.error)&&(0,T.jsx)(`span`,{className:`text-destructive`,children:i.error??c.error})]})}function F({column:e,generators:t,value:n,onChange:r,noDefault:i}){let{links:a}=(0,w.useContext)(k),o=(0,w.useMemo)(()=>{let r=new Map;for(let o of t)o.id===`reference`&&!e.references||(o.id===`link`||o.id===`sequenceInGroup`)&&a.length===0&&n!==o.id||o.id==="default"&&i||o.id===`null`&&!e.nullable||o.id!=="default"&&e.generated||r.set(o.group,[...r.get(o.group)??[],o]);return[...r]},[t,e,i,a.length,n]);return(0,T.jsx)(`select`,{"aria-label":`Generator for ${e.name}`,className:`${E} w-full`,value:n,disabled:e.generated,onChange:e=>r(e.target.value),children:o.map(([e,t])=>(0,T.jsx)(`optgroup`,{label:e,children:t.map(e=>(0,T.jsx)(`option`,{value:e.id,children:e.label},e.id))},e))})}var I=e=>e.split(e.includes(`
|
|
3
3
|
`)?`
|
|
4
4
|
`:`,`).map(e=>e.trim()).filter(e=>e!==``);function L({column:e,plan:t,onChange:n}){let r=e.allowedValues??[],i=I(String(t.options?.values??``)),a=I(String(t.options?.weights??``)),s=new Map(i.map((e,t)=>[e,a[t]===void 0?1:Number(a[t])])),c=e=>{let i=r.filter(t=>e.has(t)),a=i.map(t=>e.get(t)),o=a.every(e=>e===a[0]);n({...t,options:{...t.options,values:i.join(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{at as e}from"./route-
|
|
1
|
+
import{at as e}from"./route-7eu-iAqD.js";var t={name:`shield-alert`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]};t.node;var n=e(t);export{n as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{at as e}from"./route-
|
|
1
|
+
import{at as e}from"./route-7eu-iAqD.js";var t={name:`sliders-horizontal`,size:24,node:[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]};t.node;var n=e(t);export{n as t};
|