react-semaphor 0.0.487 → 0.0.489
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/dist/chunks/{index-P6yTJKcI.js → index-BoBbG6pt.js} +1 -1
- package/dist/chunks/{index-CvIpkVu2.js → index-C1sBpCcr.js} +11 -9
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +4 -4
- package/dist/types/main.d.ts +23 -5
- package/package.json +1 -1
|
@@ -270,7 +270,7 @@ Valid keys: `+JSON.stringify(Object.keys(A),null," "));var Q=te(q,J,V,U,Y+"."+J
|
|
|
270
270
|
* This source code is licensed under the ISC license.
|
|
271
271
|
* See the LICENSE file in the root directory of this source tree.
|
|
272
272
|
*/const du=nt("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),VU=({data:e,filename:t="output.csv"})=>{const n=()=>{if(e.length===0)return;const r=[],o=Object.keys(e[0]);r.push(o.join(","));for(const c of e){const u=o.map(d=>`"${(""+c[d]).replace(/"/g,'""')}"`);r.push(u.join(","))}const i=r.join(`
|
|
273
|
-
`),s=new Blob([i],{type:"text/csv"}),a=window.URL.createObjectURL(s),l=document.createElement("a");l.setAttribute("hidden",""),l.setAttribute("href",a),l.setAttribute("download",t),document.body.appendChild(l),l.click(),document.body.removeChild(l)};return g.jsx(OS,{onClick:n,className:"h-[14px] w-[14px] text-foreground/30 hover:cursor-pointer hover:text-foreground/50"})};var $c=1e3,zc=$c*60,Bc=zc*60,nl=Bc*24,HU=nl*7,WU=nl*365.25,qU=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return UU(e);if(n==="number"&&isFinite(e))return t.long?YU(e):GU(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function UU(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*WU;case"weeks":case"week":case"w":return n*HU;case"days":case"day":case"d":return n*nl;case"hours":case"hour":case"hrs":case"hr":case"h":return n*Bc;case"minutes":case"minute":case"mins":case"min":case"m":return n*zc;case"seconds":case"second":case"secs":case"sec":case"s":return n*$c;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function GU(e){var t=Math.abs(e);return t>=nl?Math.round(e/nl)+"d":t>=Bc?Math.round(e/Bc)+"h":t>=zc?Math.round(e/zc)+"m":t>=$c?Math.round(e/$c)+"s":e+"ms"}function YU(e){var t=Math.abs(e);return t>=nl?Yh(e,t,nl,"day"):t>=Bc?Yh(e,t,Bc,"hour"):t>=zc?Yh(e,t,zc,"minute"):t>=$c?Yh(e,t,$c,"second"):e+" ms"}function Yh(e,t,n,r){var o=t>=n*1.5;return Math.round(e/n)+" "+r+(o?"s":"")}const KU=Bs(qU);function pO(){const e=re(i=>i.dashboard.filters),t=re(i=>i.filterValues),n=re(i=>i.selectedSheetId),r=e==null?void 0:e.filter(i=>i.sheetId===n||!i.sheetId),o=t==null?void 0:t.filter(i=>(r==null?void 0:r.some(s=>s.id===i.filterId))||i.filterId.endsWith(n));return{sheetFilters:r,sheetFilterValues:o}}function gO(e){const t=re(c=>c.selectedLensId),{filterColumns:n,...r}=e.queryConfig||{},o=n==null?void 0:n.filter(c=>{var u,d;return(d=(u=e.queryConfig)==null?void 0:u.filters)==null?void 0:d.some(f=>f.filterColumnName===c.name)}),{sheetFilterValues:i}=pO(),s=(e==null?void 0:e.sql)||"",a=XU((e==null?void 0:e.python)||"");return{queryKey:["query",e==null?void 0:e.id,e==null?void 0:e.title,s,a,t||"",JSON.stringify(i),JSON.stringify(r),JSON.stringify(o)],sql:s,sheetFilterValues:i}}function XU(e){return e===q1?"":e}let Kh;const QU=new Uint8Array(16);function ZU(){if(!Kh&&(Kh=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Kh))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Kh(QU)}const jn=[];for(let e=0;e<256;++e)jn.push((e+256).toString(16).slice(1));function JU(e,t=0){return jn[e[t+0]]+jn[e[t+1]]+jn[e[t+2]]+jn[e[t+3]]+"-"+jn[e[t+4]]+jn[e[t+5]]+"-"+jn[e[t+6]]+jn[e[t+7]]+"-"+jn[e[t+8]]+jn[e[t+9]]+"-"+jn[e[t+10]]+jn[e[t+11]]+jn[e[t+12]]+jn[e[t+13]]+jn[e[t+14]]+jn[e[t+15]]}const eG=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),bR={randomUUID:eG};function Ui(e,t,n){if(bR.randomUUID&&!e)return bR.randomUUID();e=e||{};const r=e.random||(e.rng||ZU)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,JU(r)}const yR={},tG=e=>({updatePageSize:t=>e(n=>{var r,o,i;return{card:{...n.card,preferences:{...(r=n.card)==null?void 0:r.preferences,tablePrefs:{...(i=(o=n.card)==null?void 0:o.preferences)==null?void 0:i.tablePrefs,pageSize:t}}}}}),updateColumnSettingsMap:t=>e(n=>{var r,o,i;return{card:{...n.card,preferences:{...(r=n.card)==null?void 0:r.preferences,tablePrefs:{...(i=(o=n.card)==null?void 0:o.preferences)==null?void 0:i.tablePrefs,columnSettingsMap:t}}}}}),updateColumnVisibility:(t,n)=>e(r=>{var s,a,l,c,u,d;const i={...((l=(a=(s=r.card)==null?void 0:s.preferences)==null?void 0:a.tablePrefs)==null?void 0:l.columnVisibility)||{},[t]:n};return{card:{...r.card,preferences:{...(c=r.card)==null?void 0:c.preferences,tablePrefs:{...(d=(u=r.card)==null?void 0:u.preferences)==null?void 0:d.tablePrefs,columnVisibility:i}}}}}),showAllColumns:()=>e(t=>{var i,s,a,l,c,u;const n=((a=(s=(i=t.card)==null?void 0:i.preferences)==null?void 0:s.tablePrefs)==null?void 0:a.columnVisibility)||yR,r=Object.keys(n);if(r.length===0)return t;const o={};return r.forEach(d=>{o[d]=!0}),{card:{...t.card,preferences:{...(l=t.card)==null?void 0:l.preferences,tablePrefs:{...(u=(c=t.card)==null?void 0:c.preferences)==null?void 0:u.tablePrefs,columnVisibility:o}}}}}),hideAllColumns:()=>e(t=>{var i,s,a,l,c,u;const n=((a=(s=(i=t.card)==null?void 0:i.preferences)==null?void 0:s.tablePrefs)==null?void 0:a.columnVisibility)||yR,r=Object.keys(n);if(r.length===0)return t;const o={};return r.forEach(d=>{o[d]=!1}),{card:{...t.card,preferences:{...(l=t.card)==null?void 0:l.preferences,tablePrefs:{...(u=(c=t.card)==null?void 0:c.preferences)==null?void 0:u.tablePrefs,columnVisibility:o}}}}}),toggleSelectColumn:t=>e(n=>{var r,o,i;return{card:{...n.card,preferences:{...(r=n.card)==null?void 0:r.preferences,tablePrefs:{...(i=(o=n.card)==null?void 0:o.preferences)==null?void 0:i.tablePrefs,selectColumnVisible:t}}}}}),initializeColumnVisibility:t=>e(n=>{var o,i,s;const r={};return t.forEach(a=>{r[a]=!0}),{card:{...n.card,preferences:{...(o=n.card)==null?void 0:o.preferences,tablePrefs:{...(s=(i=n.card)==null?void 0:i.preferences)==null?void 0:s.tablePrefs,columnVisibility:r}}}}}),updateAllColumnVisibility:t=>typeof t=="function"?(console.error("Function updater received instead of visibility object - ignoring"),e(n=>n)):e(n=>{var r,o,i;return{card:{...n.card,preferences:{...(r=n.card)==null?void 0:r.preferences,tablePrefs:{...(i=(o=n.card)==null?void 0:o.preferences)==null?void 0:i.tablePrefs,columnVisibility:t}}}}})}),rt=B1()(hN((e,t)=>({isDevMode:!1,userInputForAI:"",triggerAIRun:!1,showAIDialog:!1,isShowingVisual:!0,runSql:!1,sqlGen:{},sql:"",isSqlRunning:!1,queryResultColumns:[],showFilters:!1,applyFilters:!1,filterValues:[{filterId:"sample-filter-id",valueType:"string",name:"",operation:"in",values:[""]}],card:{id:Ui(),title:"Editor Card",type:"bar",data:[]},frame:{id:Ui(),cards:[],activeCardId:""},actions:{...tG(e),setEditorFilterMode:(n,r)=>{e(o=>{var s,a;const i=(a=(s=o.card.queryConfig)==null?void 0:s.filterColumns)==null?void 0:a.find(l=>l.name===n);i&&(r==="include"?i.mode="include":i.mode="exclude")})},setQueryConfig:n=>{e(r=>{r.card.queryConfig=n})},addOrderByColumn:n=>{e(r=>{var o;r.card.queryConfig={...r.card.queryConfig,orderBy:[...((o=r.card.queryConfig)==null?void 0:o.orderBy)||[],n]}})},removeOrderByColumn:n=>{e(r=>{var o,i;r.card.queryConfig={...r.card.queryConfig,orderBy:(i=(o=r.card.queryConfig)==null?void 0:o.orderBy)==null?void 0:i.filter(s=>s.columnId!==n.columnId)}})},updateOrderByColumn:n=>{e(r=>{var o,i;r.card.queryConfig={...r.card.queryConfig,orderBy:(i=(o=r.card.queryConfig)==null?void 0:o.orderBy)==null?void 0:i.map(s=>s.columnId===n.columnId?n:s)}})},setOrderByColumns:n=>{e(r=>{r.card.queryConfig={...r.card.queryConfig,orderBy:n}})},setPivotByColumns:n=>{e(r=>{r.card.queryConfig={...r.card.queryConfig,pivotColumns:n}})},updateEditorFilterValue:(n,r,o)=>{e(i=>{var a,l,c,u,d;const s=(l=(a=i.card.queryConfig)==null?void 0:a.filters)==null?void 0:l.find(f=>f.filterColumnName===n);o&&(i.card.queryConfig={...i.card.queryConfig,filters:(u=(c=i.card.queryConfig)==null?void 0:c.filters)==null?void 0:u.filter(f=>f.filterColumnName!==n)}),s?s.filterValue=r:i.card.queryConfig={...i.card.queryConfig,filters:[...((d=i.card.queryConfig)==null?void 0:d.filters)||[],{filterColumnName:n,filterValue:r}]}})},clearEditorFilter:n=>{e(r=>{var o,i;r.card.queryConfig={...r.card.queryConfig,filters:(i=(o=r.card.queryConfig)==null?void 0:o.filters)==null?void 0:i.filter(s=>s.filterColumnName!==n.name)}})},removeEditorFilter:n=>{e(r=>{var o,i,s,a;r.card.queryConfig={...r.card.queryConfig,filters:(i=(o=r.card.queryConfig)==null?void 0:o.filters)==null?void 0:i.filter(l=>l.filterColumnName!==n.name),filterColumns:(a=(s=r.card.queryConfig)==null?void 0:s.filterColumns)==null?void 0:a.filter(l=>l.id!==n.id)}})},setTempQueryData:n=>{e(r=>{r.tempQueryData=n})},setIsDevMode:n=>{e(r=>{r.isDevMode=n})},setMetricColumns:n=>{e(r=>{r.card.queryConfig={...r.card.queryConfig,metricColumns:n}})},addColumnToMetricColumns:n=>{e(r=>{var o;r.card.queryConfig={...r.card.queryConfig,metricColumns:[...((o=r.card.queryConfig)==null?void 0:o.metricColumns)||[],n]}})},updateMetricColumn:(n,r)=>{e(o=>{var i,s;o.card.queryConfig={...o.card.queryConfig,metricColumns:(s=(i=o.card.queryConfig)==null?void 0:i.metricColumns)==null?void 0:s.map(a=>a.id===n?r:a)}})},removeColumnFromMetricColumns:n=>{e(r=>{var o,i,s,a;r.card.queryConfig={...r.card.queryConfig,metricColumns:(i=(o=r.card.queryConfig)==null?void 0:o.metricColumns)==null?void 0:i.filter(l=>l.id!==n)},r.card.queryConfig={...r.card.queryConfig,orderBy:(a=(s=r.card.queryConfig)==null?void 0:s.orderBy)==null?void 0:a.filter(l=>l.columnId!==n)}})},removeColumnFromPivotBy:n=>{e(r=>{var o,i,s,a;r.card.queryConfig={...r.card.queryConfig,pivotColumns:(i=(o=r.card.queryConfig)==null?void 0:o.pivotColumns)==null?void 0:i.filter(l=>l.id!==n)},r.card.queryConfig={...r.card.queryConfig,orderBy:(a=(s=r.card.queryConfig)==null?void 0:s.orderBy)==null?void 0:a.filter(l=>l.columnId!==n)}})},setGroupByColumns:n=>{e(r=>{r.card.queryConfig={...r.card.queryConfig,groupByColumns:n}})},addColumnToGroupBy:n=>{e(r=>{var o;r.card.queryConfig={...r.card.queryConfig,groupByColumns:[...((o=r.card.queryConfig)==null?void 0:o.groupByColumns)||[],n]}})},updateGroupByColumn:(n,r)=>{e(o=>{var i,s;o.card.queryConfig={...o.card.queryConfig,groupByColumns:(s=(i=o.card.queryConfig)==null?void 0:i.groupByColumns)==null?void 0:s.map(a=>a.id===n?r:a)}})},updatePivotByColumn:(n,r)=>{e(o=>{var i,s;o.card.queryConfig={...o.card.queryConfig,pivotColumns:(s=(i=o.card.queryConfig)==null?void 0:i.pivotColumns)==null?void 0:s.map(a=>a.id===n?r:a)}})},removeColumnFromGroupBy:n=>{e(r=>{var o,i,s,a;r.card.queryConfig={...r.card.queryConfig,groupByColumns:(i=(o=r.card.queryConfig)==null?void 0:o.groupByColumns)==null?void 0:i.filter(l=>l.id!==n)},r.card.queryConfig={...r.card.queryConfig,orderBy:(a=(s=r.card.queryConfig)==null?void 0:s.orderBy)==null?void 0:a.filter(l=>l.columnId!==n)}})},setFilterColumns:n=>{e(r=>{r.card.queryConfig={...r.card.queryConfig,filterColumns:n}})},addColumnToFilterColumns:n=>{e(r=>{var o;r.card.queryConfig={...r.card.queryConfig,filterColumns:[...((o=r.card.queryConfig)==null?void 0:o.filterColumns)||[],n]}})},updateFilterColumn:(n,r)=>{e(o=>{var i,s;o.card.queryConfig={...o.card.queryConfig,filterColumns:(s=(i=o.card.queryConfig)==null?void 0:i.filterColumns)==null?void 0:s.map(a=>a.id===n?r:a)}})},removeColumnFromFilterColumns:n=>{e(r=>{var o,i;r.card.queryConfig={...r.card.queryConfig,filterColumns:(i=(o=r.card.queryConfig)==null?void 0:o.filterColumns)==null?void 0:i.filter(s=>s.id!==n)}})},setCurrentAssitantScope:n=>{e(r=>{r.currentAssitantScope=n})},setLegendOptions:n=>{e(r=>{var o,i,s,a,l,c;r.card.preferences={...r.card.preferences,chartOptions:{...(o=r.card.preferences)==null?void 0:o.chartOptions,plugins:{...(s=(i=r.card.preferences)==null?void 0:i.chartOptions)==null?void 0:s.plugins,legend:{...(c=(l=(a=r.card.preferences)==null?void 0:a.chartOptions)==null?void 0:l.plugins)==null?void 0:c.legend,...n}}}}})},setChartGrid:n=>{e(r=>{var o,i,s,a,l,c,u,d,f,h,p,m,b,y,v;r.card.preferences={...r.card.preferences,chartOptions:{...(o=r.card.preferences)==null?void 0:o.chartOptions,scales:{x:{...(a=(s=(i=r.card.preferences)==null?void 0:i.chartOptions)==null?void 0:s.scales)==null?void 0:a.x,grid:{...(d=(u=(c=(l=r.card.preferences)==null?void 0:l.chartOptions)==null?void 0:c.scales)==null?void 0:u.x)==null?void 0:d.grid,display:n==="x"||n==="xy"}},y:{...(p=(h=(f=r.card.preferences)==null?void 0:f.chartOptions)==null?void 0:h.scales)==null?void 0:p.y,grid:{...(v=(y=(b=(m=r.card.preferences)==null?void 0:m.chartOptions)==null?void 0:b.scales)==null?void 0:y.y)==null?void 0:v.grid,display:n==="y"||n==="xy"}}}}}})},runAssistant:n=>{e(r=>{r.showAIDialog=!0,r.userInputForAI=n,r.triggerAIRun=!0})},setShowAIDialog:n=>{e(r=>{r.showAIDialog=n})},setUserInputForAI:n=>{e(r=>{r.userInputForAI=n})},setTriggerAIRun:n=>{e(r=>{r.triggerAIRun=n})},updateCardTab:(n,r)=>{e(o=>{const i=o.frame,s={...i,cards:i.cards.map(l=>l.id===r.id?r:l),activeCardId:n};o.frame=s;const a=s.cards.find(l=>l.id===n);o.card=a})},setActiveTabCardId:n=>{e(r=>{r.activeTabCardId=n})},setCustomCardPreferences:n=>{e(r=>{r.card.customCardPreferences=n})},setChartOrientation:n=>{e(r=>{var s,a,l,c,u,d;const o=r.card.preferences;let i={};((s=o==null?void 0:o.chartOptions)==null?void 0:s.indexAxis)!==n&&(i={x:(l=(a=o==null?void 0:o.chartOptions)==null?void 0:a.scales)==null?void 0:l.y,y:(u=(c=o==null?void 0:o.chartOptions)==null?void 0:c.scales)==null?void 0:u.x}),r.card.preferences={...o,chartOptions:{...o==null?void 0:o.chartOptions,scales:{...(d=o==null?void 0:o.chartOptions)==null?void 0:d.scales,...i},indexAxis:n}}})},setLowerIsBetter:n=>{e(r=>{var o;r.card.preferences={...r.card.preferences,kpiVisualOptions:{...(o=r.card.preferences)==null?void 0:o.kpiVisualOptions,lowerIsBetter:n}}})},setSortChart:n=>{e(r=>{r.card.preferences={...r.card.preferences,sortChart:n}})},setCustomVisualCode:n=>{e(r=>{r.card.preferences={...r.card.preferences,customVisualCode:n}})},setNumberFormat:(n,r,o,i)=>{e(s=>{var a,l,c;s.card.preferences={...(a=s.card)==null?void 0:a.preferences,formatNumber:{...(c=(l=s.card)==null?void 0:l.preferences)==null?void 0:c.formatNumber,decimalPlaces:n,currency:r,locale:o,suffix:i,enabled:!0}}})},setColorRanges:n=>{e(r=>{var o,i;r.card.preferences={...r.card.preferences,formatNumber:{...(i=(o=r.card)==null?void 0:o.preferences)==null?void 0:i.formatNumber,colorRanges:n}}})},setQueryResultColumns:n=>{e(r=>{r.queryResultColumns=n})},setCardPreferences:n=>{e(r=>{r.card.preferences=n})},setFilterOnClickColumnIndex:n=>{e(r=>{r.card.preferences={...r.card.preferences,filterOnClickColumnIndex:n}})},setFilterOnClickField:n=>{e(r=>{r.card.preferences={...r.card.preferences,filterOnClick:!0,filterOnClickField:n}})},setCardRefreshInterval:n=>{e(r=>{r.card.refreshInterval=n})},setIsShowingVisual:n=>{e({isShowingVisual:n})},setRunSql:n=>{e({runSql:n})},setIsSqlRunning:n=>{e({isSqlRunning:n})},clearQueryConfig:()=>{e(n=>{n.card.queryConfig=void 0})},updateCardInFrame:n=>{e(r=>{r.frame.cards=r.frame.cards.map(o=>o.id===n.id?n:o)})},setFrame:n=>{e({frame:n})},setCard:n=>{e({card:n})},switchCardType:n=>{e(r=>{r.card.type=n,r.card.sql="",r.card.python="",r.card.customCfg={},r.card.preferences={}})},setCardType:n=>{e(r=>{var o;r.card.type=n,n==="range"&&(r.card.preferences={...r.card.preferences,chartOptions:{...(o=r.card.preferences)==null?void 0:o.chartOptions,indexAxis:"y"}})})},setCardSql:n=>{e(r=>{r.card.sql=n})},setCardPython:n=>{e(r=>{r.card.python=n})},setPythonStdOut:n=>{e(r=>{r.pythonStdOut=n})},setCardCustomCfg:n=>{e(r=>{r.card.customCfg=n})},setShowFilters:n=>{e(r=>{r.showFilters=n})},setApplyFilters:n=>{e(r=>{r.applyFilters=n})},setFilterValues:n=>{e(r=>{r.filterValues=n})},setSqlGen:n=>{e(r=>{r.sqlGen=n})},setSqlGenMeasure:(n,r)=>{e(o=>{o.sqlGen.measures=[...o.sqlGen.measures||[],{name:n,calc:r}]})},setSqlGenDimension:n=>{e(r=>{r.sqlGen.dimensions=[...r.sqlGen.dimensions||[],n]})},setSelectedDatamodelId:n=>{var r,o;e(i=>{i.selectedDatamodelId=n,i.card.datamodelId=n}),(o=(r=t()).onDatamodelChange)==null||o.call(r,n)},setSelectedConnectionId:n=>{var r,o;e(i=>{i.selectedConnectionId=n,i.card.connectionId=n}),(o=(r=t()).onConnectionChange)==null||o.call(r,n)},setSelectedDatabaseName:n=>{var r,o;e(i=>{i.selectedDatabaseName=n,i.card.lastSelectedDatabase=n}),(o=(r=t()).onDatabaseChange)==null||o.call(r,n)},setSelectedSchemaName:n=>{var r,o;e(i=>{i.selectedSchemaName=n,i.card.lastSelectedSchema=n}),(o=(r=t()).onSchemaChange)==null||o.call(r,n)},setSelectedTableName:n=>{var r,o;e(i=>{i.selectedTableName=n,i.card.lastSelectedTable=n}),(o=(r=t()).onTableChange)==null||o.call(r,n)},setOnConnectionChange:n=>{e({onConnectionChange:n})},setOnDatabaseChange:n=>{e({onDatabaseChange:n})},setOnSchemaChange:n=>{e({onSchemaChange:n})},setOnTableChange:n=>{e({onTableChange:n})},setOnSave:n=>{e({onSave:n})},setOnClose:n=>{e({onClose:n})}}}))),_l=()=>rt(e=>e.actions);function ri(e){var S,P,D;const{authToken:t}=Jn(),n=re(k=>k.filteringCards),r=rt(k=>k.isDevMode),o=e.queryConfig,i=re(k=>k.isVisualEditing),s=re(k=>k.actions.getCardFrame),a=re(k=>k.authToken),l=(n==null?void 0:n.some(k=>k.id===e.id))||!1,c=s(e.id),u=(c==null?void 0:c.cards)||[],d=(u==null?void 0:u.length)==1,f=KU((e==null?void 0:e.refreshInterval)||"0"),{queryKey:h,sql:p,sheetFilterValues:m}=gO(e);let b={};i||(b={refetchInterval:f});function y(){var $,F,T;const k=($=e.queryConfig)==null?void 0:$.metricColumns,N=(F=e.queryConfig)==null?void 0:F.groupByColumns,O=(T=e.queryConfig)==null?void 0:T.pivotColumns;return!!(k&&(k==null?void 0:k.length)>0||N&&(N==null?void 0:N.length)>0||O&&(O==null?void 0:O.length)>0)}const v={databaseName:(e==null?void 0:e.lastSelectedDatabase)||"",schemaName:(e==null?void 0:e.lastSelectedSchema)||"",tableName:(e==null?void 0:e.lastSelectedTable)||"",datamodelId:(e==null?void 0:e.datamodelId)||""},x=no({queryKey:h,queryFn:async()=>{var k;if(!(e!=null&&e.connectionId)||!((k=e==null?void 0:e.sql)!=null&&k.trim())&&!y())return null;try{return await Q1("https://semaphor.cloud/api/v1/query",(t==null?void 0:t.accessToken)||(a==null?void 0:a.accessToken)||"",{connection_id:e.connectionId,sql:p,python:e.python===q1?"":e.python,active_filters:m,cache_config:xN({card:e}),queryConfig:o,tableConfig:v})}catch(N){if(i)return{records:[],error:N};throw N}},placeholderData:pV,...b,enabled:E()});function E(){var k;return!(t!=null&&t.accessToken)||l&&d?!1:!!(e!=null&&e.connectionId&&((k=e==null?void 0:e.sql)!=null&&k.trim()||y())&&!i||y()&&i&&!r)}const _=((S=x.error)==null?void 0:S.message)||((D=(P=x.data)==null?void 0:P.error)==null?void 0:D.message);return{...x,queryKey:h,isFilteringCard:l,isSingleCardFrame:d,errorMessage:_}}function nG(e){return/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/.test(e)}function rG(e,t=1){if(!nG(e)||t===1)return e;e=e.replace(/^#/,"");const n=parseInt(e.substring(0,2),16),r=parseInt(e.substring(2,4),16),o=parseInt(e.substring(4,6),16);return t=Math.min(Math.max(t,0),1),`rgba(${n}, ${r}, ${o}, ${t})`}function mO(e,t,n,r=1,o="none"){var u,d,f,h;const i=n==null?void 0:n.datasetOptions,s=re.getState().themeStyle,a=(d=(u=s==null?void 0:s.chart)==null?void 0:u.dataset)==null?void 0:d.backgroundColor,l=(h=(f=s==null?void 0:s.chart)==null?void 0:f.dataset)==null?void 0:h.borderColor,c=e.map((p,m)=>{var P;const b=i==null?void 0:i.find(D=>D.idx===m),y=rG(a==null?void 0:a[m%a.length],r),v=l==null?void 0:l[m%l.length],x=l==null?void 0:l[m%l.length],E=t.some(D=>D._forecast),_={borderWidth:2,pointRadius:2,segment:{borderDash:D=>{const k=D.p0DataIndex;return t[k]._forecast?[2,4]:void 0},borderColor:D=>{const k=t[D.p0DataIndex]._forecast,N=re.getState().theme==="dark";return k?N?"white":"black":x}},pointBackgroundColor:D=>{const k=re.getState().theme==="dark";return t[D.dataIndex]._forecast?k?"white":"gray":v},pointBorderColor:D=>{const k=re.getState().theme==="dark";return t[D.dataIndex]._forecast?k?"white":"gray":v}},w={backgroundColor:D=>{var N;return((N=t[D.dataIndex])==null?void 0:N._forecast)?y+"20":y}};return{label:p.charAt(0).toUpperCase()+p.slice(1),data:t.map(D=>D[p]),...b,datalabels:{...b==null?void 0:b.datalabels,color:oG((P=b==null?void 0:b.datalabels)==null?void 0:P.align,y)},backgroundColor:y,borderColor:x,...o==="line"&&E?_:{borderWidth:2,pointRadius:1.5},...o==="bar"&&E?w:{}}});return console.log("defaultDatasets",c),c}function oG(e,t){return Fc(e==="end"||e==="start"?Kd():t)}function iG(e,t){var d,f,h,p;const{keys:n}=xn(e),r=n.length,o=n.slice(r-3),i=n.slice(0,r-3);let s=[];const a=re.getState().themeStyle,l=(f=(d=a==null?void 0:a.chart)==null?void 0:d.dataset)==null?void 0:f.backgroundColor,c=(p=(h=a==null?void 0:a.chart)==null?void 0:h.dataset)==null?void 0:p.borderColor;let u={};return t==="scatter"&&(u={radius:5}),(i==null?void 0:i.length)===1&&(s=e.map((m,b)=>({label:m[i==null?void 0:i[0]],data:[{x:m[o[0]],y:m[o[1]],r:m[o[2]]}],backgroundColor:(l==null?void 0:l[b%l.length])+"CC",borderColor:c==null?void 0:c[b%c.length],...u}))),(i==null?void 0:i.length)>1&&(s=[...new Set(e.map(b=>b[i==null?void 0:i[1]]))].map((b,y)=>{const v=e.filter(x=>x[i==null?void 0:i[1]]===b);return{label:b,data:v.map(x=>({x:x[o[0]],y:x[o[1]],r:x[o[2]],label:x[i==null?void 0:i[0]]})),backgroundColor:(l==null?void 0:l[y%l.length])+"CC",borderColor:c==null?void 0:c[y%c.length],...u}})),s}function bO(e,t){var s,a,l,c;const n=re.getState().themeStyle,r=(a=(s=n==null?void 0:n.chart)==null?void 0:s.dataset)==null?void 0:a.backgroundColor,o=(c=(l=n==null?void 0:n.chart)==null?void 0:l.dataset)==null?void 0:c.borderColor;return e.map(u=>({label:u?u.charAt(0).toUpperCase()+u.slice(1):"",data:t.map(d=>d[u]),backgroundColor:t.map((d,f)=>(d==null?void 0:d._color)||(r==null?void 0:r[f%r.length])),borderColor:t.map((d,f)=>(d==null?void 0:d._color)||(o==null?void 0:o[f%o.length]))}))}function sG(e){let t=-1,n=0;return e.forEach((r,o)=>{const i=Object.keys(r).length;i>n&&(t=o,n=i)}),t}function xn(e){if(!e||e.length===0)return{keys:[],dimensionKeys:[],metricKeys:[]};const t=sG(e),n=Object.keys(e[t]),r=n.filter(i=>{var s,a,l,c,u,d,f,h;return!!(typeof((s=e==null?void 0:e[t])==null?void 0:s[i])&&typeof((a=e==null?void 0:e[t])==null?void 0:a[i])=="string"||typeof((l=e==null?void 0:e[0])==null?void 0:l[i])&&typeof((c=e==null?void 0:e[0])==null?void 0:c[i])=="string"||typeof((u=e==null?void 0:e[1])==null?void 0:u[i])&&typeof((d=e==null?void 0:e[1])==null?void 0:d[i])=="string"||typeof((f=e==null?void 0:e[2])==null?void 0:f[i])&&typeof((h=e==null?void 0:e[2])==null?void 0:h[i])=="string")});r.length===0&&r.push(n[0]);const o=n.filter(i=>{var s,a;return((s=e==null?void 0:e[t])==null?void 0:s[i])===+((a=e==null?void 0:e[t])==null?void 0:a[i])});return{keys:n,dimensionKeys:r,metricKeys:o}}function La(e,t){var r;const n=(r=t==null?void 0:t.data)==null?void 0:r.datasets;return n&&n.length>0?e.map((i,s)=>({...i,...n==null?void 0:n[s],data:i.data,label:i.label})):e}function aG(e,t="asc"){function n(r){return Object.entries(r).slice(1).reduce((s,[a,l])=>{const c=typeof l=="number"?l:parseFloat(l);return s+(isNaN(c)?0:c)},0)}return e.sort((r,o)=>{const i=n(r),s=n(o);return t==="asc"?i-s:s-i})}function sb({dataArray:e,groupKey:t,pivotKey:n,valueKey:r,sortChart:o}){const i=e.reduce((l,c)=>{const u=c[t],d=c[n],f=c[r];return l[u]||(l[u]={[t]:u}),l[u][d]=f,l},{});let s=Object.values(i);return o!=="none"&&o!==void 0&&(s=aG(s,o)),s.map(l=>Object.fromEntries(Object.entries(l).filter(([c,u])=>u!==0)))}function Ln(e,t){var s;const n=re.getState().themeStyle,r=(s=n==null?void 0:n.chart)==null?void 0:s.options,o=Jd(r);return Xd(o,e,t)}function Yf(e,t){return e.map(n=>n[t]?n[t]:"BLANK")}function LS(e){const t=re(l=>l.authToken)||e,n=rt(l=>l.selectedConnectionId),{refetch:r,data:o,isLoading:i,isError:s}=no({queryKey:["connections"],queryFn:()=>vs("https://semaphor.cloud/api/v1/connections",(t==null?void 0:t.accessToken)||""),enabled:!!(t!=null&&t.accessToken)}),a=o==null?void 0:o.connections.find(l=>l.id===n);return{connectionsData:o,connections:o==null?void 0:o.connections,isConnectionsLoading:i,isConnectionsError:s,refetchConnections:r,currentConnection:a}}function lG(e){re(k=>k.isDashboardEditing);const t=re(k=>k.filterValues),n=re(k=>k.isVisualEditing);re(k=>k.selectedSheetId),re(k=>k.currentBreakpoint);const{currentConnection:r}=LS(),{selectedDatabaseName:o,selectedSchemaName:i,selectedTableName:s,selectedDatamodelId:a}=l$(),{removeFrame:l}=re(k=>k.actions),c=re(k=>k.actions.setIsVisualEditing),u=rt(k=>k.actions.setFilterValues),d=rt(k=>k.actions.setApplyFilters),{setCard:f,setFrame:h,setQueryResultColumns:p,setActiveTabCardId:m,setIsDevMode:b,setQueryConfig:y}=_l(),v=rt(k=>k.actions.setSelectedConnectionId),x=rt(k=>k.actions.setSelectedDatamodelId),E=rt(k=>k.actions.setSelectedDatabaseName),_=rt(k=>k.actions.setSelectedSchemaName),w=rt(k=>k.actions.setSelectedTableName),S=e.cards.find(k=>k.id===e.activeCardId),{data:P}=ri(S);function D(k=!1){k||c(!n),S.sql&&b(!0),f(S),m(e.activeCardId);const{dimensionKeys:N}=xn((P==null?void 0:P.records)||[]);p(N),h(e),v((S==null?void 0:S.connectionId)||(r==null?void 0:r.id)),S!=null&&S.datamodelId&&S.datamodelId!=="none"?(x(S==null?void 0:S.datamodelId),E("")):x(a||""),S!=null&&S.lastSelectedDatabase&&S.lastSelectedDatabase!=="none"?(E(S==null?void 0:S.lastSelectedDatabase),x("")):E(o||""),S!=null&&S.lastSelectedSchema?_(S==null?void 0:S.lastSelectedSchema):_(i||""),S!=null&&S.lastSelectedTable?w(S==null?void 0:S.lastSelectedTable):w(s||""),t&&(u(t),d(!0))}return{handleEditVisual:D,card:S,data:P}}function yO({frame:e}){var c;const t=re(u=>u.isDashboardEditing),n=re(u=>u.isVisualEditing),r=re(u=>u.selectedSheetId),{removeFrame:o}=re(u=>u.actions),i=re(u=>u.actions.setIsVisualEditing),{handleEditVisual:s,card:a,data:l}=lG(e);return g.jsx("section",{onMouseDown:u=>{u.stopPropagation()},className:"absolute right-2 top-2 z-50",children:g.jsxs("div",{className:"flex items-center gap-2",children:[t&&(n?g.jsx("button",{onClick:()=>{i(!n)},children:g.jsx(gU,{className:"size-3.5 text-center text-foreground/30 hover:cursor-pointer hover:text-foreground/50"})}):g.jsx("button",{role:"edit-visual",onClick:()=>s(),children:g.jsx(bU,{className:"ml-1 size-3.5 text-center text-foreground/30 hover:cursor-pointer hover:text-foreground/50"})})),t&&g.jsx("button",{onClick:()=>o(r,e.id),children:g.jsx(QT,{className:"size-3.5 text-center text-muted-foreground/70 hover:cursor-pointer hover:text-muted-foreground"})}),((c=a.preferences)==null?void 0:c.allowDownload)===!0&&g.jsx(VU,{data:(l==null?void 0:l.records)||[],filename:a.title})]})})}const cG=R.createContext(null),ry={didCatch:!1,error:null};class ab extends R.Component{constructor(t){super(t),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=ry}static getDerivedStateFromError(t){return{didCatch:!0,error:t}}resetErrorBoundary(){const{error:t}=this.state;if(t!==null){for(var n,r,o=arguments.length,i=new Array(o),s=0;s<o;s++)i[s]=arguments[s];(n=(r=this.props).onReset)===null||n===void 0||n.call(r,{args:i,reason:"imperative-api"}),this.setState(ry)}}componentDidCatch(t,n){var r,o;(r=(o=this.props).onError)===null||r===void 0||r.call(o,t,n)}componentDidUpdate(t,n){const{didCatch:r}=this.state,{resetKeys:o}=this.props;if(r&&n.error!==null&&uG(t.resetKeys,o)){var i,s;(i=(s=this.props).onReset)===null||i===void 0||i.call(s,{next:o,prev:t.resetKeys,reason:"keys"}),this.setState(ry)}}render(){const{children:t,fallbackRender:n,FallbackComponent:r,fallback:o}=this.props,{didCatch:i,error:s}=this.state;let a=t;if(i){const l={error:s,resetErrorBoundary:this.resetErrorBoundary};if(typeof n=="function")a=n(l);else if(r)a=R.createElement(r,l);else if(o!==void 0)a=o;else throw s}return R.createElement(cG.Provider,{value:{didCatch:i,error:s,resetErrorBoundary:this.resetErrorBoundary}},a)}}function uG(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return e.length!==t.length||e.some((n,r)=>!Object.is(n,t[r]))}function $S({error:e}){return g.jsx("div",{className:"flex flex-col items-center justify-center",role:"alert",style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",width:"100%"},children:g.jsxs("div",{style:{backgroundColor:"#fef2f2",border:"1px solid #fecaca",borderRadius:"8px",boxShadow:"0 2px 6px rgba(0, 0, 0, 0.08)",color:"#b91c1c",fontFamily:"sans-serif",padding:"16px",textAlign:"center",flexDirection:"column",whiteSpace:"pre-wrap",position:"relative"},className:"flex flex-col justify-center space-y-1 rounded-md bg-muted p-10",children:[g.jsx("p",{className:"text-sm",children:"Something went wrong:"}),g.jsx("pre",{className:"text-xs",children:e.message})]})})}function dG({error:e,frame:t}){return g.jsxs("div",{className:"flex h-full flex-col items-center justify-center border",role:"alert",children:[g.jsx(yO,{frame:t}),g.jsx("div",{className:"flex flex-col justify-center space-y-2 rounded-md p-10"}),g.jsxs("div",{className:"flex flex-col justify-center space-y-2 rounded-md p-10",children:[g.jsx("p",{className:"text-lg font-semibold",children:"Oops! Looks like we tripped on a loose wire!"}),g.jsx("p",{className:"text-sm",children:"Something went wrong:"}),g.jsx("pre",{className:"text-xs",children:e.message})]})]})}function fG({error:e}){return g.jsxs("div",{className:"flex h-full flex-col items-center justify-center",role:"alert",children:[g.jsx("div",{className:"flex flex-col justify-center space-y-2 rounded-md p-10"}),g.jsxs("div",{className:"flex flex-col justify-center space-y-2 rounded-md p-10",children:[g.jsx("p",{className:"text-lg font-semibold",children:"Oops! Something went wrong!"}),g.jsx("p",{className:"text-sm",children:"Something went wrong:"}),g.jsx("pre",{className:"text-xs",children:e.message})]})]})}function Rr({number:e,decimalPlaces:t=0,useSuffix:n=!1,customSuffix:r="",currency:o="",locale:i="en-US"}){let s=1,a=r,l=i;const c=t;n&&!r&&(e>=1e9?(s=1e9,a="B"):e>=1e7&&i==="en-IN"?(s=1e7,a="Cr"):e>=1e5&&i==="en-IN"?(s=1e5,a="L"):e>=1e6?(s=1e6,a="M"):e>=1e3&&(s=1e3,a="K"));const u=e/s,d={maximumFractionDigits:c,minimumFractionDigits:c};if(o){d.style="currency",d.currency=o;try{new Intl.NumberFormat(i,d).format(0)}catch{}}try{new Intl.NumberFormat(i,d).format(0)}catch{l="en-US"}let h=new Intl.NumberFormat(l,d).format(u);return n&&(h+=a),h}function zS(e,t){if(!t)return"";const n=t.find(r=>e>=r.start&&e<=r.end);return(n==null?void 0:n.color)||""}function lb(e){try{const n=new Function("getDatalabelColor",e)(sx);return{options:n==null?void 0:n.options,plugins:(n==null?void 0:n.plugins)||[]}}catch(t){return console.error("Error processing custom visual code",t),{options:{},plugins:[]}}}function hG(e){var t,n,r,o,i,s,a,l,c,u,d,f,h,p,m,b,y,v;return!e||((r=(n=(t=e==null?void 0:e.scales)==null?void 0:t.x)==null?void 0:n.grid)==null?void 0:r.display)===!0&&((s=(i=(o=e==null?void 0:e.scales)==null?void 0:o.y)==null?void 0:i.grid)==null?void 0:s.display)===!0?"xy":(c=(l=(a=e.scales)==null?void 0:a.x)==null?void 0:l.grid)!=null&&c.display?"x":(f=(d=(u=e.scales)==null?void 0:u.y)==null?void 0:d.grid)!=null&&f.display?"y":((m=(p=(h=e.scales)==null?void 0:h.x)==null?void 0:p.grid)==null?void 0:m.display)===!1&&((v=(y=(b=e.scales)==null?void 0:b.y)==null?void 0:y.grid)==null?void 0:v.display)===!1?"none":"xy"}function pG(e){const t=getComputedStyle(document.documentElement).getPropertyValue(e);return vO(t)}function vO(e){const[t,n,r]=e.split(" "),o=parseFloat(t),i=parseFloat(n),s=parseFloat(r),a=i/100,l=s/100,c=(1-Math.abs(2*l-1))*a,u=c*(1-Math.abs(o/60%2-1)),d=l-c/2;let f=0,h=0,p=0;0<=o&&o<60?(f=c,h=u,p=0):60<=o&&o<120?(f=u,h=c,p=0):120<=o&&o<180?(f=0,h=c,p=u):180<=o&&o<240?(f=0,h=u,p=c):240<=o&&o<300?(f=u,h=0,p=c):300<=o&&o<360&&(f=c,h=0,p=u),f=Math.round((f+d)*255),h=Math.round((h+d)*255),p=Math.round((p+d)*255);const m=b=>{const y=b.toString(16);return y.length==1?"0"+y:y};return`#${m(f)}${m(h)}${m(p)}`}function gG(e,t){return e.map(r=>Object.fromEntries(Object.entries(r).filter(([o])=>!t.some(i=>i.label===o))))}function mG(e){return e.length===1?[e[0]]:e.slice(1).filter(n=>!yN.includes(n))}function jl({data:e,cfg:t,customCfg:n,preferences:r,cardType:o}){const i=o==="radar"?.2:1,{keys:s}=xn(e),a=mG(s);let l="none";o=="bar"?l="bar":o=="line"&&(l="line");const c=mO(a,e,r,i,l),u=La(c,n),d=s[0],f=Yf(e,d),{options:h,plugins:p}=Mg({cardType:o,cfg:t,preferences:r,customCfg:n});return{type:(n==null?void 0:n.type)||(t==null?void 0:t.type)||"bar",data:{labels:f,datasets:u},options:h,plugins:p}}function xO(e,t){var o,i,s;const n=((o=t==null?void 0:t.options)==null?void 0:o.indexAxis)==="y"?"x":"y";return(i=e==null?void 0:e.chartOptions)!=null&&i.indexAxis?((s=e==null?void 0:e.chartOptions)==null?void 0:s.indexAxis)==="x"?"y":"x":n}function bG(e){var n,r;return(n=e==null?void 0:e.chartOptions)!=null&&n.indexAxis?((r=e==null?void 0:e.chartOptions)==null?void 0:r.indexAxis)==="x"?"x":"y":"x"}function wO(e,t){var i,s,a,l,c,u,d,f,h,p,m,b;const n=xO(t,e),r=bG(t);return{...e==null?void 0:e.options,scales:{...(i=e==null?void 0:e.options)==null?void 0:i.scales,[n]:{...(a=(s=e==null?void 0:e.options)==null?void 0:s.scales)==null?void 0:a[n],ticks:{...(u=(c=(l=e==null?void 0:e.options)==null?void 0:l.scales)==null?void 0:c[n])==null?void 0:u.ticks,callback:y=>{var v,x,E,_;return Rr({number:Number(y),decimalPlaces:((v=t==null?void 0:t.numberAxisFormat)==null?void 0:v.decimalPlaces)||0,useSuffix:!!((x=t==null?void 0:t.numberAxisFormat)!=null&&x.suffix),customSuffix:"",locale:((E=t==null?void 0:t.numberAxisFormat)==null?void 0:E.locale)||"",currency:((_=t==null?void 0:t.numberAxisFormat)==null?void 0:_.currency)||""})}}},[r]:{...(h=(f=(d=e==null?void 0:e.options)==null?void 0:d.scales)==null?void 0:f[r])==null?void 0:h.ticks,callback:null}},plugins:{...(p=e==null?void 0:e.options)==null?void 0:p.plugins,datalabels:{...(b=(m=e==null?void 0:e.options)==null?void 0:m.plugins)==null?void 0:b.datalabels,formatter:function(y){var v,x,E,_;return Rr({number:Number(y),decimalPlaces:((v=t==null?void 0:t.numberAxisFormat)==null?void 0:v.decimalPlaces)||0,useSuffix:!!((x=t==null?void 0:t.numberAxisFormat)!=null&&x.suffix),customSuffix:"",locale:((E=t==null?void 0:t.numberAxisFormat)==null?void 0:E.locale)||"",currency:((_=t==null?void 0:t.numberAxisFormat)==null?void 0:_.currency)||""})}}}}}function Mg({cardType:e,cfg:t,preferences:n,customCfg:r}){var p,m,b,y,v,x,E,_,w,S,P,D,k,N,O,$,F,T,I,j,z,B,A,W,L,M,V,U,Y;const o=re.getState().themeStyle,i=wO(t,n),s=Ln((t==null?void 0:t.options)||{},n==null?void 0:n.chartOptions),a=Ln(i,s),l=Ln(a,(r==null?void 0:r.options)||{}),c=yG(e,n,l),u={...l,scales:{...l==null?void 0:l.scales,x:{...(p=l==null?void 0:l.scales)==null?void 0:p.x,grid:{...(b=(m=l==null?void 0:l.scales)==null?void 0:m.x)==null?void 0:b.grid,color:(_=(E=(x=(v=(y=o==null?void 0:o.chart)==null?void 0:y.options)==null?void 0:v.scales)==null?void 0:x.x)==null?void 0:E.grid)==null?void 0:_.color}},y:{...(w=l==null?void 0:l.scales)==null?void 0:w.y,grid:{...(P=(S=l==null?void 0:l.scales)==null?void 0:S.y)==null?void 0:P.grid,color:($=(O=(N=(k=(D=o==null?void 0:o.chart)==null?void 0:D.options)==null?void 0:k.scales)==null?void 0:N.y)==null?void 0:O.grid)==null?void 0:$.color}}},plugins:{...l==null?void 0:l.plugins,tooltip:{filter:function(q){return q.raw!==void 0&&q.raw!==0},callbacks:c,...(F=l==null?void 0:l.plugins)==null?void 0:F.tooltip,backgroundColor:(z=(j=(I=(T=o==null?void 0:o.chart)==null?void 0:T.options)==null?void 0:I.plugins)==null?void 0:j.tooltip)==null?void 0:z.backgroundColor,bodyColor:(L=(W=(A=(B=o==null?void 0:o.chart)==null?void 0:B.options)==null?void 0:A.plugins)==null?void 0:W.tooltip)==null?void 0:L.bodyColor,titleColor:(Y=(U=(V=(M=o==null?void 0:o.chart)==null?void 0:M.options)==null?void 0:V.plugins)==null?void 0:U.tooltip)==null?void 0:Y.titleColor}}},{plugins:d,options:f}=lb((n==null?void 0:n.customVisualCode)||"");return{options:Ln(u,f),plugins:d}}function yG(e,t,n){var r,o;return e==="map"?{}:{title:function(i){var a,l,c,u,d;const s=((a=i==null?void 0:i[0])==null?void 0:a.label)||"";if(i.length>1&&["stackedBar","stackedLine"].includes(e||"")){const f=i.reduce((p,m)=>{const b=m.raw;return b!==void 0&&b!==0?p+b:p},0),h=Rr({number:f,decimalPlaces:((l=t==null?void 0:t.numberAxisFormat)==null?void 0:l.decimalPlaces)||0,useSuffix:!!((c=t==null?void 0:t.numberAxisFormat)!=null&&c.suffix),customSuffix:"",locale:((u=t==null?void 0:t.numberAxisFormat)==null?void 0:u.locale)||"",currency:((d=t==null?void 0:t.numberAxisFormat)==null?void 0:d.currency)||""});return`${s} (${h})`}return s},label:function(i){var c,u,d,f,h;const s=((c=i==null?void 0:i.dataset)==null?void 0:c.label)||"",a=i==null?void 0:i.raw;if(a===void 0||a===0)return;const l=Rr({number:Number(a),decimalPlaces:((u=t==null?void 0:t.numberAxisFormat)==null?void 0:u.decimalPlaces)||0,useSuffix:!!((d=t==null?void 0:t.numberAxisFormat)!=null&&d.suffix),customSuffix:"",locale:((f=t==null?void 0:t.numberAxisFormat)==null?void 0:f.locale)||"",currency:((h=t==null?void 0:t.numberAxisFormat)==null?void 0:h.currency)||""});return`${s}: ${l}`},...((o=(r=n==null?void 0:n.plugins)==null?void 0:r.tooltip)==null?void 0:o.callbacks)||{}}}/*!
|
|
273
|
+
`),s=new Blob([i],{type:"text/csv"}),a=window.URL.createObjectURL(s),l=document.createElement("a");l.setAttribute("hidden",""),l.setAttribute("href",a),l.setAttribute("download",t),document.body.appendChild(l),l.click(),document.body.removeChild(l)};return g.jsx(OS,{onClick:n,className:"h-[14px] w-[14px] text-foreground/30 hover:cursor-pointer hover:text-foreground/50"})};var $c=1e3,zc=$c*60,Bc=zc*60,nl=Bc*24,HU=nl*7,WU=nl*365.25,qU=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return UU(e);if(n==="number"&&isFinite(e))return t.long?YU(e):GU(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function UU(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*WU;case"weeks":case"week":case"w":return n*HU;case"days":case"day":case"d":return n*nl;case"hours":case"hour":case"hrs":case"hr":case"h":return n*Bc;case"minutes":case"minute":case"mins":case"min":case"m":return n*zc;case"seconds":case"second":case"secs":case"sec":case"s":return n*$c;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function GU(e){var t=Math.abs(e);return t>=nl?Math.round(e/nl)+"d":t>=Bc?Math.round(e/Bc)+"h":t>=zc?Math.round(e/zc)+"m":t>=$c?Math.round(e/$c)+"s":e+"ms"}function YU(e){var t=Math.abs(e);return t>=nl?Yh(e,t,nl,"day"):t>=Bc?Yh(e,t,Bc,"hour"):t>=zc?Yh(e,t,zc,"minute"):t>=$c?Yh(e,t,$c,"second"):e+" ms"}function Yh(e,t,n,r){var o=t>=n*1.5;return Math.round(e/n)+" "+r+(o?"s":"")}const KU=Bs(qU);function pO(){const e=re(i=>i.dashboard.filters),t=re(i=>i.filterValues),n=re(i=>i.selectedSheetId),r=e==null?void 0:e.filter(i=>i.sheetId===n||!i.sheetId),o=t==null?void 0:t.filter(i=>(r==null?void 0:r.some(s=>s.id===i.filterId))||i.filterId.endsWith(n));return{sheetFilters:r,sheetFilterValues:o}}function gO(e){const t=re(c=>c.selectedLensId),{filterColumns:n,...r}=e.queryConfig||{},o=n==null?void 0:n.filter(c=>{var u,d;return(d=(u=e.queryConfig)==null?void 0:u.filters)==null?void 0:d.some(f=>f.filterColumnName===c.name)}),{sheetFilterValues:i}=pO(),s=(e==null?void 0:e.sql)||"",a=XU((e==null?void 0:e.python)||"");return{queryKey:["query",e==null?void 0:e.id,e==null?void 0:e.title,s,a,t||"",JSON.stringify(i),JSON.stringify(r),JSON.stringify(o)],sql:s,sheetFilterValues:i}}function XU(e){return e===q1?"":e}let Kh;const QU=new Uint8Array(16);function ZU(){if(!Kh&&(Kh=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Kh))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Kh(QU)}const jn=[];for(let e=0;e<256;++e)jn.push((e+256).toString(16).slice(1));function JU(e,t=0){return jn[e[t+0]]+jn[e[t+1]]+jn[e[t+2]]+jn[e[t+3]]+"-"+jn[e[t+4]]+jn[e[t+5]]+"-"+jn[e[t+6]]+jn[e[t+7]]+"-"+jn[e[t+8]]+jn[e[t+9]]+"-"+jn[e[t+10]]+jn[e[t+11]]+jn[e[t+12]]+jn[e[t+13]]+jn[e[t+14]]+jn[e[t+15]]}const eG=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),bR={randomUUID:eG};function Ui(e,t,n){if(bR.randomUUID&&!e)return bR.randomUUID();e=e||{};const r=e.random||(e.rng||ZU)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,JU(r)}const yR={},tG=e=>({updatePageSize:t=>e(n=>{var r,o,i;return{card:{...n.card,preferences:{...(r=n.card)==null?void 0:r.preferences,tablePrefs:{...(i=(o=n.card)==null?void 0:o.preferences)==null?void 0:i.tablePrefs,pageSize:t}}}}}),updateColumnSettingsMap:t=>e(n=>{var r,o,i;return{card:{...n.card,preferences:{...(r=n.card)==null?void 0:r.preferences,tablePrefs:{...(i=(o=n.card)==null?void 0:o.preferences)==null?void 0:i.tablePrefs,columnSettingsMap:t}}}}}),updateColumnVisibility:(t,n)=>e(r=>{var s,a,l,c,u,d;const i={...((l=(a=(s=r.card)==null?void 0:s.preferences)==null?void 0:a.tablePrefs)==null?void 0:l.columnVisibility)||{},[t]:n};return{card:{...r.card,preferences:{...(c=r.card)==null?void 0:c.preferences,tablePrefs:{...(d=(u=r.card)==null?void 0:u.preferences)==null?void 0:d.tablePrefs,columnVisibility:i}}}}}),showAllColumns:()=>e(t=>{var i,s,a,l,c,u;const n=((a=(s=(i=t.card)==null?void 0:i.preferences)==null?void 0:s.tablePrefs)==null?void 0:a.columnVisibility)||yR,r=Object.keys(n);if(r.length===0)return t;const o={};return r.forEach(d=>{o[d]=!0}),{card:{...t.card,preferences:{...(l=t.card)==null?void 0:l.preferences,tablePrefs:{...(u=(c=t.card)==null?void 0:c.preferences)==null?void 0:u.tablePrefs,columnVisibility:o}}}}}),hideAllColumns:()=>e(t=>{var i,s,a,l,c,u;const n=((a=(s=(i=t.card)==null?void 0:i.preferences)==null?void 0:s.tablePrefs)==null?void 0:a.columnVisibility)||yR,r=Object.keys(n);if(r.length===0)return t;const o={};return r.forEach(d=>{o[d]=!1}),{card:{...t.card,preferences:{...(l=t.card)==null?void 0:l.preferences,tablePrefs:{...(u=(c=t.card)==null?void 0:c.preferences)==null?void 0:u.tablePrefs,columnVisibility:o}}}}}),toggleSelectColumn:t=>e(n=>{var r,o,i;return{card:{...n.card,preferences:{...(r=n.card)==null?void 0:r.preferences,tablePrefs:{...(i=(o=n.card)==null?void 0:o.preferences)==null?void 0:i.tablePrefs,selectColumnVisible:t}}}}}),initializeColumnVisibility:t=>e(n=>{var o,i,s;const r={};return t.forEach(a=>{r[a]=!0}),{card:{...n.card,preferences:{...(o=n.card)==null?void 0:o.preferences,tablePrefs:{...(s=(i=n.card)==null?void 0:i.preferences)==null?void 0:s.tablePrefs,columnVisibility:r}}}}}),updateAllColumnVisibility:t=>typeof t=="function"?(console.error("Function updater received instead of visibility object - ignoring"),e(n=>n)):e(n=>{var r,o,i;return{card:{...n.card,preferences:{...(r=n.card)==null?void 0:r.preferences,tablePrefs:{...(i=(o=n.card)==null?void 0:o.preferences)==null?void 0:i.tablePrefs,columnVisibility:t}}}}})}),rt=B1()(hN((e,t)=>({isDevMode:!1,userInputForAI:"",triggerAIRun:!1,showAIDialog:!1,isShowingVisual:!0,runSql:!1,sqlGen:{},sql:"",isSqlRunning:!1,queryResultColumns:[],showFilters:!1,applyFilters:!1,filterValues:[{filterId:"sample-filter-id",valueType:"string",name:"",operation:"in",values:[""]}],card:{id:Ui(),title:"Editor Card",type:"bar",data:[]},frame:{id:Ui(),cards:[],activeCardId:""},actions:{...tG(e),setEditorFilterMode:(n,r)=>{e(o=>{var s,a;const i=(a=(s=o.card.queryConfig)==null?void 0:s.filterColumns)==null?void 0:a.find(l=>l.name===n);i&&(r==="include"?i.mode="include":i.mode="exclude")})},setQueryConfig:n=>{e(r=>{r.card.queryConfig=n})},addOrderByColumn:n=>{e(r=>{var o;r.card.queryConfig={...r.card.queryConfig,orderBy:[...((o=r.card.queryConfig)==null?void 0:o.orderBy)||[],n]}})},removeOrderByColumn:n=>{e(r=>{var o,i;r.card.queryConfig={...r.card.queryConfig,orderBy:(i=(o=r.card.queryConfig)==null?void 0:o.orderBy)==null?void 0:i.filter(s=>s.columnId!==n.columnId)}})},updateOrderByColumn:n=>{e(r=>{var o,i;r.card.queryConfig={...r.card.queryConfig,orderBy:(i=(o=r.card.queryConfig)==null?void 0:o.orderBy)==null?void 0:i.map(s=>s.columnId===n.columnId?n:s)}})},setOrderByColumns:n=>{e(r=>{r.card.queryConfig={...r.card.queryConfig,orderBy:n}})},setPivotByColumns:n=>{e(r=>{r.card.queryConfig={...r.card.queryConfig,pivotColumns:n}})},updateEditorFilterValue:(n,r,o)=>{e(i=>{var a,l,c,u,d;const s=(l=(a=i.card.queryConfig)==null?void 0:a.filters)==null?void 0:l.find(f=>f.filterColumnName===n);o&&(i.card.queryConfig={...i.card.queryConfig,filters:(u=(c=i.card.queryConfig)==null?void 0:c.filters)==null?void 0:u.filter(f=>f.filterColumnName!==n)}),s?s.filterValue=r:i.card.queryConfig={...i.card.queryConfig,filters:[...((d=i.card.queryConfig)==null?void 0:d.filters)||[],{filterColumnName:n,filterValue:r}]}})},clearEditorFilter:n=>{e(r=>{var o,i;r.card.queryConfig={...r.card.queryConfig,filters:(i=(o=r.card.queryConfig)==null?void 0:o.filters)==null?void 0:i.filter(s=>s.filterColumnName!==n.name)}})},removeEditorFilter:n=>{e(r=>{var o,i,s,a;r.card.queryConfig={...r.card.queryConfig,filters:(i=(o=r.card.queryConfig)==null?void 0:o.filters)==null?void 0:i.filter(l=>l.filterColumnName!==n.name),filterColumns:(a=(s=r.card.queryConfig)==null?void 0:s.filterColumns)==null?void 0:a.filter(l=>l.id!==n.id)}})},setTempQueryData:n=>{e(r=>{r.tempQueryData=n})},setIsDevMode:n=>{e(r=>{r.isDevMode=n})},setMetricColumns:n=>{e(r=>{r.card.queryConfig={...r.card.queryConfig,metricColumns:n}})},addColumnToMetricColumns:n=>{e(r=>{var o;r.card.queryConfig={...r.card.queryConfig,metricColumns:[...((o=r.card.queryConfig)==null?void 0:o.metricColumns)||[],n]}})},updateMetricColumn:(n,r)=>{e(o=>{var i,s;o.card.queryConfig={...o.card.queryConfig,metricColumns:(s=(i=o.card.queryConfig)==null?void 0:i.metricColumns)==null?void 0:s.map(a=>a.id===n?r:a)}})},removeColumnFromMetricColumns:n=>{e(r=>{var o,i,s,a;r.card.queryConfig={...r.card.queryConfig,metricColumns:(i=(o=r.card.queryConfig)==null?void 0:o.metricColumns)==null?void 0:i.filter(l=>l.id!==n)},r.card.queryConfig={...r.card.queryConfig,orderBy:(a=(s=r.card.queryConfig)==null?void 0:s.orderBy)==null?void 0:a.filter(l=>l.columnId!==n)}})},removeColumnFromPivotBy:n=>{e(r=>{var o,i,s,a;r.card.queryConfig={...r.card.queryConfig,pivotColumns:(i=(o=r.card.queryConfig)==null?void 0:o.pivotColumns)==null?void 0:i.filter(l=>l.id!==n)},r.card.queryConfig={...r.card.queryConfig,orderBy:(a=(s=r.card.queryConfig)==null?void 0:s.orderBy)==null?void 0:a.filter(l=>l.columnId!==n)}})},setGroupByColumns:n=>{e(r=>{r.card.queryConfig={...r.card.queryConfig,groupByColumns:n}})},addColumnToGroupBy:n=>{e(r=>{var o;r.card.queryConfig={...r.card.queryConfig,groupByColumns:[...((o=r.card.queryConfig)==null?void 0:o.groupByColumns)||[],n]}})},updateGroupByColumn:(n,r)=>{e(o=>{var i,s;o.card.queryConfig={...o.card.queryConfig,groupByColumns:(s=(i=o.card.queryConfig)==null?void 0:i.groupByColumns)==null?void 0:s.map(a=>a.id===n?r:a)}})},updatePivotByColumn:(n,r)=>{e(o=>{var i,s;o.card.queryConfig={...o.card.queryConfig,pivotColumns:(s=(i=o.card.queryConfig)==null?void 0:i.pivotColumns)==null?void 0:s.map(a=>a.id===n?r:a)}})},removeColumnFromGroupBy:n=>{e(r=>{var o,i,s,a;r.card.queryConfig={...r.card.queryConfig,groupByColumns:(i=(o=r.card.queryConfig)==null?void 0:o.groupByColumns)==null?void 0:i.filter(l=>l.id!==n)},r.card.queryConfig={...r.card.queryConfig,orderBy:(a=(s=r.card.queryConfig)==null?void 0:s.orderBy)==null?void 0:a.filter(l=>l.columnId!==n)}})},setFilterColumns:n=>{e(r=>{r.card.queryConfig={...r.card.queryConfig,filterColumns:n}})},addColumnToFilterColumns:n=>{e(r=>{var o;r.card.queryConfig={...r.card.queryConfig,filterColumns:[...((o=r.card.queryConfig)==null?void 0:o.filterColumns)||[],n]}})},updateFilterColumn:(n,r)=>{e(o=>{var i,s;o.card.queryConfig={...o.card.queryConfig,filterColumns:(s=(i=o.card.queryConfig)==null?void 0:i.filterColumns)==null?void 0:s.map(a=>a.id===n?r:a)}})},removeColumnFromFilterColumns:n=>{e(r=>{var o,i;r.card.queryConfig={...r.card.queryConfig,filterColumns:(i=(o=r.card.queryConfig)==null?void 0:o.filterColumns)==null?void 0:i.filter(s=>s.id!==n)}})},setCurrentAssitantScope:n=>{e(r=>{r.currentAssitantScope=n})},setLegendOptions:n=>{e(r=>{var o,i,s,a,l,c;r.card.preferences={...r.card.preferences,chartOptions:{...(o=r.card.preferences)==null?void 0:o.chartOptions,plugins:{...(s=(i=r.card.preferences)==null?void 0:i.chartOptions)==null?void 0:s.plugins,legend:{...(c=(l=(a=r.card.preferences)==null?void 0:a.chartOptions)==null?void 0:l.plugins)==null?void 0:c.legend,...n}}}}})},setChartGrid:n=>{e(r=>{var o,i,s,a,l,c,u,d,f,h,p,m,b,y,v;r.card.preferences={...r.card.preferences,chartOptions:{...(o=r.card.preferences)==null?void 0:o.chartOptions,scales:{x:{...(a=(s=(i=r.card.preferences)==null?void 0:i.chartOptions)==null?void 0:s.scales)==null?void 0:a.x,grid:{...(d=(u=(c=(l=r.card.preferences)==null?void 0:l.chartOptions)==null?void 0:c.scales)==null?void 0:u.x)==null?void 0:d.grid,display:n==="x"||n==="xy"}},y:{...(p=(h=(f=r.card.preferences)==null?void 0:f.chartOptions)==null?void 0:h.scales)==null?void 0:p.y,grid:{...(v=(y=(b=(m=r.card.preferences)==null?void 0:m.chartOptions)==null?void 0:b.scales)==null?void 0:y.y)==null?void 0:v.grid,display:n==="y"||n==="xy"}}}}}})},runAssistant:n=>{e(r=>{r.showAIDialog=!0,r.userInputForAI=n,r.triggerAIRun=!0})},setShowAIDialog:n=>{e(r=>{r.showAIDialog=n})},setUserInputForAI:n=>{e(r=>{r.userInputForAI=n})},setTriggerAIRun:n=>{e(r=>{r.triggerAIRun=n})},updateCardTab:(n,r)=>{e(o=>{const i=o.frame,s={...i,cards:i.cards.map(l=>l.id===r.id?r:l),activeCardId:n};o.frame=s;const a=s.cards.find(l=>l.id===n);o.card=a})},setActiveTabCardId:n=>{e(r=>{r.activeTabCardId=n})},setCustomCardPreferences:n=>{e(r=>{r.card.customCardPreferences=n})},setChartOrientation:n=>{e(r=>{var s,a,l,c,u,d;const o=r.card.preferences;let i={};((s=o==null?void 0:o.chartOptions)==null?void 0:s.indexAxis)!==n&&(i={x:(l=(a=o==null?void 0:o.chartOptions)==null?void 0:a.scales)==null?void 0:l.y,y:(u=(c=o==null?void 0:o.chartOptions)==null?void 0:c.scales)==null?void 0:u.x}),r.card.preferences={...o,chartOptions:{...o==null?void 0:o.chartOptions,scales:{...(d=o==null?void 0:o.chartOptions)==null?void 0:d.scales,...i},indexAxis:n}}})},setLowerIsBetter:n=>{e(r=>{var o;r.card.preferences={...r.card.preferences,kpiVisualOptions:{...(o=r.card.preferences)==null?void 0:o.kpiVisualOptions,lowerIsBetter:n}}})},setSortChart:n=>{e(r=>{r.card.preferences={...r.card.preferences,sortChart:n}})},setCustomVisualCode:n=>{e(r=>{r.card.preferences={...r.card.preferences,customVisualCode:n}})},setNumberFormat:(n,r,o,i)=>{e(s=>{var a,l,c;s.card.preferences={...(a=s.card)==null?void 0:a.preferences,formatNumber:{...(c=(l=s.card)==null?void 0:l.preferences)==null?void 0:c.formatNumber,decimalPlaces:n,currency:r,locale:o,suffix:i,enabled:!0}}})},setColorRanges:n=>{e(r=>{var o,i;r.card.preferences={...r.card.preferences,formatNumber:{...(i=(o=r.card)==null?void 0:o.preferences)==null?void 0:i.formatNumber,colorRanges:n}}})},setQueryResultColumns:n=>{e(r=>{r.queryResultColumns=n})},setCardPreferences:n=>{e(r=>{r.card.preferences=n})},setFilterOnClickColumnIndex:n=>{e(r=>{r.card.preferences={...r.card.preferences,filterOnClickColumnIndex:n}})},setFilterOnClickField:n=>{e(r=>{r.card.preferences={...r.card.preferences,filterOnClick:!0,filterOnClickField:n}})},setCardRefreshInterval:n=>{e(r=>{r.card.refreshInterval=n})},setIsShowingVisual:n=>{e({isShowingVisual:n})},setRunSql:n=>{e({runSql:n})},setIsSqlRunning:n=>{e({isSqlRunning:n})},clearQueryConfig:()=>{e(n=>{n.card.queryConfig=void 0})},updateCardInFrame:n=>{e(r=>{r.frame.cards=r.frame.cards.map(o=>o.id===n.id?n:o)})},setFrame:n=>{e({frame:n})},setCard:n=>{e({card:n})},switchCardType:n=>{e(r=>{r.card.type=n,r.card.sql="",r.card.python="",r.card.customCfg={},r.card.preferences={}})},setCardType:n=>{e(r=>{var o;r.card.type=n,n==="range"&&(r.card.preferences={...r.card.preferences,chartOptions:{...(o=r.card.preferences)==null?void 0:o.chartOptions,indexAxis:"y"}})})},setCardSql:n=>{e(r=>{r.card.sql=n})},setCardPython:n=>{e(r=>{r.card.python=n})},setPythonStdOut:n=>{e(r=>{r.pythonStdOut=n})},setCardCustomCfg:n=>{e(r=>{r.card.customCfg=n})},setShowFilters:n=>{e(r=>{r.showFilters=n})},setApplyFilters:n=>{e(r=>{r.applyFilters=n})},setFilterValues:n=>{e(r=>{r.filterValues=n})},setSqlGen:n=>{e(r=>{r.sqlGen=n})},setSqlGenMeasure:(n,r)=>{e(o=>{o.sqlGen.measures=[...o.sqlGen.measures||[],{name:n,calc:r}]})},setSqlGenDimension:n=>{e(r=>{r.sqlGen.dimensions=[...r.sqlGen.dimensions||[],n]})},setSelectedDatamodelId:n=>{var r,o;e(i=>{i.selectedDatamodelId=n,i.card.datamodelId=n}),(o=(r=t()).onDatamodelChange)==null||o.call(r,n)},setSelectedConnectionId:n=>{var r,o;e(i=>{i.selectedConnectionId=n,i.card.connectionId=n}),(o=(r=t()).onConnectionChange)==null||o.call(r,n)},setSelectedDatabaseName:n=>{var r,o;e(i=>{i.selectedDatabaseName=n,i.card.lastSelectedDatabase=n}),(o=(r=t()).onDatabaseChange)==null||o.call(r,n)},setSelectedSchemaName:n=>{var r,o;e(i=>{i.selectedSchemaName=n,i.card.lastSelectedSchema=n}),(o=(r=t()).onSchemaChange)==null||o.call(r,n)},setSelectedTableName:n=>{var r,o;e(i=>{i.selectedTableName=n,i.card.lastSelectedTable=n}),(o=(r=t()).onTableChange)==null||o.call(r,n)},setOnConnectionChange:n=>{e({onConnectionChange:n})},setOnDatabaseChange:n=>{e({onDatabaseChange:n})},setOnSchemaChange:n=>{e({onSchemaChange:n})},setOnTableChange:n=>{e({onTableChange:n})},setOnSave:n=>{e({onSave:n})},setOnClose:n=>{e({onClose:n})}}}))),_l=()=>rt(e=>e.actions);function ri(e){var S,P,D;const{authToken:t}=Jn(),n=re(k=>k.filteringCards),r=rt(k=>k.isDevMode),o=e.queryConfig,i=re(k=>k.isVisualEditing),s=re(k=>k.actions.getCardFrame),a=re(k=>k.authToken),l=(n==null?void 0:n.some(k=>k.id===e.id))||!1,c=s(e.id),u=(c==null?void 0:c.cards)||[],d=(u==null?void 0:u.length)==1,f=KU((e==null?void 0:e.refreshInterval)||"0"),{queryKey:h,sql:p,sheetFilterValues:m}=gO(e);let b={};i||(b={refetchInterval:f});function y(){var $,F,T;const k=($=e.queryConfig)==null?void 0:$.metricColumns,N=(F=e.queryConfig)==null?void 0:F.groupByColumns,O=(T=e.queryConfig)==null?void 0:T.pivotColumns;return!!(k&&(k==null?void 0:k.length)>0||N&&(N==null?void 0:N.length)>0||O&&(O==null?void 0:O.length)>0)}const v={databaseName:(e==null?void 0:e.lastSelectedDatabase)||"",schemaName:(e==null?void 0:e.lastSelectedSchema)||"",tableName:(e==null?void 0:e.lastSelectedTable)||"",datamodelId:(e==null?void 0:e.datamodelId)||""},x=no({queryKey:h,queryFn:async()=>{var k;if(!(e!=null&&e.connectionId)||!((k=e==null?void 0:e.sql)!=null&&k.trim())&&!y())return null;try{return await Q1("https://semaphor.cloud/api/v1/query",(t==null?void 0:t.accessToken)||(a==null?void 0:a.accessToken)||"",{connection_id:e.connectionId,sql:p,python:e.python===q1?"":e.python,active_filters:m,cache_config:xN({card:e}),queryConfig:o,tableConfig:v})}catch(N){if(i)return{records:[],error:N};throw N}},placeholderData:pV,...b,enabled:E()});function E(){var k;return!(t!=null&&t.accessToken)||l&&d?!1:!!(e!=null&&e.connectionId&&((k=e==null?void 0:e.sql)!=null&&k.trim()||y())&&!i||y()&&i&&!r)}const _=((S=x.error)==null?void 0:S.message)||((D=(P=x.data)==null?void 0:P.error)==null?void 0:D.message);return{...x,queryKey:h,isFilteringCard:l,isSingleCardFrame:d,errorMessage:_}}function nG(e){return/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/.test(e)}function rG(e,t=1){if(!nG(e)||t===1)return e;e=e.replace(/^#/,"");const n=parseInt(e.substring(0,2),16),r=parseInt(e.substring(2,4),16),o=parseInt(e.substring(4,6),16);return t=Math.min(Math.max(t,0),1),`rgba(${n}, ${r}, ${o}, ${t})`}function mO(e,t,n,r=1,o="none"){var u,d,f,h;const i=n==null?void 0:n.datasetOptions,s=re.getState().themeStyle,a=(d=(u=s==null?void 0:s.chart)==null?void 0:u.dataset)==null?void 0:d.backgroundColor,l=(h=(f=s==null?void 0:s.chart)==null?void 0:f.dataset)==null?void 0:h.borderColor;return e.map((p,m)=>{var P;const b=i==null?void 0:i.find(D=>D.idx===m),y=rG(a==null?void 0:a[m%a.length],r),v=l==null?void 0:l[m%l.length],x=l==null?void 0:l[m%l.length],E=t.some(D=>D._forecast),_={borderWidth:2,pointRadius:2,segment:{borderDash:D=>{const k=D.p0DataIndex;return t[k]._forecast?[2,4]:void 0},borderColor:D=>{const k=t[D.p0DataIndex]._forecast,N=re.getState().theme==="dark";return k?N?"white":"black":x}},pointBackgroundColor:D=>{const k=re.getState().theme==="dark";return t[D.dataIndex]._forecast?k?"white":"gray":v},pointBorderColor:D=>{const k=re.getState().theme==="dark";return t[D.dataIndex]._forecast?k?"white":"gray":v}},w={backgroundColor:D=>{var N;return((N=t[D.dataIndex])==null?void 0:N._forecast)?y+"20":y}};return{label:p.charAt(0).toUpperCase()+p.slice(1),data:t.map(D=>D[p]),...b,datalabels:{...b==null?void 0:b.datalabels,color:oG((P=b==null?void 0:b.datalabels)==null?void 0:P.align,y)},backgroundColor:y,borderColor:x,...o==="line"&&E?_:o==="line"?{borderWidth:2,pointRadius:1.5}:{},...o==="bar"&&E?w:{}}})}function oG(e,t){return Fc(e==="end"||e==="start"?Kd():t)}function iG(e,t){var d,f,h,p;const{keys:n}=xn(e),r=n.length,o=n.slice(r-3),i=n.slice(0,r-3);let s=[];const a=re.getState().themeStyle,l=(f=(d=a==null?void 0:a.chart)==null?void 0:d.dataset)==null?void 0:f.backgroundColor,c=(p=(h=a==null?void 0:a.chart)==null?void 0:h.dataset)==null?void 0:p.borderColor;let u={};return t==="scatter"&&(u={radius:5}),(i==null?void 0:i.length)===1&&(s=e.map((m,b)=>({label:m[i==null?void 0:i[0]],data:[{x:m[o[0]],y:m[o[1]],r:m[o[2]]}],backgroundColor:(l==null?void 0:l[b%l.length])+"CC",borderColor:c==null?void 0:c[b%c.length],...u}))),(i==null?void 0:i.length)>1&&(s=[...new Set(e.map(b=>b[i==null?void 0:i[1]]))].map((b,y)=>{const v=e.filter(x=>x[i==null?void 0:i[1]]===b);return{label:b,data:v.map(x=>({x:x[o[0]],y:x[o[1]],r:x[o[2]],label:x[i==null?void 0:i[0]]})),backgroundColor:(l==null?void 0:l[y%l.length])+"CC",borderColor:c==null?void 0:c[y%c.length],...u}})),s}function bO(e,t){var s,a,l,c;const n=re.getState().themeStyle,r=(a=(s=n==null?void 0:n.chart)==null?void 0:s.dataset)==null?void 0:a.backgroundColor,o=(c=(l=n==null?void 0:n.chart)==null?void 0:l.dataset)==null?void 0:c.borderColor;return e.map(u=>({label:u?u.charAt(0).toUpperCase()+u.slice(1):"",data:t.map(d=>d[u]),backgroundColor:t.map((d,f)=>(d==null?void 0:d._color)||(r==null?void 0:r[f%r.length])),borderColor:t.map((d,f)=>(d==null?void 0:d._color)||(o==null?void 0:o[f%o.length]))}))}function sG(e){let t=-1,n=0;return e.forEach((r,o)=>{const i=Object.keys(r).length;i>n&&(t=o,n=i)}),t}function xn(e){if(!e||e.length===0)return{keys:[],dimensionKeys:[],metricKeys:[]};const t=sG(e),n=Object.keys(e[t]),r=n.filter(i=>{var s,a,l,c,u,d,f,h;return!!(typeof((s=e==null?void 0:e[t])==null?void 0:s[i])&&typeof((a=e==null?void 0:e[t])==null?void 0:a[i])=="string"||typeof((l=e==null?void 0:e[0])==null?void 0:l[i])&&typeof((c=e==null?void 0:e[0])==null?void 0:c[i])=="string"||typeof((u=e==null?void 0:e[1])==null?void 0:u[i])&&typeof((d=e==null?void 0:e[1])==null?void 0:d[i])=="string"||typeof((f=e==null?void 0:e[2])==null?void 0:f[i])&&typeof((h=e==null?void 0:e[2])==null?void 0:h[i])=="string")});r.length===0&&r.push(n[0]);const o=n.filter(i=>{var s,a;return((s=e==null?void 0:e[t])==null?void 0:s[i])===+((a=e==null?void 0:e[t])==null?void 0:a[i])});return{keys:n,dimensionKeys:r,metricKeys:o}}function La(e,t){var r;const n=(r=t==null?void 0:t.data)==null?void 0:r.datasets;return n&&n.length>0?e.map((i,s)=>({...i,...n==null?void 0:n[s],data:i.data,label:i.label})):e}function aG(e,t="asc"){function n(r){return Object.entries(r).slice(1).reduce((s,[a,l])=>{const c=typeof l=="number"?l:parseFloat(l);return s+(isNaN(c)?0:c)},0)}return e.sort((r,o)=>{const i=n(r),s=n(o);return t==="asc"?i-s:s-i})}function sb({dataArray:e,groupKey:t,pivotKey:n,valueKey:r,sortChart:o}){const i=e.reduce((l,c)=>{const u=c[t],d=c[n],f=c[r];return l[u]||(l[u]={[t]:u}),l[u][d]=f,l},{});let s=Object.values(i);return o!=="none"&&o!==void 0&&(s=aG(s,o)),s.map(l=>Object.fromEntries(Object.entries(l).filter(([c,u])=>u!==0)))}function Ln(e,t){var s;const n=re.getState().themeStyle,r=(s=n==null?void 0:n.chart)==null?void 0:s.options,o=Jd(r);return Xd(o,e,t)}function Yf(e,t){return e.map(n=>n[t]?n[t]:"BLANK")}function LS(e){const t=re(l=>l.authToken)||e,n=rt(l=>l.selectedConnectionId),{refetch:r,data:o,isLoading:i,isError:s}=no({queryKey:["connections"],queryFn:()=>vs("https://semaphor.cloud/api/v1/connections",(t==null?void 0:t.accessToken)||""),enabled:!!(t!=null&&t.accessToken)}),a=o==null?void 0:o.connections.find(l=>l.id===n);return{connectionsData:o,connections:o==null?void 0:o.connections,isConnectionsLoading:i,isConnectionsError:s,refetchConnections:r,currentConnection:a}}function lG(e){re(k=>k.isDashboardEditing);const t=re(k=>k.filterValues),n=re(k=>k.isVisualEditing);re(k=>k.selectedSheetId),re(k=>k.currentBreakpoint);const{currentConnection:r}=LS(),{selectedDatabaseName:o,selectedSchemaName:i,selectedTableName:s,selectedDatamodelId:a}=l$(),{removeFrame:l}=re(k=>k.actions),c=re(k=>k.actions.setIsVisualEditing),u=rt(k=>k.actions.setFilterValues),d=rt(k=>k.actions.setApplyFilters),{setCard:f,setFrame:h,setQueryResultColumns:p,setActiveTabCardId:m,setIsDevMode:b,setQueryConfig:y}=_l(),v=rt(k=>k.actions.setSelectedConnectionId),x=rt(k=>k.actions.setSelectedDatamodelId),E=rt(k=>k.actions.setSelectedDatabaseName),_=rt(k=>k.actions.setSelectedSchemaName),w=rt(k=>k.actions.setSelectedTableName),S=e.cards.find(k=>k.id===e.activeCardId),{data:P}=ri(S);function D(k=!1){k||c(!n),S.sql&&b(!0),f(S),m(e.activeCardId);const{dimensionKeys:N}=xn((P==null?void 0:P.records)||[]);p(N),h(e),v((S==null?void 0:S.connectionId)||(r==null?void 0:r.id)),S!=null&&S.datamodelId&&S.datamodelId!=="none"?(x(S==null?void 0:S.datamodelId),E("")):x(a||""),S!=null&&S.lastSelectedDatabase&&S.lastSelectedDatabase!=="none"?(E(S==null?void 0:S.lastSelectedDatabase),x("")):E(o||""),S!=null&&S.lastSelectedSchema?_(S==null?void 0:S.lastSelectedSchema):_(i||""),S!=null&&S.lastSelectedTable?w(S==null?void 0:S.lastSelectedTable):w(s||""),t&&(u(t),d(!0))}return{handleEditVisual:D,card:S,data:P}}function yO({frame:e}){var c;const t=re(u=>u.isDashboardEditing),n=re(u=>u.isVisualEditing),r=re(u=>u.selectedSheetId),{removeFrame:o}=re(u=>u.actions),i=re(u=>u.actions.setIsVisualEditing),{handleEditVisual:s,card:a,data:l}=lG(e);return g.jsx("section",{onMouseDown:u=>{u.stopPropagation()},className:"absolute right-2 top-2 z-50",children:g.jsxs("div",{className:"flex items-center gap-2",children:[t&&(n?g.jsx("button",{onClick:()=>{i(!n)},children:g.jsx(gU,{className:"size-3.5 text-center text-foreground/30 hover:cursor-pointer hover:text-foreground/50"})}):g.jsx("button",{role:"edit-visual",onClick:()=>s(),children:g.jsx(bU,{className:"ml-1 size-3.5 text-center text-foreground/30 hover:cursor-pointer hover:text-foreground/50"})})),t&&g.jsx("button",{onClick:()=>o(r,e.id),children:g.jsx(QT,{className:"size-3.5 text-center text-muted-foreground/70 hover:cursor-pointer hover:text-muted-foreground"})}),((c=a.preferences)==null?void 0:c.allowDownload)===!0&&g.jsx(VU,{data:(l==null?void 0:l.records)||[],filename:a.title})]})})}const cG=R.createContext(null),ry={didCatch:!1,error:null};class ab extends R.Component{constructor(t){super(t),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=ry}static getDerivedStateFromError(t){return{didCatch:!0,error:t}}resetErrorBoundary(){const{error:t}=this.state;if(t!==null){for(var n,r,o=arguments.length,i=new Array(o),s=0;s<o;s++)i[s]=arguments[s];(n=(r=this.props).onReset)===null||n===void 0||n.call(r,{args:i,reason:"imperative-api"}),this.setState(ry)}}componentDidCatch(t,n){var r,o;(r=(o=this.props).onError)===null||r===void 0||r.call(o,t,n)}componentDidUpdate(t,n){const{didCatch:r}=this.state,{resetKeys:o}=this.props;if(r&&n.error!==null&&uG(t.resetKeys,o)){var i,s;(i=(s=this.props).onReset)===null||i===void 0||i.call(s,{next:o,prev:t.resetKeys,reason:"keys"}),this.setState(ry)}}render(){const{children:t,fallbackRender:n,FallbackComponent:r,fallback:o}=this.props,{didCatch:i,error:s}=this.state;let a=t;if(i){const l={error:s,resetErrorBoundary:this.resetErrorBoundary};if(typeof n=="function")a=n(l);else if(r)a=R.createElement(r,l);else if(o!==void 0)a=o;else throw s}return R.createElement(cG.Provider,{value:{didCatch:i,error:s,resetErrorBoundary:this.resetErrorBoundary}},a)}}function uG(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return e.length!==t.length||e.some((n,r)=>!Object.is(n,t[r]))}function $S({error:e}){return g.jsx("div",{className:"flex flex-col items-center justify-center",role:"alert",style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",width:"100%"},children:g.jsxs("div",{style:{backgroundColor:"#fef2f2",border:"1px solid #fecaca",borderRadius:"8px",boxShadow:"0 2px 6px rgba(0, 0, 0, 0.08)",color:"#b91c1c",fontFamily:"sans-serif",padding:"16px",textAlign:"center",flexDirection:"column",whiteSpace:"pre-wrap",position:"relative"},className:"flex flex-col justify-center space-y-1 rounded-md bg-muted p-10",children:[g.jsx("p",{className:"text-sm",children:"Something went wrong:"}),g.jsx("pre",{className:"text-xs",children:e.message})]})})}function dG({error:e,frame:t}){return g.jsxs("div",{className:"flex h-full flex-col items-center justify-center border",role:"alert",children:[g.jsx(yO,{frame:t}),g.jsx("div",{className:"flex flex-col justify-center space-y-2 rounded-md p-10"}),g.jsxs("div",{className:"flex flex-col justify-center space-y-2 rounded-md p-10",children:[g.jsx("p",{className:"text-lg font-semibold",children:"Oops! Looks like we tripped on a loose wire!"}),g.jsx("p",{className:"text-sm",children:"Something went wrong:"}),g.jsx("pre",{className:"text-xs",children:e.message})]})]})}function fG({error:e}){return g.jsxs("div",{className:"flex h-full flex-col items-center justify-center",role:"alert",children:[g.jsx("div",{className:"flex flex-col justify-center space-y-2 rounded-md p-10"}),g.jsxs("div",{className:"flex flex-col justify-center space-y-2 rounded-md p-10",children:[g.jsx("p",{className:"text-lg font-semibold",children:"Oops! Something went wrong!"}),g.jsx("p",{className:"text-sm",children:"Something went wrong:"}),g.jsx("pre",{className:"text-xs",children:e.message})]})]})}function Rr({number:e,decimalPlaces:t=0,useSuffix:n=!1,customSuffix:r="",currency:o="",locale:i="en-US"}){let s=1,a=r,l=i;const c=t;n&&!r&&(e>=1e9?(s=1e9,a="B"):e>=1e7&&i==="en-IN"?(s=1e7,a="Cr"):e>=1e5&&i==="en-IN"?(s=1e5,a="L"):e>=1e6?(s=1e6,a="M"):e>=1e3&&(s=1e3,a="K"));const u=e/s,d={maximumFractionDigits:c,minimumFractionDigits:c};if(o){d.style="currency",d.currency=o;try{new Intl.NumberFormat(i,d).format(0)}catch{}}try{new Intl.NumberFormat(i,d).format(0)}catch{l="en-US"}let h=new Intl.NumberFormat(l,d).format(u);return n&&(h+=a),h}function zS(e,t){if(!t)return"";const n=t.find(r=>e>=r.start&&e<=r.end);return(n==null?void 0:n.color)||""}function lb(e){try{const n=new Function("getDatalabelColor",e)(sx);return{options:n==null?void 0:n.options,plugins:(n==null?void 0:n.plugins)||[]}}catch(t){return console.error("Error processing custom visual code",t),{options:{},plugins:[]}}}function hG(e){var t,n,r,o,i,s,a,l,c,u,d,f,h,p,m,b,y,v;return!e||((r=(n=(t=e==null?void 0:e.scales)==null?void 0:t.x)==null?void 0:n.grid)==null?void 0:r.display)===!0&&((s=(i=(o=e==null?void 0:e.scales)==null?void 0:o.y)==null?void 0:i.grid)==null?void 0:s.display)===!0?"xy":(c=(l=(a=e.scales)==null?void 0:a.x)==null?void 0:l.grid)!=null&&c.display?"x":(f=(d=(u=e.scales)==null?void 0:u.y)==null?void 0:d.grid)!=null&&f.display?"y":((m=(p=(h=e.scales)==null?void 0:h.x)==null?void 0:p.grid)==null?void 0:m.display)===!1&&((v=(y=(b=e.scales)==null?void 0:b.y)==null?void 0:y.grid)==null?void 0:v.display)===!1?"none":"xy"}function pG(e){const t=getComputedStyle(document.documentElement).getPropertyValue(e);return vO(t)}function vO(e){const[t,n,r]=e.split(" "),o=parseFloat(t),i=parseFloat(n),s=parseFloat(r),a=i/100,l=s/100,c=(1-Math.abs(2*l-1))*a,u=c*(1-Math.abs(o/60%2-1)),d=l-c/2;let f=0,h=0,p=0;0<=o&&o<60?(f=c,h=u,p=0):60<=o&&o<120?(f=u,h=c,p=0):120<=o&&o<180?(f=0,h=c,p=u):180<=o&&o<240?(f=0,h=u,p=c):240<=o&&o<300?(f=u,h=0,p=c):300<=o&&o<360&&(f=c,h=0,p=u),f=Math.round((f+d)*255),h=Math.round((h+d)*255),p=Math.round((p+d)*255);const m=b=>{const y=b.toString(16);return y.length==1?"0"+y:y};return`#${m(f)}${m(h)}${m(p)}`}function gG(e,t){return e.map(r=>Object.fromEntries(Object.entries(r).filter(([o])=>!t.some(i=>i.label===o))))}function mG(e){return e.length===1?[e[0]]:e.slice(1).filter(n=>!yN.includes(n))}function jl({data:e,cfg:t,customCfg:n,preferences:r,cardType:o}){const i=o==="radar"?.2:1,{keys:s}=xn(e),a=mG(s);let l="none";o=="bar"?l="bar":o=="line"&&(l="line");const c=mO(a,e,r,i,l),u=La(c,n),d=s[0],f=Yf(e,d),{options:h,plugins:p}=Mg({cardType:o,cfg:t,preferences:r,customCfg:n});return{type:(n==null?void 0:n.type)||(t==null?void 0:t.type)||"bar",data:{labels:f,datasets:u},options:h,plugins:p}}function xO(e,t){var o,i,s;const n=((o=t==null?void 0:t.options)==null?void 0:o.indexAxis)==="y"?"x":"y";return(i=e==null?void 0:e.chartOptions)!=null&&i.indexAxis?((s=e==null?void 0:e.chartOptions)==null?void 0:s.indexAxis)==="x"?"y":"x":n}function bG(e){var n,r;return(n=e==null?void 0:e.chartOptions)!=null&&n.indexAxis?((r=e==null?void 0:e.chartOptions)==null?void 0:r.indexAxis)==="x"?"x":"y":"x"}function wO(e,t){var i,s,a,l,c,u,d,f,h,p,m,b;const n=xO(t,e),r=bG(t);return{...e==null?void 0:e.options,scales:{...(i=e==null?void 0:e.options)==null?void 0:i.scales,[n]:{...(a=(s=e==null?void 0:e.options)==null?void 0:s.scales)==null?void 0:a[n],ticks:{...(u=(c=(l=e==null?void 0:e.options)==null?void 0:l.scales)==null?void 0:c[n])==null?void 0:u.ticks,callback:y=>{var v,x,E,_;return Rr({number:Number(y),decimalPlaces:((v=t==null?void 0:t.numberAxisFormat)==null?void 0:v.decimalPlaces)||0,useSuffix:!!((x=t==null?void 0:t.numberAxisFormat)!=null&&x.suffix),customSuffix:"",locale:((E=t==null?void 0:t.numberAxisFormat)==null?void 0:E.locale)||"",currency:((_=t==null?void 0:t.numberAxisFormat)==null?void 0:_.currency)||""})}}},[r]:{...(h=(f=(d=e==null?void 0:e.options)==null?void 0:d.scales)==null?void 0:f[r])==null?void 0:h.ticks,callback:null}},plugins:{...(p=e==null?void 0:e.options)==null?void 0:p.plugins,datalabels:{...(b=(m=e==null?void 0:e.options)==null?void 0:m.plugins)==null?void 0:b.datalabels,formatter:function(y){var v,x,E,_;return Rr({number:Number(y),decimalPlaces:((v=t==null?void 0:t.numberAxisFormat)==null?void 0:v.decimalPlaces)||0,useSuffix:!!((x=t==null?void 0:t.numberAxisFormat)!=null&&x.suffix),customSuffix:"",locale:((E=t==null?void 0:t.numberAxisFormat)==null?void 0:E.locale)||"",currency:((_=t==null?void 0:t.numberAxisFormat)==null?void 0:_.currency)||""})}}}}}function Mg({cardType:e,cfg:t,preferences:n,customCfg:r}){var p,m,b,y,v,x,E,_,w,S,P,D,k,N,O,$,F,T,I,j,z,B,A,W,L,M,V,U,Y;const o=re.getState().themeStyle,i=wO(t,n),s=Ln((t==null?void 0:t.options)||{},n==null?void 0:n.chartOptions),a=Ln(i,s),l=Ln(a,(r==null?void 0:r.options)||{}),c=yG(e,n,l),u={...l,scales:{...l==null?void 0:l.scales,x:{...(p=l==null?void 0:l.scales)==null?void 0:p.x,grid:{...(b=(m=l==null?void 0:l.scales)==null?void 0:m.x)==null?void 0:b.grid,color:(_=(E=(x=(v=(y=o==null?void 0:o.chart)==null?void 0:y.options)==null?void 0:v.scales)==null?void 0:x.x)==null?void 0:E.grid)==null?void 0:_.color}},y:{...(w=l==null?void 0:l.scales)==null?void 0:w.y,grid:{...(P=(S=l==null?void 0:l.scales)==null?void 0:S.y)==null?void 0:P.grid,color:($=(O=(N=(k=(D=o==null?void 0:o.chart)==null?void 0:D.options)==null?void 0:k.scales)==null?void 0:N.y)==null?void 0:O.grid)==null?void 0:$.color}}},plugins:{...l==null?void 0:l.plugins,tooltip:{filter:function(q){return q.raw!==void 0&&q.raw!==0},callbacks:c,...(F=l==null?void 0:l.plugins)==null?void 0:F.tooltip,backgroundColor:(z=(j=(I=(T=o==null?void 0:o.chart)==null?void 0:T.options)==null?void 0:I.plugins)==null?void 0:j.tooltip)==null?void 0:z.backgroundColor,bodyColor:(L=(W=(A=(B=o==null?void 0:o.chart)==null?void 0:B.options)==null?void 0:A.plugins)==null?void 0:W.tooltip)==null?void 0:L.bodyColor,titleColor:(Y=(U=(V=(M=o==null?void 0:o.chart)==null?void 0:M.options)==null?void 0:V.plugins)==null?void 0:U.tooltip)==null?void 0:Y.titleColor}}},{plugins:d,options:f}=lb((n==null?void 0:n.customVisualCode)||"");return{options:Ln(u,f),plugins:d}}function yG(e,t,n){var r,o;return e==="map"?{}:{title:function(i){var a,l,c,u,d;const s=((a=i==null?void 0:i[0])==null?void 0:a.label)||"";if(i.length>1&&["stackedBar","stackedLine"].includes(e||"")){const f=i.reduce((p,m)=>{const b=m.raw;return b!==void 0&&b!==0?p+b:p},0),h=Rr({number:f,decimalPlaces:((l=t==null?void 0:t.numberAxisFormat)==null?void 0:l.decimalPlaces)||0,useSuffix:!!((c=t==null?void 0:t.numberAxisFormat)!=null&&c.suffix),customSuffix:"",locale:((u=t==null?void 0:t.numberAxisFormat)==null?void 0:u.locale)||"",currency:((d=t==null?void 0:t.numberAxisFormat)==null?void 0:d.currency)||""});return`${s} (${h})`}return s},label:function(i){var c,u,d,f,h;const s=((c=i==null?void 0:i.dataset)==null?void 0:c.label)||"",a=i==null?void 0:i.raw;if(a===void 0||a===0)return;const l=Rr({number:Number(a),decimalPlaces:((u=t==null?void 0:t.numberAxisFormat)==null?void 0:u.decimalPlaces)||0,useSuffix:!!((d=t==null?void 0:t.numberAxisFormat)!=null&&d.suffix),customSuffix:"",locale:((f=t==null?void 0:t.numberAxisFormat)==null?void 0:f.locale)||"",currency:((h=t==null?void 0:t.numberAxisFormat)==null?void 0:h.currency)||""});return`${s}: ${l}`},...((o=(r=n==null?void 0:n.plugins)==null?void 0:r.tooltip)==null?void 0:o.callbacks)||{}}}/*!
|
|
274
274
|
* @kurkle/color v0.3.4
|
|
275
275
|
* https://github.com/kurkle/color#readme
|
|
276
276
|
* (c) 2024 Jukka Kurkela
|
|
@@ -14685,7 +14685,8 @@ function yU(e, t = 1) {
|
|
|
14685
14685
|
}
|
|
14686
14686
|
function jO(e, t, n, r = 1, o = "none") {
|
|
14687
14687
|
var u, d, f, h;
|
|
14688
|
-
const i = n == null ? void 0 : n.datasetOptions, a = oe.getState().themeStyle, s = (d = (u = a == null ? void 0 : a.chart) == null ? void 0 : u.dataset) == null ? void 0 : d.backgroundColor, l = (h = (f = a == null ? void 0 : a.chart) == null ? void 0 : f.dataset) == null ? void 0 : h.borderColor
|
|
14688
|
+
const i = n == null ? void 0 : n.datasetOptions, a = oe.getState().themeStyle, s = (d = (u = a == null ? void 0 : a.chart) == null ? void 0 : u.dataset) == null ? void 0 : d.backgroundColor, l = (h = (f = a == null ? void 0 : a.chart) == null ? void 0 : f.dataset) == null ? void 0 : h.borderColor;
|
|
14689
|
+
return e.map((p, g) => {
|
|
14689
14690
|
var R;
|
|
14690
14691
|
const m = i == null ? void 0 : i.find((D) => D.idx === g), y = yU(
|
|
14691
14692
|
s == null ? void 0 : s[g % s.length],
|
|
@@ -14745,13 +14746,13 @@ function jO(e, t, n, r = 1, o = "none") {
|
|
|
14745
14746
|
)
|
|
14746
14747
|
},
|
|
14747
14748
|
backgroundColor: y,
|
|
14748
|
-
//
|
|
14749
|
+
//pointBackgroundColor: datasetPointBackgroundColor,
|
|
14749
14750
|
borderColor: w,
|
|
14750
|
-
...o === "line" && E ? _ : {
|
|
14751
|
+
...o === "line" && E ? _ : o === "line" ? {
|
|
14751
14752
|
borderWidth: 2,
|
|
14752
14753
|
// point radius
|
|
14753
14754
|
pointRadius: 1.5
|
|
14754
|
-
},
|
|
14755
|
+
} : {},
|
|
14755
14756
|
...o === "bar" && E ? x : {}
|
|
14756
14757
|
// borderColor: (ctx: any) => {
|
|
14757
14758
|
// // Make forecast borders black when the forecasted value is true (e.g., index >= 4)
|
|
@@ -14777,7 +14778,6 @@ function jO(e, t, n, r = 1, o = "none") {
|
|
|
14777
14778
|
//stack: dimensionKeys.length > 1 ? dimensionKeys[1] : undefined,
|
|
14778
14779
|
};
|
|
14779
14780
|
});
|
|
14780
|
-
return console.log("defaultDatasets", c), c;
|
|
14781
14781
|
}
|
|
14782
14782
|
function vU(e, t) {
|
|
14783
14783
|
return Zd(e === "end" || e === "start" ? Dg() : t);
|
|
@@ -70004,10 +70004,12 @@ function FRe(e, t) {
|
|
|
70004
70004
|
), De = (On = k == null ? void 0 : k.datamodels) == null ? void 0 : On.map((ve) => ({
|
|
70005
70005
|
id: ve.id,
|
|
70006
70006
|
name: ve.name
|
|
70007
|
-
})), mn = N == null ? void 0 : N.databases.map(
|
|
70008
|
-
|
|
70009
|
-
|
|
70010
|
-
|
|
70007
|
+
})), mn = N == null ? void 0 : N.databases.map(
|
|
70008
|
+
(ve) => ({
|
|
70009
|
+
id: ve.database_name,
|
|
70010
|
+
name: ve.database_name
|
|
70011
|
+
})
|
|
70012
|
+
), Ft = M == null ? void 0 : M.schemas.map((ve) => ({
|
|
70011
70013
|
id: ve.schema_name,
|
|
70012
70014
|
name: ve.schema_name
|
|
70013
70015
|
})), re = U == null ? void 0 : U.tables.map((ve) => ({
|
package/dist/dashboard/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-BoBbG6pt.js"),r=require("../types/index.cjs");exports.Dashboard=e.Dashboard;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;
|
package/dist/dashboard/index.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./chunks/index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./chunks/index-BoBbG6pt.js"),Wt=require("./types/index.cjs"),e=require("react/jsx-runtime"),E=require("react");require("react-dom");function Kt(s){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const n in s)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(s,n);Object.defineProperty(a,n,r.get?r:{enumerable:!0,get:()=>s[n]})}}return a.default=s,Object.freeze(a)}const de=Kt(E);/**
|
|
2
2
|
* @license lucide-react v0.453.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -353,7 +353,7 @@
|
|
|
353
353
|
*
|
|
354
354
|
* This source code is licensed under the ISC license.
|
|
355
355
|
* See the LICENSE file in the root directory of this source tree.
|
|
356
|
-
*/const Us=t.createLucideIcon("Type",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]);function _e(s){var a;return{...s,sheets:(a=s==null?void 0:s.sheets)==null?void 0:a.map(n=>{var r;return{...n,frames:(r=n.frames)==null?void 0:r.map(o=>{var l;return{...o,cards:(l=o.cards)==null?void 0:l.map(i=>pt(i))}})}})}}function pt(s){return{...s,customCfg:$s(s.customCfg),data:[]}}function $s(s){var a,n;return s?{...s,data:{...s==null?void 0:s.data,labels:[],datasets:(n=(a=s==null?void 0:s.data)==null?void 0:a.datasets)==null?void 0:n.map(r=>({...r,data:[]}))}}:null}async function Qs(s,a,n,r){if(!r)return null;const o=JSON.stringify(a);return await t.postRequest("https://semaphor.cloud/api/v1/lens",r,{name:s,template:o,filterValues:n,operation:"create"})}async function Le(s,a){if(!a)return null;const{id:n,template:r,filterValues:o,isDefault:l,shared:i}=s;return await t.postRequest("https://semaphor.cloud/api/v1/lens",a,{lensId:n,template:r,filterValues:o,isDefault:l,shared:i,operation:"update"})}async function Js(s,a){return a?await t.postRequest("https://semaphor.cloud/api/v1/lens",a,{operation:"delete",lensId:s}):null}function Ws(){const[s,a]=E.useState(""),[n,r]=E.useState(!1),o=t.useDashboardStore(p=>p.lenses),{setLenses:l,setSelectedLensId:i}=t.useDashboardActions(),[d,c]=E.useState(!1),[h,u]=E.useState(!1),x=t.useDashboardStore(p=>p.dashboard),v=t.useDashboardStore(p=>p.filterValues),{authToken:m}=t.useSemaphorContext();async function b(){c(!0);const p=_e(x),f=await Qs(s,p,v,m==null?void 0:m.accessToken);f&&(l([...o||[],f]),i(f.id),u(!1)),c(!1)}return e.jsxs(t.Dialog,{open:h,onOpenChange:u,children:[e.jsx(t.DialogTrigger,{asChild:!0,children:e.jsxs(t.Button,{variant:"secondary",className:"h-7 p-2",size:"sm",children:[e.jsx(t.Plus,{className:"mr-2 h-4 w-4"}),"Lens"]})}),e.jsxs(t.DialogContent,{className:"sm:max-w-[425px]",children:[e.jsxs(t.DialogHeader,{children:[e.jsx(t.DialogTitle,{children:"Create Lens"}),e.jsx(t.DialogDescription,{children:"Lenses are private by default and are only visible to you."})]}),e.jsx("div",{className:"grid gap-4 py-4",children:e.jsxs("div",{className:"grid grid-cols-8 items-center gap-4",children:[e.jsx(t.Label,{className:"text-right",children:"Name"}),e.jsx(t.Input,{value:s,onChange:p=>{a(p.target.value)},id:"name",className:"col-span-7 focus-visible:ring-0 focus-visible:ring-ring focus-visible:ring-offset-0"})]})}),n&&e.jsx("p",{className:"text-sm",children:"The lens name already exists. Use a differnet name."}),e.jsx(t.DialogFooter,{children:e.jsx(t.Button,{size:"sm",variant:"outline",type:"submit",onClick:b,disabled:d,children:d?"Creating...":"Add"})})]})]})}function Ks(){const[s,a]=E.useState(!1),n=t.useDashboardStore(u=>u.lenses),r=t.useDashboardStore(u=>u.selectedLensId),{setLenses:o,setSelectedLensId:l}=t.useDashboardActions(),{authToken:i}=t.useSemaphorContext();async function d(u){l(u)}async function c(u){if(await Js(u,i==null?void 0:i.accessToken)){const v=n==null?void 0:n.filter(m=>m.id!==u);o(v||[]),l("original")}}async function h(u){const x=n==null?void 0:n.map(b=>b.id===u.id?{...b,isDefault:!u.isDefault}:{...b,isDefault:!1});o(x||[]);const v={...u,isDefault:!u.isDefault};await Le(v,i==null?void 0:i.accessToken);const m=n==null?void 0:n.find(b=>b.isDefault);if(m&&m.id!==u.id){const b={...m,isDefault:!1};await Le(b,i==null?void 0:i.accessToken)}}return e.jsxs(t.DropdownMenu,{open:s,onOpenChange:a,children:[e.jsx(t.DropdownMenuTrigger,{asChild:!0,children:e.jsx(t.IconButton,{tooltip:"Lenses",className:"h-7 p-2",children:e.jsx(ws,{className:"h-4 w-4"})})}),e.jsxs(t.DropdownMenuContent,{align:"end",className:"w-60",children:[e.jsx(t.DropdownMenuLabel,{className:"px-3",children:"Lenses"}),e.jsx(t.DropdownMenuSeparator,{}),e.jsxs(t.DropdownMenuRadioGroup,{value:r,onValueChange:d,children:[e.jsx(t.DropdownMenuRadioItem,{value:"original",children:"Original"}),n==null?void 0:n.map(u=>e.jsxs(t.DropdownMenuRadioItem,{className:"group flex justify-between gap-2",value:u.id,children:[e.jsx("p",{children:u.name}),e.jsxs("span",{className:"flex items-center gap-3",children:[e.jsx(Is,{onClick:x=>{x.preventDefault(),h(u)},className:t.cn("size-3.5 text-muted-foreground hover:cursor-pointer hover:text-foreground group-hover:visible",{invisible:!u.isDefault,"text-green-500":u.isDefault}),strokeWidth:1.5}),e.jsx(t.Cross2Icon,{onClick:x=>{x.preventDefault(),c(u.id)},className:"invisible size-3.5 text-muted-foreground hover:cursor-pointer hover:text-foreground group-hover:visible",strokeWidth:1.5})]})]},u.id))]})]})]})}function ft(){var l;const s=t.useDashboardStore.getState().authToken,a=t.useDashboardStore.getState().theme,n=t.useDashboardStore.getState().filterValues,r=(l=t.useDashboardStore.getState().dashboard)==null?void 0:l.title,o=t.useDashboardStore.getState().selectedSheetId;return{authToken:s,theme:a||"light",filterValues:n,dashboardTitle:r||"",selectedSheetId:o||""}}async function gt(){const s=t.useDashboardStore.getState().isDownloadingPdf,{authToken:a,theme:n,filterValues:r,dashboardTitle:o,selectedSheetId:l}=ft();if(s)return;const i=new URLSearchParams;i.set("token",(a==null?void 0:a.accessToken)||""),i.set("theme",n),i.set("filterValues",JSON.stringify(r)),i.set("selectedSheetId",l||"");const d=`https://semaphor.cloud/api/v1/generate-pdf?params=${encodeURIComponent(i.toString())}`;t.useDashboardStore.setState({isDownloadingPdf:!0});const u=(await(await fetch(d,{method:"GET",headers:{Authorization:`Bearer ${a==null?void 0:a.accessToken}`}})).json()).url,x=document.createElement("a");x.href=u;const v=`${o}-${new Date().toISOString()}.pdf`;x.download=v,x.click(),t.useDashboardStore.setState({isDownloadingPdf:!1})}function Ys({iconClassName:s}){const{authToken:a}=t.useSemaphorContext();t.useDashboardStore(o=>{var l;return(l=o.dashboard)==null?void 0:l.title}),t.useDashboardStore(o=>o.theme),t.useDashboardStore(o=>o.filterValues);const n=t.useDashboardStore(o=>o.isDownloadingPdf);async function r(){await gt()}return e.jsx(t.IconButton,{tooltip:"Download PDF",className:"h-7 p-2",onClick:r,children:n?e.jsx(oe,{className:t.cn("size-3.5 animate-spin",s)}):e.jsx(t.Download,{className:t.cn("size-4",s)})})}function X({defaultValue:s,label:a,options:n,value:r,onValueChange:o,className:l,icon:i,showPlaceholderLabel:d=!0}){return e.jsxs(t.Select,{defaultValue:s,value:r,onValueChange:o,children:[e.jsx(t.SelectTrigger,{className:t.cn("w-full focus:ring-0 focus:ring-offset-0",l),children:e.jsxs("div",{className:"flex items-center gap-2",children:[i&&e.jsx("span",{children:i}),d&&e.jsx(t.SelectValue,{placeholder:a})]})}),e.jsx(t.SelectContent,{children:e.jsxs(t.SelectGroup,{children:[e.jsx(t.SelectLabel,{children:a}),n.map(c=>e.jsx(t.SelectItem,{value:c.value,children:c.label},c.value))]})})]})}const Je=[{value:"daily",label:"Daily"},{value:"weekly",label:"Weekly"},{value:"biweekly",label:"Bi-Weekly"},{value:"monthly",label:"Monthly"}];function jt({triggerButtonClassName:s}){const{data:a,handleScheduleSubscription:n,handleDeleteSubscription:r,status:o,error:l,isDeleting:i}=Zs(),[d,c]=E.useState(""),[h,u]=E.useState(Je[0].value),[x,v]=E.useState("06:00"),[m,b]=E.useState("");return e.jsx(t.TooltipProvider,{delayDuration:0,children:e.jsxs(t.Popover,{children:[e.jsx(t.PopoverTrigger,{asChild:!0,children:e.jsx(t.IconButton,{tooltip:"Schedule Dashboard",className:t.cn("h-7 p-2",s),children:e.jsx(xs,{className:"size-4"})})}),e.jsx(t.PopoverContent,{align:"end",className:"w-80",children:e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-medium leading-none",children:"Schedule Subscription"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Subscribe to receive dashboard via email"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs("div",{className:"grid grid-cols-3 items-center gap-4",children:[e.jsx(t.Label,{htmlFor:"email",children:"Email"}),e.jsx(t.Input,{id:"email",value:d,onChange:p=>c(p.target.value),className:`col-span-2 h-8 ${t.removeRing}`})]}),e.jsxs("div",{className:"grid grid-cols-3 items-center gap-4",children:[e.jsx(t.Label,{htmlFor:"subject",children:"Subject"}),e.jsx(t.Input,{id:"subject",placeholder:"Monthly Sales Report",value:m,onChange:p=>{b(p.target.value.replace(/[^a-zA-Z0-9\s-_]/g,""))},className:`col-span-2 h-8 ${t.removeRing}`})]}),e.jsxs("div",{className:"grid grid-cols-3 items-center gap-4",children:[e.jsx(t.Label,{htmlFor:"frequency",children:"Frequency"}),e.jsx(X,{className:"col-span-2 h-8",label:"Select Frequency",options:Je,value:h,onValueChange:p=>u(p)})]}),e.jsxs("div",{className:"grid grid-cols-3 items-center gap-4",children:[e.jsx(t.Label,{htmlFor:"time",children:"Time"}),e.jsx(t.Input,{id:"time",type:"time",value:x,onChange:p=>v(p.target.value),className:`col-span-2 h-8 ${t.removeRing}`})]}),e.jsx("div",{className:"mt-2 flex justify-end",children:e.jsxs(t.Button,{onClick:async()=>{await n({email:d,frequency:h,time:x,subject:m}),v("00:00"),c(""),b("")},className:"h-8 p-2",disabled:o==="loading"||!d,children:[o==="loading"&&e.jsx(oe,{className:"mr-2 size-4 animate-spin"}),o==="success"&&e.jsx(t.Check,{className:"mr-2 size-4"}),o==="error"&&e.jsxs(t.Tooltip,{children:[e.jsx(t.TooltipTrigger,{children:e.jsx(at,{className:"mr-2 size-4 text-destructive"})}),e.jsx(t.TooltipContent,{children:e.jsx("p",{children:l})})]}),"Schedule"]})}),a&&a.length>0&&e.jsxs("div",{className:"space-y-4",children:[e.jsx(t.Separator,{className:"my-2"}),e.jsx("div",{className:"space-y-2",children:e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-medium leading-none",children:"Subscriptions"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Active email subscriptions"})]}),t.isDevEnv]})}),e.jsx("div",{className:"grid gap-2",children:a==null?void 0:a.map(p=>e.jsxs("div",{className:"group grid grid-cols-5 gap-3",children:[e.jsx("div",{className:"col-span-3 text-sm",children:e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"boder-border rounded-md border bg-muted px-2 py-1",children:[t.titleCase(p.frequency)," "]}),e.jsx(t.Label,{children:p.time})]})}),e.jsxs("div",{className:"col-span-2 flex items-center justify-end gap-4",children:[e.jsx(We,{tooltip:`Next Run: ${new Date(p.nextRun).toLocaleString()} ${p.timezone}`,children:e.jsx(hs,{className:"size-3.5"})}),e.jsx(We,{tooltip:`${p.endUserEmail}`,children:e.jsx(Os,{className:"size-3.5"})}),i===p.id?e.jsx(oe,{className:"size-3.5 animate-spin"}):e.jsx(t.Trash2,{onClick:()=>r(p.id),className:"size-3.5 cursor-pointer"})]})]},p.id))})]})]})]})})]})})}const We=({children:s,tooltip:a})=>e.jsx(t.TooltipProvider,{delayDuration:0,children:e.jsxs(t.Tooltip,{children:[e.jsx(t.TooltipTrigger,{asChild:!0,children:s}),e.jsx(t.TooltipContent,{children:a})]})});function Zs(){const[s,a]=E.useState("idle"),[n,r]=E.useState(""),[o,l]=E.useState(null),i=t.useDashboardStore(S=>S.authToken),d=t.useDashboardStore(S=>S.dashboard.id),c=t.useDashboardStore(S=>S.dashboard.title),{endUserId:h}=t.getTenantAndEndUserId((i==null?void 0:i.accessToken)||""),u="https://semaphor.cloud/api/v1/subscriptions/get",x={dashboardId:d,endUserId:h},{data:v,isLoading:m,isError:b,isFetching:p,refetch:f}=t.useQuery({queryKey:["subscriptions",d,h],queryFn:()=>t.getRequest(u,(i==null?void 0:i.accessToken)||"",x),enabled:!!(i!=null&&i.accessToken)&&!!d&&!!h});async function g({email:S,subject:A,frequency:k,time:T}){const{authToken:L,...F}=ft(),G=Intl.DateTimeFormat().resolvedOptions().timeZone,w={email:S,frequency:k,time:T,timezone:G,endUserId:h,endUserEmail:S,subject:A||c||"Scheduled Dashboard",dashboardId:d,dashboardParams:F};a("loading");const R="https://semaphor.cloud/api/v1/subscriptions/create";try{const U=await t.postRequestRegular(R,(L==null?void 0:L.accessToken)||"",{...w});a("success"),r(""),f(),setTimeout(()=>{a("idle")},2e3)}catch(U){console.error(U),a("error"),r(U.message)}}async function N(S){const A="https://semaphor.cloud/api/v1/subscriptions/delete";l(S);try{await t.postRequestRegular(A,(i==null?void 0:i.accessToken)||"",{id:S}),f(),setTimeout(()=>{l(null)},2e3)}catch(k){console.error(k),l(null),a("error"),r(k.message)}}return{data:v,isLoading:m,isFetching:p,isError:b,isDeleting:o,refetch:f,handleScheduleSubscription:g,handleDeleteSubscription:N,status:s,error:n}}function Xs(){const{authToken:s}=t.useSemaphorContext();t.useDashboardStore(w=>w.theme);const a=t.useDashboardStore(w=>w.lenses),n=t.useDashboardStore(w=>w.selectedLensId),r=a==null?void 0:a.find(w=>w.id===n),o=t.useDashboardStore(w=>w.dashboard);t.useDashboardStore(w=>w.selectedSheetId);const l=t.useDashboardStore(w=>w.isDashboardEditing),i=t.useEditorStore(w=>w.selectedConnectionId),[d,c]=E.useState(!1),h=t.useDashboardStore(w=>w.filterValues),u=t.useDashboardStore(w=>w.isVisualEditing),x=t.useDashboardStore(w=>w.showFilters);t.useDashboardStore(w=>w.showDashboardJSON);const v=t.useDashboardStore(w=>w.onSaveFunction),m=t.useDashboardStore(w=>w.actions.setShowFilters),{addFrame:b,setSelectedFrameId:p}=t.useDashboardStore(w=>w.actions),{getSelectedSheet:f,setIsDashboardEditing:g,setShowDashboardJSON:N}=t.useDashboardStore(w=>w.actions),S=f(),{tenantId:A,endUserId:k}=E.useMemo(()=>t.getTenantAndEndUserId(s==null?void 0:s.accessToken),[s==null?void 0:s.accessToken]),T=E.useMemo(()=>A||k,[A,k]),L=()=>{if(!l||!S)return;const w={connectionId:i,id:t.v4(),title:"Title",preferences:{onClickFilter:[{columnIndex:0,expression:""}]},type:"bar",sql:"",data:[]},R={id:t.v4(),cards:[w],activeCardId:w.id};b(S.id,R),p(R.id)},F=()=>{g(!0)};async function G(){if(c(!0),!n||!r)return;const w=_e(o),R=JSON.stringify(w),U={...r,template:R,filterValues:h};await Le(U,s==null?void 0:s.accessToken),t.ue.success("Lens saved"),v==null||v(w),c(!1)}return u?null:e.jsxs("div",{className:"flex items-center justify-between gap-2 border-b py-1 pl-3 pr-2",role:"dashboard-controls",children:[!u&&e.jsx("div",{className:"flex items-center gap-3",children:e.jsx(t.Label,{children:r==null?void 0:r.name})}),e.jsxs("div",{className:"flex gap-2",children:[!1,!u&&e.jsx(Ys,{}),!u&&e.jsx(jt,{}),l&&!u&&T&&e.jsx(Ws,{}),!u&&T&&e.jsx(Ks,{}),l&&!u&&e.jsxs(t.Button,{variant:"secondary",className:"h-7 p-2",size:"sm",disabled:!l,onClick:L,children:[e.jsx(t.Plus,{className:"mr-2 h-4 w-4"}),"Frame"]}),!l&&e.jsx(t.Button,{variant:"ghost",className:"h-7 p-2",onClick:F,size:"sm",children:e.jsx(t.Pencil,{className:"h-4 w-4"})}),l&&!u&&e.jsx(t.IconButton,{className:"h-7 p-2",onClick:()=>{g(!1),N(!1)},children:e.jsx(t.Cross2Icon,{className:"h-4 w-4"})}),l&&!u&&T&&e.jsx(t.Button,{className:"h-7 p-2",variant:"ghost",disabled:d,onClick:G,size:"sm",children:e.jsx(_s,{className:"h-4 w-4"})}),!x&&!u&&l&&e.jsx(t.Button,{className:"h-7 p-2",variant:"ghost",onClick:()=>m(!0),size:"sm",children:e.jsx(it,{className:"h-4 w-4"})}),!u&&l&&!1,!u&&!1]})]})}function en({name:s,items:a,value:n,onChange:r,isLoading:o,isError:l,refetch:i,className:d,icon:c,showNone:h=!1}){const u=de.useRef(null),[x,v]=de.useState(!1),[m,b]=de.useState("100%"),p=h?[...a||[],{id:"none",name:"None"}]:a;de.useLayoutEffect(()=>{u.current&&b(u.current.offsetWidth)},[]);function f(){var N;return o?"Loading...":l?"Error":n?(N=a==null?void 0:a.find(S=>S.id===n))==null?void 0:N.name:`Select ${s}`}function g(N,S){r(S),v(!1)}return e.jsxs(t.Popover,{open:x,onOpenChange:v,children:[e.jsx(t.PopoverTrigger,{asChild:!0,children:e.jsxs(t.Button,{ref:u,variant:"outline",role:"combobox","aria-expanded":x,className:t.cn("flex h-9 w-full justify-between",d),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[c&&e.jsx("div",{className:"mr-2",children:c}),e.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:f()})]}),e.jsx(t.ChevronDown,{className:"size-4 opacity-50"})]})}),e.jsx(t.PopoverContent,{className:"w-full p-0",style:{minWidth:m},children:e.jsxs(t.Command,{children:[e.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[e.jsx(t.CommandInput,{className:"h-9",placeholder:"Search..."}),e.jsx(t.IconButton,{className:"h-7",onClick:i,children:e.jsx(ut,{className:t.cn("size-3.5 opacity-50",o&&"animate-spin")})})]}),e.jsxs(t.CommandList,{children:[e.jsxs(t.CommandEmpty,{children:["No ",s==null?void 0:s.toLowerCase()," found."]}),e.jsx(t.CommandGroup,{children:p==null?void 0:p.map(N=>e.jsx(t.CommandItem,{className:"overflow-x-auto",value:N.name,onSelect:S=>g(S,N.id),children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(t.Check,{className:t.cn("size-4",n===N.id?"opacity-100":"opacity-0")}),e.jsx("div",{title:N.name,children:N.name})]})},N.id))})]})]})})]})}function ce({title:s,items:a,value:n,isLoading:r,isError:o,refetch:l,onChange:i,showNone:d=!1,className:c,disabled:h=!1,type:u="combobox"}){const x=r?"Loading...":o?"Error":n;function v(){if(s==="Connection")return e.jsx(Bs,{className:"size-4"});if(s==="Database")return e.jsx(js,{className:"size-4"});if(s==="Schema")return e.jsx(Rs,{className:"size-4"});if(s==="Table")return e.jsx(Ve,{className:"size-4"});if(s==="Model")return e.jsx(ds,{className:"size-4"})}function m(){return e.jsxs(t.Select,{disabled:h,value:x,onValueChange:i,children:[e.jsx(t.SelectTrigger,{className:t.cn("h-9 w-full border-muted focus:ring-1 focus:ring-offset-0",c),children:e.jsx(t.SelectValue,{placeholder:r?"Loading...":o?"Error":`Select ${s}`})}),e.jsx(t.SelectContent,{children:e.jsxs(t.SelectGroup,{children:[r?e.jsx(t.SelectLabel,{children:"Loading..."}):e.jsxs(t.SelectLabel,{className:"flex items-center justify-between gap-2",children:[s,e.jsx(ut,{className:t.cn("mr-1 size-3 cursor-pointer text-muted-foreground hover:text-foreground",r&&"animate-spin"),onClick:l})]}),e.jsxs(e.Fragment,{children:[d&&e.jsx(t.SelectItem,{value:"none",children:"None"},"none"),a&&a.map((p,f)=>e.jsx(t.SelectItem,{value:p.id,children:p.name},f))]}),(r||o)&&e.jsx(t.SelectItem,{value:x,children:x})]})})]})}function b(){return e.jsx(en,{icon:v(),items:a,value:x,onChange:i||(()=>{}),isLoading:r,isError:o,refetch:l,name:s,showNone:d})}return e.jsx(t.TooltipProvider$1,{delayDuration:0,children:e.jsx("div",{className:"flex items-center gap-2",children:u==="select"?m():b()})})}function tn({column:s}){const[a,n]=E.useState(!1),r=t.useEditorStore(p=>p.selectedTableName),o=t.useEditorStore(p=>p.selectedSchemaName),l=t.useEditorStore(p=>p.selectedDatabaseName),i=t.useEditorStore(p=>p.selectedDatamodelId),d=t.useEditorStore(p=>p.sqlGen),{modelItems:c,connectionType:h}=t.useEditorAside(),u=t.useEditorStore(p=>p.actions.setSqlGen),x=t.useEditorStore(p=>p.actions.setCardSql),v=t.useEditorStore(p=>p.actions.setRunSql);function m(p,f){var A;const g=t.createSqlGenConfig(p,d,f),N=(A=c==null?void 0:c.find(k=>k.id===i))==null?void 0:A.name;u(g);const S=t.getSql(g,t.fmt(o||""),t.fmt(r),N,h,l||"");S&&(x(S),v(!0)),n(!1)}function b(){return e.jsxs("ul",{className:"text-xs",children:[e.jsx("li",{onClick:()=>m(s,"COUNT"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Count"}),e.jsx("li",{onClick:()=>m(s,"AVG"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Avg"}),e.jsx("li",{onClick:()=>m(s,"SUM"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Sum"}),e.jsx("li",{onClick:()=>m(s,"MAX"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Max"}),e.jsx("li",{onClick:()=>m(s,"MIN"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Min"})]})}return e.jsxs(t.HoverCard,{openDelay:0,open:a,onOpenChange:n,children:[e.jsx(t.HoverCardTrigger,{asChild:!0,children:e.jsx(t.EllipsisVertical,{className:"invisible size-3.5 cursor-pointer text-foreground/40 group-hover:visible"})}),e.jsx(t.HoverCardContent,{align:"center",className:"w-20 rounded-md p-0 shadow-none",children:b()})]})}function qe({column:s}){return e.jsxs(t.Tooltip,{children:[e.jsx(t.TooltipTrigger$1,{className:"shrink-0",asChild:!0,children:t.isTextDataType(s.data_type)?e.jsx(t.TextIcon,{className:"size-3 text-muted-foreground"}):t.isNumberDataType(s.data_type)?e.jsx(lt,{className:"size-3 text-muted-foreground"}):t.isDateDataType(s.data_type)?e.jsx(t.Calendar,{className:"size-3 text-muted-foreground"}):t.isBooleanDataType(s.data_type)?e.jsx(Gs,{className:"size-3 text-muted-foreground"}):s.data_type.startsWith("json")?e.jsx(us,{className:"size-3 text-muted-foreground"}):e.jsx(t.QuestionMarkIcon,{className:"size-3 text-muted-foreground"})}),e.jsx(t.TooltipContent,{children:e.jsx("p",{className:"text-xs",children:s.data_type})})]})}function we({column:s,className:a}){return e.jsxs("div",{className:t.cn("flex min-h-8 grow items-center space-x-2 px-2 text-sm",a),children:[e.jsx(qe,{column:s}),e.jsx("span",{children:s.column_name})]})}function sn({id:s,children:a,type:n="column"}){const{attributes:r,listeners:o,setNodeRef:l,transform:i}=t.useDraggable({id:s,data:{type:n}}),d=i?{translate:t.CSS.Translate.toString(i),transform:t.CSS.Transform.toString(i)}:void 0;return e.jsx("div",{ref:l,style:d,...o,...r,children:a})}function nn({onClick:s,column:a}){const n=t.useDndStore(u=>u.activeId),r=t.useEditorStore(u=>{var x;return(x=u.card.queryConfig)==null?void 0:x.groupByColumns}),o=t.useEditorStore(u=>{var x;return(x=u.card.queryConfig)==null?void 0:x.metricColumns}),l=t.useEditorStore(u=>{var x;return(x=u.card.queryConfig)==null?void 0:x.filterColumns});function i(u){return d(u)||c(u)||h(u)}function d(u){return r==null?void 0:r.some(x=>x.name===u.column_name)}function c(u){return o==null?void 0:o.some(x=>x.name===u.column_name)}function h(u){return l==null?void 0:l.some(x=>x.name===u.column_name)}return e.jsxs("div",{onClick:()=>s(a),className:t.cn("relative grow overflow-x-hidden overflow-y-hidden rounded-md active:border active:border-dashed active:border-muted-foreground",{"bg-muted-foreground/10":i(a)}),children:[n===a.column_name&&e.jsx(t.DragOverlay,{children:e.jsx(we,{column:a,className:"rounded-md border-2 border-dashed border-muted-foreground bg-muted shadow-md"})}),n===a.column_name&&e.jsx("div",{className:"absolute inset-0",children:n===a.column_name&&e.jsx(we,{column:a})}),e.jsx(sn,{id:a.column_name,type:"column",children:e.jsx(we,{column:a})})]})}const ke={id:"__placeholder__",role:"groupby",type:"string"},De={id:"__placeholder__",role:"groupby",type:"string"},Ie={id:"__placeholder__",role:"metric",type:"number"},Ee={name:"Filter",id:"__placeholder__",role:"filter",type:"string"},yt={id:"__placeholder__"},ne="droppable-group-by",ae="droppable-metrics",re="droppable-pivot-by",be="sortable-group-by",Oe="sortable-metrics",ve="sortable-pivot-by",ze="droppable-filters",Fe="sortable-filters",Pe="sortable-order-by";function an(){const s=t.useDndStore(D=>D.insertIndex),a=t.useEditorStore(D=>{var j;return((j=D.card.queryConfig)==null?void 0:j.groupByColumns)||[]}),n=t.useEditorStore(D=>{var j;return((j=D.card.queryConfig)==null?void 0:j.metricColumns)||[]}),r=t.useEditorStore(D=>{var j;return((j=D.card.queryConfig)==null?void 0:j.filterColumns)||[]}),o=t.useEditorStore(D=>{var j;return((j=D.card.queryConfig)==null?void 0:j.orderBy)||[]}),l=t.useEditorStore(D=>{var j;return((j=D.card.queryConfig)==null?void 0:j.pivotColumns)||[]}),{setInsertIndex:i,setActiveId:d,setPreviewGroupByColumns:c,setPreviewMetricColumns:h,setPreviewFilterColumns:u,setPreviewPivotColumns:x}=t.useDndActions(),{setGroupByColumns:v,setMetricColumns:m,setFilterColumns:b,setOrderByColumns:p,setPivotByColumns:f}=t.useEditorActions(),{columns:g}=t.useDataColumns(),{formattedTableName:N}=t.useEditorAside(),S=t.useSensors(t.useSensor(t.MouseSensor,{activationConstraint:{distance:1}})),A=D=>{var V;const{active:j,over:M}=D;if(((V=j.data.current)==null?void 0:V.type)==="column"&&M){const _=M.id,H=g.find(I=>I.column_name===j.id);if(!H)return;const Q=t.isNumberDataType(H.data_type),y=t.isTextDataType(H.data_type),C=t.isDateDataType(H.data_type);if(y||C){if(a.some(B=>B.id===_)){const B=a.findIndex(z=>z.id===_);i(B);const $=a.filter(z=>z.id!==ke.id);$.splice(B,0,ke),c($)}else if(M.id===ne){i(a.length);const B=[...a,ke];c(B),h(n),u(r)}}if(y||C){if(l.some(B=>B.id===_)){const B=l.findIndex(z=>z.id===_);i(B);const $=l.filter(z=>z.id!==De.id);$.splice(B,0,De),x($)}else if(M.id===re){i(l.length);const B=[...l,De];x(B),c(a),h(n),u(r)}}if(Q||y){if(n.some(B=>B.id===_)){console.log("isOverMetricSortable",_);const B=n.findIndex(z=>z.id===_);i(B);const $=n.filter(z=>z.id!==Ie.id);$.splice(B,0,Ie),h($)}else if(M.id===ae){i(n.length);const B=[...n,Ie];h(B),u(r),c(a),x(l)}}if(T(H)){if(r.some(B=>B.id===_)){const B=r.findIndex(z=>z.id===_);i(B);const $=r.filter(z=>z.id!==Ee.id);$.splice(B,0,Ee),u($)}else if(M.id===ze){i(r.length);const B=[...r,Ee];u(B),h(n),c(a),x(l)}}}else c(a),h(n),u(r),x(l)};function k(D){d(D.active.id),i(null),c(a),h(n),u(r),x(l)}function T(D){return!r.some(j=>j.name===D.column_name)}function L(D,j="SUM"){const{column_name:M,data_type:V}=D,_=[...n],H=s!==null?s:n.length,Q={...D,id:ee(M),name:M,label:xe(M,j),type:V,role:"metric",aggregate:j};_.splice(H,0,Q),m(_)}function F(D){const j=t.isTextDataType(D.data_type);t.isDateDataType(D.data_type);const M=[...l],V=s!==null?s:l.length;let _;j?_={...D,id:ee(D.column_name),name:D.column_name,type:D.data_type,role:"groupby"}:_={...D,id:ee(D.column_name),name:D.column_name,type:D.data_type,role:"groupby",label:ue(D.column_name,"month"),granularity:"month"},M.splice(V,0,_),f(M)}function G(D){const j=t.isTextDataType(D.data_type);t.isDateDataType(D.data_type);const M=[...a],V=s!==null?s:a.length;let _;j?_={...D,id:ee(D.column_name),name:D.column_name,type:D.data_type,role:"groupby"}:_={...D,id:ee(D.column_name),name:D.column_name,type:D.data_type,role:"groupby",label:ue(D.column_name,"month"),granularity:"month"},M.splice(V,0,_),v(M)}function w(D){const j=[...r],M=s!==null?s:r.length,V={...D,id:ee(D.column_name),name:D.column_name,type:D.data_type,sql:t.getDefaultFilterSql(D.data_type,N,t.fmt(D.column_name)),role:"filter"};j.splice(M,0,V),b(j)}function R(D){var _,H,Q,y,C,I,B,$;const{active:j,over:M}=D,V=j.data.current;if((V==null?void 0:V.type)==="column"&&M){const z=g.find(O=>O.column_name===j.id);if(!z)return;const W=t.isNumberDataType(z.data_type),P=t.isTextDataType(z.data_type),Y=t.isDateDataType(z.data_type);(P||Y)&&(M.id===ne||((_=M.data.current)==null?void 0:_.type)===be)&&G(z),(P||Y)&&(M.id===re||((H=M.data.current)==null?void 0:H.type)===ve)?F(z):(W||P)&&(M.id===ae||((Q=M.data.current)==null?void 0:Q.type)===Oe)?(W&&L(z),P&&L(z,"COUNT")):T(z)&&(M.id===ze||((y=M.data.current)==null?void 0:y.type)===Fe)&&w(z)}if(M&&((C=M.data.current)==null?void 0:C.type)===be&&a.some(z=>z.id===j.id)){const z=a.findIndex(P=>P.id===j.id),W=a.findIndex(P=>P.id===M.id);if(z!==-1&&W!==-1&&z!==W){const P=[...a],[Y]=P.splice(z,1);P.splice(W,0,Y),v(P)}}if(M&&((I=M.data.current)==null?void 0:I.type)===ve&&l.some(z=>z.id===j.id)){const z=l.findIndex(P=>P.id===j.id),W=l.findIndex(P=>P.id===M.id);if(z!==-1&&W!==-1&&z!==W){const P=[...l],[Y]=P.splice(z,1);P.splice(W,0,Y),f(P)}}if(M&&((B=M.data.current)==null?void 0:B.type)===Oe&&n.some(z=>z.id===j.id)){const z=n.findIndex(P=>P.id===j.id),W=n.findIndex(P=>P.id===M.id);if(z!==-1&&W!==-1&&z!==W){const P=[...n],[Y]=P.splice(z,1);P.splice(W,0,Y),m(P)}}if(M&&(($=M.data.current)==null?void 0:$.type)===Fe&&r.some(z=>z.id===j.id)){const z=r.findIndex(P=>P.id===j.id),W=r.findIndex(P=>P.id===M.id);if(z!==-1&&W!==-1&&z!==W){const P=[...r],[Y]=P.splice(z,1);P.splice(W,0,Y),b(P)}}U(D),d(null),i(null),c(a),h(n),u(r),x(l)}function U(D){const{active:j,over:M}=D,V=j.data.current;if((V==null?void 0:V.type)===Pe&&M){const _=o.findIndex(Q=>he(Q.columnId)===j.id),H=o.findIndex(Q=>he(Q.columnId)===M.id);if(_!==-1&&H!==-1&&_!==H){const Q=[...o],[y]=Q.splice(_,1);Q.splice(H,0,y),p(Q)}}}function q(){d(null),i(null),c(a),h(n),u(r)}return{handleDragOver:A,handleDragEnd:R,handleDragStart:k,handleDragCancel:q,sensors:S}}function ee(s){return`${s}-${t.v4()}`}function xe(s,a){const n=t.toTitleCase(s.replace(/_/g," "));switch(a){case"SUM":return`Sum of ${n}`;case"COUNT":return`Count of ${n}`;case"DISTINCT":return`Unique ${n}`;case"AVG":return`Average of ${n}`;case"MIN":return`Min of ${n}`;case"MAX":return`Max of ${n}`;default:return n}}function he(s){return`${Pe}-${s}`}function ue(s,a){const n=t.toTitleCase(s.replace(/_/g," "));switch(a){case"day":return`Date of ${n}`;case"week":return`Week of ${n}`;case"month":return`Month of ${n}`;case"year":return`Year of ${n}`;default:return n}}function rn({schemaName:s,tableName:a,columns:n,status:r}){const o=t.useEditorStore(j=>j.sqlGen),l=t.useEditorStore(j=>j.isDevMode),i=t.useEditorStore(j=>j.selectedConnectionId),d=t.useEditorStore(j=>{var M,V;return(V=(M=j.card)==null?void 0:M.queryConfig)==null?void 0:V.metricColumns});t.useEditorStore(j=>{var M,V;return(V=(M=j.card)==null?void 0:M.queryConfig)==null?void 0:V.groupByColumns});const c=t.useEditorStore(j=>j.selectedDatabaseName),h=t.useEditorStore(j=>j.selectedSchemaName),u=t.useEditorStore(j=>j.selectedTableName),x=t.useEditorStore(j=>j.selectedDatamodelId),v=t.useDashboardStore(j=>j.dashboard.aiScopeTables),{addToAIScope:m,removeFromAIScope:b}=t.useDashboardActions(),{addColumnToMetricColumns:p,addColumnToGroupBy:f,setCardSql:g,setRunSql:N,setSqlGen:S,setIsShowingVisual:A}=t.useEditorActions(),{connectionType:k,modelItems:T,selectedDatamodelName:L}=t.useEditorAside();function F(j){var M;if(l){const V=t.createSqlGenConfig(j,o);S(V);const _=(M=T==null?void 0:T.find(Q=>Q.id===x))==null?void 0:M.name,H=t.getSql(V,t.fmt(s),t.fmt(a),_,k,c||"");H&&(g(H),N(!0))}if(!l){if(t.isTextDataType(j.data_type))if(d&&d.length>0){const V={...j,role:"groupby",id:ee(j.column_name),name:j.column_name,type:j.data_type};f(V)}else{const V={...j,role:"metric",id:ee(j.column_name),name:j.column_name,label:xe(j.column_name,"COUNT"),type:j.data_type,aggregate:"COUNT"};p(V)}if(t.isDateDataType(j.data_type)){const V={...j,role:"groupby",id:ee(j.column_name),name:j.column_name,type:j.data_type,label:ue(j.column_name,"month"),granularity:"month"};f(V)}if(t.isNumberDataType(j.data_type)){const V={...j,role:"metric",id:ee(j.column_name),name:j.column_name,label:xe(j.column_name,"SUM"),type:j.data_type,aggregate:"SUM"};p(V)}}}function G(j){j===!0&&(u||L)&&i?(m({connectionId:i,connectionType:k==="S3"||k==="API"?"DuckDb":k,databaseName:c||"",schemaName:h||"",tableName:u||"",datamodelName:t.resolveDatamodelName(L),datamodelId:x||""}),t.ue.success("Added to Assistant Scope",{position:"top-right",duration:2500,richColors:!0})):(b({connectionId:i||"",connectionType:k||"",tableName:u||"",datamodelName:t.resolveDatamodelName(L),datamodelId:x||"",databaseName:c||"",schemaName:h||""}),t.ue("Removed from Assistant Scope",{position:"top-right",duration:2e3,richColors:!0}))}function w(){const j=t.getFormattedTableNameForQuery({schemaName:s,tableName:a,modelName:L,connectionType:k,databaseName:c||""});A(!1);const M=k==="MSSQL"?`SELECT top 10 * FROM ${j}`:`SELECT * FROM ${j} LIMIT 10`;g(M),N(!0)}function R(){const j=t.getFormattedTableNameForQuery({schemaName:s,tableName:a,modelName:L,connectionType:k,databaseName:c||""});g(`SELECT COUNT(*) as count FROM ${j}`),N(!0)}function U(){return(v==null?void 0:v.find(j=>j.connectionId===i&&(j.tableName===u||j.datamodelName===L)))!==void 0}function q(j){return l?e.jsxs("div",{className:"flex grow items-center justify-between space-x-2 rounded-md px-2 py-1",onClick:()=>F(j),children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(qe,{column:j}),e.jsx("span",{children:j.column_name})]}),e.jsx("div",{onClick:M=>M.stopPropagation(),className:"flex items-center justify-end",children:t.isNumberDataType(j.data_type)&&e.jsx(tn,{column:j})})]}):e.jsx(nn,{onClick:F,column:j})}function D(){return e.jsxs(e.Fragment,{children:[e.jsxs(t.Toggle,{title:`${U()?"Remove from":"Add to"} Assistant Scope`,pressed:U(),onPressedChange:G,variant:"outline",className:t.cn("h-9 px-2",{}),children:[e.jsx(t.Plus,{className:t.cn("mr-1 size-4",{"text-green-400":U(),"text-muted-foreground":!U()})}),"AI"]}),e.jsxs(t.Button,{disabled:r!=="Success",onClick:w,size:"sm",variant:"secondary",className:"flex",children:[r!=="Success"?e.jsx(oe,{className:"mr-2 h-4 w-4 animate-spin text-foreground/50"}):e.jsx(Ls,{className:"mr-2 size-4"}),"Top 10"]}),e.jsxs(t.Button,{disabled:r!=="Success",onClick:R,size:"sm",variant:"secondary",className:"w-full",children:[r!=="Success"?e.jsx(oe,{className:"mr-2 h-4 w-4 animate-spin text-foreground/50"}):e.jsx(ht,{className:"mr-2 size-4"}),"Count"]})]})}return r!=="Success"?e.jsx("div",{className:"flex grow flex-col justify-start gap-2 px-6",children:Array.from({length:3}).map((j,M)=>e.jsx(t.Skeleton,{className:"h-7 w-full"},M))}):e.jsxs("div",{className:"flex grow flex-col space-y-4 px-4",children:[l&&e.jsx("div",{className:"mx-2 flex items-center justify-center gap-2",children:D()}),e.jsxs(t.CustomScrollArea,{className:"flex-1 basis-0 overflow-y-auto px-2 py-0",children:[e.jsx("div",{className:"flex flex-col gap-1",children:n==null?void 0:n.map(j=>e.jsx("div",{className:t.cn("mr-2 cursor-pointer rounded-md text-sm transition-colors hover:bg-muted"),children:q(j)},j.column_name))}),e.jsx(t.ScrollBar,{orientation:"vertical"}),e.jsx(t.ScrollBar,{orientation:"horizontal"})]})]})}function bt({ColumnsComponent:s,type:a}){var Ue;const n=t.useEditorStore(K=>K.card),r=t.useEditorStore(K=>K.selectedConnectionId),o=t.useDashboardStore(K=>K.showFilters),l=t.useEditorStore(K=>K.selectedDatamodelId),i=t.useEditorStore(K=>K.selectedDatabaseName),d=t.useEditorStore(K=>K.selectedSchemaName),c=t.useEditorStore(K=>K.selectedTableName),h=t.useEditorStore(K=>K.isDevMode),{setSelectedTableName:u,setIsDevMode:x,setCardSql:v}=t.useEditorActions(),{connectionItems:m,modelItems:b,schemaItems:p,databaseItems:f,tableItems:g,columns:N,isConnectionsLoading:S,isModelsLoading:A,isConnectionsError:k,isModelsError:T,isDatabasesLoadingOrFetching:L,isDatabaseError:F,isSchemaLoadingOrFetching:G,isSchemaError:w,isColumnsError:R,isColumnsLoadingOrFetching:U,isTableLoadingOrFetching:q,isTableError:D,connectionType:j,isNonDbConnection:M,refetchDatabases:V,refetchModels:_,refetchSchemas:H,refetchTables:Q,refetchColumns:y,refetchConnections:C,handleConnectionChange:I,handleDatabaseChange:B,handleSchemaChange:$,handleDatamodelChange:z,handleTableChange:W,tableName:P,schemaName:Y}=t.useEditorAside(),{data:O,refetch:J}=t.useDashboardCardQuery(n);function Z(){return s?s(Y,P,N):e.jsx(rn,{schemaName:Y,tableName:P,columns:N,status:U?"Loading...":R?"Error":"Success"})}function te(){window.location.href="mailto:support@semaphor.cloud?subject=Help&body=I need help with..."}function pe(K){K===!0?O&&(v(O.userSql),setTimeout(()=>{J()},100)):v(""),x(K)}function fe(){if(!r||j==="S3"||j==="API")return null;if(!l||l==="none")return e.jsx(ce,{refetch:V,showNone:!0,onChange:B,isError:F,isLoading:L,items:f,value:i||"",title:"Database",type:"combobox"})}function Ut(){if(r&&!M&&(!i||i==="none")&&(!l||l==="none"))return e.jsxs("div",{className:"grid grid-cols-3",children:[e.jsx("div",{className:"col-span-1 grid place-items-center",children:e.jsx(t.Separator,{})}),e.jsx("div",{className:"col-span-1 grid place-items-center",children:e.jsx(t.Label,{children:"OR"})}),e.jsx("div",{className:"col-span-1 grid place-items-center",children:e.jsx(t.Separator,{})})]})}function $t(){if(!r||j==="S3"||j==="API")return null;if(!i||i==="none")return e.jsx(ce,{refetch:_,showNone:!0,onChange:z,isError:T,isLoading:A,items:b,value:l||"",title:"Model",type:"combobox"})}function Qt(){return!r||j==="S3"||j==="API"||!i||i==="none"?null:e.jsx(ce,{refetch:H,onChange:$,isError:w,isLoading:G,items:p,value:d||"",title:"Schema",type:"combobox"})}function Jt(){function K(){let se=!1;return j==="API"?(se=!1,se):((j==="S3"||r&&i&&i!=="none"&&d)&&(se=!0),se)}return K()?e.jsx(ce,{refetch:Q,onChange:W,isError:D,items:g,isLoading:q,value:c||"",title:"Table",type:"combobox"}):null}return e.jsxs("aside",{className:t.cn("flex h-full min-w-[310px] max-w-[310px] flex-col justify-between rounded-none",{"border-r-[1px]":!o}),children:[e.jsxs("section",{className:"space-y-3 px-6 py-4",children:[e.jsx(ce,{refetch:C,items:m,title:"Connection",value:r||"",onChange:I,isLoading:S,isError:k,type:"combobox",connectionTooltip:((Ue=m==null?void 0:m.find(K=>K.id===r))==null?void 0:Ue.type)||""}),fe(),Ut(),$t(),Qt(),Jt()]}),Z(),e.jsx("div",{className:"flex items-center justify-between gap-2 px-6 py-4",children:a==="main"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(t.Switch,{className:"data-[state=checked]:bg-muted-foreground/80",checked:h,onCheckedChange:pe,id:"dev-mode"}),e.jsx(t.Label,{htmlFor:"dev-mode",children:"Advanced Mode"})]}),e.jsxs(t.Button,{onClick:te,size:"sm",variant:"secondary",className:"group flex items-center gap-2 rounded-full",children:[e.jsx(zs,{className:"size-4"}),e.jsx("span",{className:"hidden group-hover:block",children:"Help"})]})]})})]})}function vt({sql:s,error:a,onClick:n}){const r=t.useEditorStore(c=>c.isDevMode);t.useEditorStore(c=>c.card);const{setIsDevMode:o,setCardSql:l,setRunSql:i}=t.useEditorActions();if(!s&&!a)return null;function d(){o(!r),l(s),setTimeout(()=>{i(!0)},100)}return e.jsxs(t.HoverCard,{openDelay:a?0:500,children:[e.jsx(t.HoverCardTrigger,{asChild:!0,children:e.jsx(t.Button,{variant:"link",className:"h-5 p-0",children:a?e.jsx(at,{className:"h-4 w-4 text-red-500"}):e.jsx(t.Info,{className:"h-4 w-4 text-muted-foreground"})})}),e.jsx(t.HoverCardContent,{align:"start",className:"w-full min-w-fit max-w-[700px]",children:e.jsx("div",{className:"flex justify-between space-x-4",children:e.jsxs("div",{className:"flex grow flex-col space-y-2",children:[e.jsxs(t.ScrollArea,{className:"max-h-[250px] min-h-0 overflow-scroll text-xs leading-relaxed text-foreground/80",children:[a&&a,s&&e.jsxs("div",{className:"flex flex-col space-y-1.5",children:[e.jsx("span",{className:"text-xs font-semibold",children:"Resolved SQL"}),e.jsx("div",{className:"rounded-md",children:e.jsx(t.CodeHighlighter,{code:s,language:"sql"})})]})]}),!r&&e.jsxs(t.Button,{onClick:d,variant:"secondary",size:"sm",children:[e.jsx(Cs,{className:"mr-2 h-4 w-4"}),"View in SQL Editor"]}),a&&n&&e.jsxs(t.Button,{onClick:n,size:"sm",variant:"secondary",children:[e.jsx(Ds,{className:"mr-2 h-4 w-4"}),"Debug with Assistant"]})]})})})]})}var Ct={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Ke=E.createContext&&E.createContext(Ct),on=["attr","size","title"];function ln(s,a){if(s==null)return{};var n=cn(s,a),r,o;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(s);for(o=0;o<l.length;o++)r=l[o],!(a.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(s,r)&&(n[r]=s[r])}return n}function cn(s,a){if(s==null)return{};var n={};for(var r in s)if(Object.prototype.hasOwnProperty.call(s,r)){if(a.indexOf(r)>=0)continue;n[r]=s[r]}return n}function Ce(){return Ce=Object.assign?Object.assign.bind():function(s){for(var a=1;a<arguments.length;a++){var n=arguments[a];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(s[r]=n[r])}return s},Ce.apply(this,arguments)}function Ye(s,a){var n=Object.keys(s);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(s);a&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(s,o).enumerable})),n.push.apply(n,r)}return n}function Se(s){for(var a=1;a<arguments.length;a++){var n=arguments[a]!=null?arguments[a]:{};a%2?Ye(Object(n),!0).forEach(function(r){dn(s,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):Ye(Object(n)).forEach(function(r){Object.defineProperty(s,r,Object.getOwnPropertyDescriptor(n,r))})}return s}function dn(s,a,n){return a=un(a),a in s?Object.defineProperty(s,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):s[a]=n,s}function un(s){var a=mn(s,"string");return typeof a=="symbol"?a:a+""}function mn(s,a){if(typeof s!="object"||!s)return s;var n=s[Symbol.toPrimitive];if(n!==void 0){var r=n.call(s,a);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(s)}function St(s){return s&&s.map((a,n)=>E.createElement(a.tag,Se({key:n},a.attr),St(a.child)))}function ie(s){return a=>E.createElement(hn,Ce({attr:Se({},s.attr)},a),St(s.child))}function hn(s){var a=n=>{var{attr:r,size:o,title:l}=s,i=ln(s,on),d=o||n.size||"1em",c;return n.className&&(c=n.className),s.className&&(c=(c?c+" ":"")+s.className),E.createElement("svg",Ce({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},n.attr,r,i,{className:c,style:Se(Se({color:s.color||n.color},n.style),s.style),height:d,width:d,xmlns:"http://www.w3.org/2000/svg"}),l&&E.createElement("title",null,l),s.children)};return Ke!==void 0?E.createElement(Ke.Consumer,null,n=>a(n)):a(Ct)}function xn(s){return ie({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z"},child:[]}]})(s)}function Nt(s){const{theme:a}=t.useTheme(),n=t.useDashboardStore(p=>p.theme),r=t.useEditorStore(p=>p.frame),o=t.useEditorStore(p=>p.card),l=t.useEditorStore(p=>p.activeTabCardId),i=t.Le(),{refetch:d}=t.useDashboardCardQuery(o),{updateCardTab:c,setRunSql:h}=t.useEditorActions(),u=E.useRef(),x=E.useRef({}),v=r.cards.find(p=>p.id===l),m=E.useCallback(()=>{let p="";return s==="python"&&(p=(v==null?void 0:v.python)||t.PYTHON_DEFAULT_CODE),s==="sql"&&(p=(v==null?void 0:v.sql)||""),p},[s,v]);E.useEffect(()=>{if(l&&o.id&&o.id!==l){if(u.current&&i){const p=u.current.getModel();p&&(x.current[o.id]=p);let f=x.current[l];if(!f){const g=m();f=i.editor.createModel(g,s),x.current[l]=f}u.current.setModel(f)}c(l,o),h(!0)}},[l,o,c,i,h,s,m]),E.useEffect(()=>{if(!i)return;const p=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",f=n==="system"?p:n;i.editor.defineTheme("default",{base:f==="light"?"vs":"vs-dark",inherit:!0,rules:[],colors:{"editor.background":f==="light"?"#ffffff":t.hslStringToHex("240 10% 10%")}}),i.editor.setTheme("default")},[a,n,i]),E.useEffect(()=>{const p=u.current;p&&i&&o&&p.addCommand(i.KeyMod.Shift|i.KeyCode.Enter,function(){return d(),!1})},[i,d,o]);function b(p,f){if(u.current=p,!x.current[o.id]){const g=p.getModel(),N=m();x.current[o.id]=g||(f==null?void 0:f.editor.createModel(N,s))||p.getModel()}p.setModel(x.current[o.id])}return{handleEditorDidMount:b}}function pn(){const s=t.useEditorStore(i=>i.card.sql),a=t.useEditorStore(i=>i.sqlGen),{setCardSql:n,setSqlGen:r}=t.useEditorActions(),{handleEditorDidMount:o}=Nt("sql");function l(i){n(i),t.isObjectEmpty(a)||r({})}return e.jsxs("div",{className:"relative h-full w-full",children:[!s&&e.jsx("div",{className:"pointer-events-none absolute left-[65px] top-3 z-10 font-mono text-sm text-muted-foreground",children:"Write your SQL here"}),e.jsx(t.Ft,{theme:"default",className:"pt-3",onChange:l,value:s||"",options:{minimap:{enabled:!1},wordWrap:"on",scrollbar:{verticalScrollbarSize:0,horizontalScrollbarSize:0},fontSize:13,renderLineHighlight:"none"},defaultLanguage:"sql",onMount:o})]})}function fn(){const s=t.useEditorStore(o=>o.card.python),{setCardPython:a}=t.useEditorActions(),{handleEditorDidMount:n}=Nt("python");function r(o){a(o)}return e.jsx(t.Ft,{className:"pt-3",theme:"default",onChange:r,value:s||t.PYTHON_DEFAULT_CODE,options:{minimap:{enabled:!1},wordWrap:"on",scrollbar:{verticalScrollbarSize:0,horizontalScrollbarSize:0},fontSize:13,renderLineHighlight:"none"},defaultLanguage:"python",onMount:n})}function gn({jsonString:s}){return e.jsx(t.Ft,{theme:"default",defaultLanguage:"json",className:"mt-1 min-h-[220px]",value:s,options:{readOnly:!0,minimap:{enabled:!1},lineNumbers:"off",glyphMargin:!1,wordWrap:"on",scrollbar:{verticalScrollbarSize:0,horizontalScrollbarSize:0},fontSize:12,renderLineHighlight:"none"}})}function wt(s){const[a,n]=E.useState(""),[r,o]=E.useState(null),{authToken:l}=t.useSemaphorContext(),i=t.useEditorStore(O=>{var J;return(J=O==null?void 0:O.card)==null?void 0:J.sql}),d=t.useEditorStore(O=>O.isDevMode),c=t.useEditorStore(O=>{var J;return(J=O==null?void 0:O.card)==null?void 0:J.python}),{setCardPython:h,setCardSql:u,setRunSql:x,switchCardType:v,setQueryConfig:m}=t.useEditorActions(),b=t.useEditorStore(O=>O.currentAssitantScope)||[],p=t.useEditorStore(O=>O.userInputForAI),f=t.useEditorStore(O=>O.triggerAIRun),g=t.useEditorStore(O=>O.selectedDatabaseName),N=t.useEditorStore(O=>O.selectedTableName),S=t.useEditorStore(O=>O.selectedConnectionId),A=t.useEditorStore(O=>O.selectedSchemaName),k=t.useDashboardStore(O=>O.dashboard.aiScopeTables),{setTriggerAIRun:T,setCurrentAssitantScope:L}=t.useEditorActions(),{selectedDatamodelName:F,connectionType:G,selectedDatamodelId:w}=t.useEditorAside(),{messages:R,setMessages:U,reload:q,error:D,append:j,input:M,setInput:V,status:_,handleInputChange:H,handleSubmit:Q,stop:y}=t.useChat({api:"https://semaphor.cloud/api/v1/assistant",headers:{Authorization:`Bearer ${l==null?void 0:l.accessToken}`},body:{random:Math.random(),assistantId:"editor-assistant",isDevMode:d},maxSteps:10,onError:O=>{console.log("on error",O)},onToolCall:C,onFinish(O,J){I(J.usage),n(""),J.finishReason==="stop"&&n("")}});E.useEffect(()=>{f&&p&&(H({target:{value:p}}),setTimeout(()=>{Q(),T(!1)},100))},[f,Q,p,T,H]);async function C({toolCall:O}){if(["createChartFromSql","createForecast"].includes(O.toolName)){const J=O.args.sql,Z=O.args.python,te=O.args.chartType;return v(te),u(J),h(Z),x(!0),{status:"success",message:"Let the user know that chart is created"}}else if(O.toolName==="getTableColumns")n("Getting table columns...");else{if(O.toolName==="getUserSql")return i?{status:"success",sql:i,python:c||""}:{status:"error",message:"No SQL found"};if(O.toolName==="getCurrentTableScope")return n("Getting table scope..."),W(),{status:"success",tables:b};if(O.toolName==="generateQueryConfig"){n("Generating query config...");const J=O.args.chartType,Z=O.args.queryConfig;return v(J),m(Z),u(void 0),h(void 0),x(!0),{status:"success",queryConfig:Z}}else n("Analyzing...")}}function I(O){o(J=>J?{promptTokens:J.promptTokens+O.promptTokens,completionTokens:J.completionTokens+O.completionTokens,totalTokens:J.totalTokens+O.totalTokens}:O)}function B(O){const J=t.removeFromScopeArray(b,O);$(J)}function $(O){const J=t.sanitizeAIScope(O);L(J),U(Z=>[...Z,{id:crypto.randomUUID(),role:"system",content:`Current scope of tables. Always use the table reference format when generating SQL | ${JSON.stringify(J)}`}])}function z(){const O={databaseName:g||"",schemaName:A||"",tableName:N||"",datamodelId:w||"",datamodelName:t.resolveDatamodelName(F),connectionId:S||"",connectionType:G||""},J=t.dedup([...b,O]);$(J)}function W(){const O={databaseName:g||"",schemaName:A||"",tableName:N||"",datamodelName:t.resolveDatamodelName(F),connectionId:S||"",connectionType:G||"",datamodelId:w||""};if(!t.isInAiScopeArray([...k||[],...b],O)||b.length===0){const Z=t.dedup([...k||[],...b,O]).filter(te=>te.connectionId===O.connectionId);$(Z)}}const P=!["ready","error"].includes(_),Y=t.getErrorMessage(D);return{messages:R,setMessages:U,reload:q,append:j,input:M,setInput:V,isLoading:P,handleSetAIScope:W,handleAddCurrentTableToScope:z,removeFromCurrentSelections:B,currentAssitantScope:b,setCurrentAssitantScope:L,handleInputChange:H,handleSubmit:Q,stop:y,chatStatus:_,toolStatus:a,llmUsage:r,onFinish:s,errorMessage:Y}}function jn(s){const a=s.toUpperCase().indexOf("WHERE"),n=s.toUpperCase().indexOf("GROUP BY"),r=s.toUpperCase().indexOf("LIMIT"),o=s.toUpperCase().indexOf("ORDER BY");let l=s.length;if(o!==-1&&(l=o),r!==-1&&r<l&&(l=r),a!==-1){const i=s.substring(0,a),d=s.substring(a);return`${i} {{ filters | where }} AND ${d.substring(6)}`}else if(n!==-1){const i=s.substring(0,n),d=s.substring(n);return`${i} {{ filters | where }} ${d}`}else{const i=s.substring(0,l),d=s.substring(l);return console.log("beforeClause",i),console.log("afterClause",d),d?`${i} {{ filters | where }} ${d}`:`${i.replace(/;$/,"")} {{ filters | where }}`}}function kt({variant:s="secondary"}){const{setCardSql:a}=t.useEditorActions(),n=t.useEditorStore(m=>m.frame),r=t.useEditorStore(m=>m.card),o=t.useEditorStore(m=>m.selectedSchemaName),l=t.useEditorStore(m=>m.selectedDatamodelId),i=t.useEditorStore(m=>m.selectedDatabaseName),d=t.useEditorStore(m=>m.selectedTableName),c=t.useEditorStore(m=>m.selectedConnectionId),h=t.useEditorStore(m=>m.isShowingVisual),u=r.sql,x=t.useEditorStore(m=>m.onSave);function v(){let m=u;u&&!u.includes("{{")&&(m=jn(u),a(m));const b={...r,lastSelectedSchema:o,lastSelectedDatamodelId:l,lastSelectedDatabase:i,lastSelectedTable:d,connectionId:c,type:h?r.type:"table",sql:m,customCfg:h?r.customCfg:null},p=n.cards.map(g=>g.id===r.id?b:g),f={...n,cards:p,activeCardId:yn(p,n.activeCardId)};x==null||x(f)}return e.jsxs(t.Button,{onClick:v,size:"sm",variant:s,children:[e.jsx(t.Check,{className:"mr-2 size-4 font-bold"}),"Accept"]})}function Dt(){const{setTempQueryData:s,setSqlGen:a}=t.useEditorActions(),n=t.useQueryClient(),r=t.useEditorStore(c=>c.tempQueryData),o=t.useEditorStore(c=>c.onClose),l=t.useEditorStore(c=>c.card),{queryKey:i}=t.useDashboardCardQuery(l);function d(){if(r){const{queryKey:c,queryData:h}=r;c&&h&&n.setQueryData(c,h)}a({}),o==null||o()}return e.jsxs(t.Button,{onClick:d,size:"sm",variant:"secondary",children:[e.jsx(t.X,{className:"mr-2 size-4"}),"Close"]})}function It(){const{setTempQueryData:s}=t.useEditorActions(),a=t.useQueryClient(),n=t.useEditorStore(m=>m.tempQueryData),r=t.useEditorStore(m=>m.card),{queryKey:o}=t.useDashboardCardQuery(r),{setCardSql:l,setSqlGen:i,setCardPython:d,setCardCustomCfg:c,setCardPreferences:h,setCardType:u,clearQueryConfig:x}=t.useEditorActions();function v(){const m=a.getQueryData(o);n!=null&&n.queryData||s({queryKey:o,queryData:m}),a.setQueryData(o,null),a.removeQueries({queryKey:o,exact:!0}),l(""),i({}),x(),d(""),c(""),h({})}return e.jsxs(t.Button,{onClick:v,className:"",size:"sm",variant:"secondary",children:[e.jsx(bs,{className:"mr-2 size-4"}),"Clear"]})}function yn(s,a){if(s.length===0)return"";if(a){const n=s.find(r=>r.id===a);if(n){const r=n.tabTitle;if(r=="All__Header")return s[0].id;if(r&&r.endsWith("__Header")){const l=r.split("__")[0],i=s.find(d=>d.tabTitle===l);return i?i.id:s[0].id}return a}}return s[0].id}function bn(){const s=t.useQueryClient(),[a,n]=E.useState(!1),[r,o]=E.useState(!1);t.useEditorStore(y=>y.frame);const l=t.useEditorStore(y=>y.card);t.useEditorStore(y=>y.isShowingVisual),t.useEditorStore(y=>y.selectedConnectionId),t.useEditorStore(y=>y.tempQueryData),t.useEditorStore(y=>y.selectedDatabaseName),t.useEditorStore(y=>y.selectedDatamodelId),t.useEditorStore(y=>y.selectedSchemaName);const i=t.useEditorStore(y=>y.showAIDialog);t.useEditorStore(y=>y.selectedTableName);const d=t.useEditorStore(y=>{var C;return(C=y==null?void 0:y.card)==null?void 0:C.sql}),c=t.useEditorStore(y=>{var C;return(C=y==null?void 0:y.card)==null?void 0:C.python}),{sheetFilterValues:h}=t.useSheetFilterValues(),{setCardCustomCfg:u,setQueryResultColumns:x,setCardSql:v,setTempQueryData:m,setPythonStdOut:b,setCardPreferences:p,setCardType:f,setCardPython:g,runAssistant:N,setShowAIDialog:S}=t.useEditorActions();t.useEditorStore(y=>y.onSave),t.useEditorStore(y=>y.onClose),t.useEditorStore(y=>y.actions.setSqlGen);const A=t.useEditorStore(y=>y.runSql),k=t.useEditorStore(y=>y.actions.setRunSql),T=t.useEditorStore(y=>y.actions.setIsSqlRunning),{data:L,isLoading:F,isFetching:G,isSuccess:w,isError:R,error:U,queryKey:q,refetch:D,errorMessage:j}=t.useDashboardCardQuery(l),{handleSetAIScope:M}=wt();E.useEffect(()=>{if(L&&(L.rowLimitExceeded&&t.ue.error("Row limit (10,000) exceeded. Refine your query.",{position:"top-center",richColors:!0}),b((L==null?void 0:L.output)||""),L.records.length>0)){const{dimensionKeys:y}=t.getKeys(L.records);x(y)}},[L,x,b]),E.useEffect(()=>{(F||G)&&T(!0),(R||w)&&T(!1),R&&(x([]),b(""))},[F,G,L,b,R,w,T,x,U]),E.useEffect(()=>{A&&(s.getQueryData(q)||D(),k(!1))},[A,D,k,q,s]);async function V(){const y=`Can you help me debug this query in the current table scope?
|
|
356
|
+
*/const Us=t.createLucideIcon("Type",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]);function _e(s){var a;return{...s,sheets:(a=s==null?void 0:s.sheets)==null?void 0:a.map(n=>{var r;return{...n,frames:(r=n.frames)==null?void 0:r.map(o=>{var l;return{...o,cards:(l=o.cards)==null?void 0:l.map(i=>pt(i))}})}})}}function pt(s){return{...s,customCfg:$s(s.customCfg),data:[]}}function $s(s){var a,n;return s?{...s,data:{...s==null?void 0:s.data,labels:[],datasets:(n=(a=s==null?void 0:s.data)==null?void 0:a.datasets)==null?void 0:n.map(r=>({...r,data:[]}))}}:null}async function Qs(s,a,n,r){if(!r)return null;const o=JSON.stringify(a);return await t.postRequest("https://semaphor.cloud/api/v1/lens",r,{name:s,template:o,filterValues:n,operation:"create"})}async function Le(s,a){if(!a)return null;const{id:n,template:r,filterValues:o,isDefault:l,shared:i}=s;return await t.postRequest("https://semaphor.cloud/api/v1/lens",a,{lensId:n,template:r,filterValues:o,isDefault:l,shared:i,operation:"update"})}async function Js(s,a){return a?await t.postRequest("https://semaphor.cloud/api/v1/lens",a,{operation:"delete",lensId:s}):null}function Ws(){const[s,a]=E.useState(""),[n,r]=E.useState(!1),o=t.useDashboardStore(p=>p.lenses),{setLenses:l,setSelectedLensId:i}=t.useDashboardActions(),[d,c]=E.useState(!1),[h,u]=E.useState(!1),x=t.useDashboardStore(p=>p.dashboard),v=t.useDashboardStore(p=>p.filterValues),{authToken:m}=t.useSemaphorContext();async function b(){c(!0);const p=_e(x),f=await Qs(s,p,v,m==null?void 0:m.accessToken);f&&(l([...o||[],f]),i(f.id),u(!1)),c(!1)}return e.jsxs(t.Dialog,{open:h,onOpenChange:u,children:[e.jsx(t.DialogTrigger,{asChild:!0,children:e.jsxs(t.Button,{variant:"secondary",className:"h-7 p-2",size:"sm",children:[e.jsx(t.Plus,{className:"mr-2 h-4 w-4"}),"Lens"]})}),e.jsxs(t.DialogContent,{className:"sm:max-w-[425px]",children:[e.jsxs(t.DialogHeader,{children:[e.jsx(t.DialogTitle,{children:"Create Lens"}),e.jsx(t.DialogDescription,{children:"Lenses are private by default and are only visible to you."})]}),e.jsx("div",{className:"grid gap-4 py-4",children:e.jsxs("div",{className:"grid grid-cols-8 items-center gap-4",children:[e.jsx(t.Label,{className:"text-right",children:"Name"}),e.jsx(t.Input,{value:s,onChange:p=>{a(p.target.value)},id:"name",className:"col-span-7 focus-visible:ring-0 focus-visible:ring-ring focus-visible:ring-offset-0"})]})}),n&&e.jsx("p",{className:"text-sm",children:"The lens name already exists. Use a differnet name."}),e.jsx(t.DialogFooter,{children:e.jsx(t.Button,{size:"sm",variant:"outline",type:"submit",onClick:b,disabled:d,children:d?"Creating...":"Add"})})]})]})}function Ks(){const[s,a]=E.useState(!1),n=t.useDashboardStore(u=>u.lenses),r=t.useDashboardStore(u=>u.selectedLensId),{setLenses:o,setSelectedLensId:l}=t.useDashboardActions(),{authToken:i}=t.useSemaphorContext();async function d(u){l(u)}async function c(u){if(await Js(u,i==null?void 0:i.accessToken)){const v=n==null?void 0:n.filter(m=>m.id!==u);o(v||[]),l("original")}}async function h(u){const x=n==null?void 0:n.map(b=>b.id===u.id?{...b,isDefault:!u.isDefault}:{...b,isDefault:!1});o(x||[]);const v={...u,isDefault:!u.isDefault};await Le(v,i==null?void 0:i.accessToken);const m=n==null?void 0:n.find(b=>b.isDefault);if(m&&m.id!==u.id){const b={...m,isDefault:!1};await Le(b,i==null?void 0:i.accessToken)}}return e.jsxs(t.DropdownMenu,{open:s,onOpenChange:a,children:[e.jsx(t.DropdownMenuTrigger,{asChild:!0,children:e.jsx(t.IconButton,{tooltip:"Lenses",className:"h-7 p-2",children:e.jsx(ws,{className:"h-4 w-4"})})}),e.jsxs(t.DropdownMenuContent,{align:"end",className:"w-60",children:[e.jsx(t.DropdownMenuLabel,{className:"px-3",children:"Lenses"}),e.jsx(t.DropdownMenuSeparator,{}),e.jsxs(t.DropdownMenuRadioGroup,{value:r,onValueChange:d,children:[e.jsx(t.DropdownMenuRadioItem,{value:"original",children:"Original"}),n==null?void 0:n.map(u=>e.jsxs(t.DropdownMenuRadioItem,{className:"group flex justify-between gap-2",value:u.id,children:[e.jsx("p",{children:u.name}),e.jsxs("span",{className:"flex items-center gap-3",children:[e.jsx(Is,{onClick:x=>{x.preventDefault(),h(u)},className:t.cn("size-3.5 text-muted-foreground hover:cursor-pointer hover:text-foreground group-hover:visible",{invisible:!u.isDefault,"text-green-500":u.isDefault}),strokeWidth:1.5}),e.jsx(t.Cross2Icon,{onClick:x=>{x.preventDefault(),c(u.id)},className:"invisible size-3.5 text-muted-foreground hover:cursor-pointer hover:text-foreground group-hover:visible",strokeWidth:1.5})]})]},u.id))]})]})]})}function ft(){var l;const s=t.useDashboardStore.getState().authToken,a=t.useDashboardStore.getState().theme,n=t.useDashboardStore.getState().filterValues,r=(l=t.useDashboardStore.getState().dashboard)==null?void 0:l.title,o=t.useDashboardStore.getState().selectedSheetId;return{authToken:s,theme:a||"light",filterValues:n,dashboardTitle:r||"",selectedSheetId:o||""}}async function gt(){const s=t.useDashboardStore.getState().isDownloadingPdf,{authToken:a,theme:n,filterValues:r,dashboardTitle:o,selectedSheetId:l}=ft();if(s)return;const i=new URLSearchParams;i.set("token",(a==null?void 0:a.accessToken)||""),i.set("theme",n),i.set("filterValues",JSON.stringify(r)),i.set("selectedSheetId",l||"");const d=`https://semaphor.cloud/api/v1/generate-pdf?params=${encodeURIComponent(i.toString())}`;t.useDashboardStore.setState({isDownloadingPdf:!0});const u=(await(await fetch(d,{method:"GET",headers:{Authorization:`Bearer ${a==null?void 0:a.accessToken}`}})).json()).url,x=document.createElement("a");x.href=u;const v=`${o}-${new Date().toISOString()}.pdf`;x.download=v,x.click(),t.useDashboardStore.setState({isDownloadingPdf:!1})}function Ys({iconClassName:s}){const{authToken:a}=t.useSemaphorContext();t.useDashboardStore(o=>{var l;return(l=o.dashboard)==null?void 0:l.title}),t.useDashboardStore(o=>o.theme),t.useDashboardStore(o=>o.filterValues);const n=t.useDashboardStore(o=>o.isDownloadingPdf);async function r(){await gt()}return e.jsx(t.IconButton,{tooltip:"Download PDF",className:"h-7 p-2",onClick:r,children:n?e.jsx(oe,{className:t.cn("size-3.5 animate-spin",s)}):e.jsx(t.Download,{className:t.cn("size-4",s)})})}function X({defaultValue:s,label:a,options:n,value:r,onValueChange:o,className:l,icon:i,showPlaceholderLabel:d=!0}){return e.jsxs(t.Select,{defaultValue:s,value:r,onValueChange:o,children:[e.jsx(t.SelectTrigger,{className:t.cn("w-full focus:ring-0 focus:ring-offset-0",l),children:e.jsxs("div",{className:"flex items-center gap-2",children:[i&&e.jsx("span",{children:i}),d&&e.jsx(t.SelectValue,{placeholder:a})]})}),e.jsx(t.SelectContent,{children:e.jsxs(t.SelectGroup,{children:[e.jsx(t.SelectLabel,{children:a}),n.map(c=>e.jsx(t.SelectItem,{value:c.value,children:c.label},c.value))]})})]})}const Je=[{value:"daily",label:"Daily"},{value:"weekly",label:"Weekly"},{value:"biweekly",label:"Bi-Weekly"},{value:"monthly",label:"Monthly"}];function jt({triggerButtonClassName:s}){const{data:a,handleScheduleSubscription:n,handleDeleteSubscription:r,status:o,error:l,isDeleting:i}=Zs(),[d,c]=E.useState(""),[h,u]=E.useState(Je[0].value),[x,v]=E.useState("06:00"),[m,b]=E.useState("");return e.jsx(t.TooltipProvider,{delayDuration:0,children:e.jsxs(t.Popover,{children:[e.jsx(t.PopoverTrigger,{asChild:!0,children:e.jsx(t.IconButton,{tooltip:"Schedule Dashboard",className:t.cn("h-7 p-2",s),children:e.jsx(xs,{className:"size-4"})})}),e.jsx(t.PopoverContent,{align:"end",className:"w-80",children:e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-medium leading-none",children:"Schedule Subscription"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Subscribe to receive dashboard via email"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs("div",{className:"grid grid-cols-3 items-center gap-4",children:[e.jsx(t.Label,{htmlFor:"email",children:"Email"}),e.jsx(t.Input,{id:"email",value:d,onChange:p=>c(p.target.value),className:`col-span-2 h-8 ${t.removeRing}`})]}),e.jsxs("div",{className:"grid grid-cols-3 items-center gap-4",children:[e.jsx(t.Label,{htmlFor:"subject",children:"Subject"}),e.jsx(t.Input,{id:"subject",placeholder:"Monthly Sales Report",value:m,onChange:p=>{b(p.target.value.replace(/[^a-zA-Z0-9\s-_]/g,""))},className:`col-span-2 h-8 ${t.removeRing}`})]}),e.jsxs("div",{className:"grid grid-cols-3 items-center gap-4",children:[e.jsx(t.Label,{htmlFor:"frequency",children:"Frequency"}),e.jsx(X,{className:"col-span-2 h-8",label:"Select Frequency",options:Je,value:h,onValueChange:p=>u(p)})]}),e.jsxs("div",{className:"grid grid-cols-3 items-center gap-4",children:[e.jsx(t.Label,{htmlFor:"time",children:"Time"}),e.jsx(t.Input,{id:"time",type:"time",value:x,onChange:p=>v(p.target.value),className:`col-span-2 h-8 ${t.removeRing}`})]}),e.jsx("div",{className:"mt-2 flex justify-end",children:e.jsxs(t.Button,{onClick:async()=>{await n({email:d,frequency:h,time:x,subject:m}),v("00:00"),c(""),b("")},className:"h-8 p-2",disabled:o==="loading"||!d,children:[o==="loading"&&e.jsx(oe,{className:"mr-2 size-4 animate-spin"}),o==="success"&&e.jsx(t.Check,{className:"mr-2 size-4"}),o==="error"&&e.jsxs(t.Tooltip,{children:[e.jsx(t.TooltipTrigger,{children:e.jsx(at,{className:"mr-2 size-4 text-destructive"})}),e.jsx(t.TooltipContent,{children:e.jsx("p",{children:l})})]}),"Schedule"]})}),a&&a.length>0&&e.jsxs("div",{className:"space-y-4",children:[e.jsx(t.Separator,{className:"my-2"}),e.jsx("div",{className:"space-y-2",children:e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-medium leading-none",children:"Subscriptions"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Active email subscriptions"})]}),t.isDevEnv]})}),e.jsx("div",{className:"grid gap-2",children:a==null?void 0:a.map(p=>e.jsxs("div",{className:"group grid grid-cols-5 gap-3",children:[e.jsx("div",{className:"col-span-3 text-sm",children:e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"boder-border rounded-md border bg-muted px-2 py-1",children:[t.titleCase(p.frequency)," "]}),e.jsx(t.Label,{children:p.time})]})}),e.jsxs("div",{className:"col-span-2 flex items-center justify-end gap-4",children:[e.jsx(We,{tooltip:`Next Run: ${new Date(p.nextRun).toLocaleString()} ${p.timezone}`,children:e.jsx(hs,{className:"size-3.5"})}),e.jsx(We,{tooltip:`${p.endUserEmail}`,children:e.jsx(Os,{className:"size-3.5"})}),i===p.id?e.jsx(oe,{className:"size-3.5 animate-spin"}):e.jsx(t.Trash2,{onClick:()=>r(p.id),className:"size-3.5 cursor-pointer"})]})]},p.id))})]})]})]})})]})})}const We=({children:s,tooltip:a})=>e.jsx(t.TooltipProvider,{delayDuration:0,children:e.jsxs(t.Tooltip,{children:[e.jsx(t.TooltipTrigger,{asChild:!0,children:s}),e.jsx(t.TooltipContent,{children:a})]})});function Zs(){const[s,a]=E.useState("idle"),[n,r]=E.useState(""),[o,l]=E.useState(null),i=t.useDashboardStore(S=>S.authToken),d=t.useDashboardStore(S=>S.dashboard.id),c=t.useDashboardStore(S=>S.dashboard.title),{endUserId:h}=t.getTenantAndEndUserId((i==null?void 0:i.accessToken)||""),u="https://semaphor.cloud/api/v1/subscriptions/get",x={dashboardId:d,endUserId:h},{data:v,isLoading:m,isError:b,isFetching:p,refetch:f}=t.useQuery({queryKey:["subscriptions",d,h],queryFn:()=>t.getRequest(u,(i==null?void 0:i.accessToken)||"",x),enabled:!!(i!=null&&i.accessToken)&&!!d&&!!h});async function g({email:S,subject:A,frequency:k,time:T}){const{authToken:L,...F}=ft(),G=Intl.DateTimeFormat().resolvedOptions().timeZone,w={email:S,frequency:k,time:T,timezone:G,endUserId:h,endUserEmail:S,subject:A||c||"Scheduled Dashboard",dashboardId:d,dashboardParams:F};a("loading");const R="https://semaphor.cloud/api/v1/subscriptions/create";try{const U=await t.postRequestRegular(R,(L==null?void 0:L.accessToken)||"",{...w});a("success"),r(""),f(),setTimeout(()=>{a("idle")},2e3)}catch(U){console.error(U),a("error"),r(U.message)}}async function N(S){const A="https://semaphor.cloud/api/v1/subscriptions/delete";l(S);try{await t.postRequestRegular(A,(i==null?void 0:i.accessToken)||"",{id:S}),f(),setTimeout(()=>{l(null)},2e3)}catch(k){console.error(k),l(null),a("error"),r(k.message)}}return{data:v,isLoading:m,isFetching:p,isError:b,isDeleting:o,refetch:f,handleScheduleSubscription:g,handleDeleteSubscription:N,status:s,error:n}}function Xs(){const{authToken:s}=t.useSemaphorContext();t.useDashboardStore(w=>w.theme);const a=t.useDashboardStore(w=>w.lenses),n=t.useDashboardStore(w=>w.selectedLensId),r=a==null?void 0:a.find(w=>w.id===n),o=t.useDashboardStore(w=>w.dashboard);t.useDashboardStore(w=>w.selectedSheetId);const l=t.useDashboardStore(w=>w.isDashboardEditing),i=t.useEditorStore(w=>w.selectedConnectionId),[d,c]=E.useState(!1),h=t.useDashboardStore(w=>w.filterValues),u=t.useDashboardStore(w=>w.isVisualEditing),x=t.useDashboardStore(w=>w.showFilters);t.useDashboardStore(w=>w.showDashboardJSON);const v=t.useDashboardStore(w=>w.onSaveFunction),m=t.useDashboardStore(w=>w.actions.setShowFilters),{addFrame:b,setSelectedFrameId:p}=t.useDashboardStore(w=>w.actions),{getSelectedSheet:f,setIsDashboardEditing:g,setShowDashboardJSON:N}=t.useDashboardStore(w=>w.actions),S=f(),{tenantId:A,endUserId:k}=E.useMemo(()=>t.getTenantAndEndUserId(s==null?void 0:s.accessToken),[s==null?void 0:s.accessToken]),T=E.useMemo(()=>A||k,[A,k]),L=()=>{if(!l||!S)return;const w={connectionId:i,id:t.v4(),title:"Title",preferences:{onClickFilter:[{columnIndex:0,expression:""}]},type:"bar",sql:"",data:[]},R={id:t.v4(),cards:[w],activeCardId:w.id};b(S.id,R),p(R.id)},F=()=>{g(!0)};async function G(){if(c(!0),!n||!r)return;const w=_e(o),R=JSON.stringify(w),U={...r,template:R,filterValues:h};await Le(U,s==null?void 0:s.accessToken),t.ue.success("Lens saved"),v==null||v(w),c(!1)}return u?null:e.jsxs("div",{className:"flex items-center justify-between gap-2 border-b py-1 pl-3 pr-2",role:"dashboard-controls",children:[!u&&e.jsx("div",{className:"flex items-center gap-3",children:e.jsx(t.Label,{children:r==null?void 0:r.name})}),e.jsxs("div",{className:"flex gap-2",children:[!1,!u&&e.jsx(Ys,{}),!u&&e.jsx(jt,{}),l&&!u&&T&&e.jsx(Ws,{}),!u&&T&&e.jsx(Ks,{}),l&&!u&&e.jsxs(t.Button,{variant:"secondary",className:"h-7 p-2",size:"sm",disabled:!l,onClick:L,children:[e.jsx(t.Plus,{className:"mr-2 h-4 w-4"}),"Frame"]}),!l&&e.jsx(t.Button,{variant:"ghost",className:"h-7 p-2",onClick:F,size:"sm",children:e.jsx(t.Pencil,{className:"h-4 w-4"})}),l&&!u&&e.jsx(t.IconButton,{className:"h-7 p-2",onClick:()=>{g(!1),N(!1)},children:e.jsx(t.Cross2Icon,{className:"h-4 w-4"})}),l&&!u&&T&&e.jsx(t.Button,{className:"h-7 p-2",variant:"ghost",disabled:d,onClick:G,size:"sm",children:e.jsx(_s,{className:"h-4 w-4"})}),!x&&!u&&l&&e.jsx(t.Button,{className:"h-7 p-2",variant:"ghost",onClick:()=>m(!0),size:"sm",children:e.jsx(it,{className:"h-4 w-4"})}),!u&&l&&!1,!u&&!1]})]})}function en({name:s,items:a,value:n,onChange:r,isLoading:o,isError:l,refetch:i,className:d,icon:c,showNone:h=!1}){const u=de.useRef(null),[x,v]=de.useState(!1),[m,b]=de.useState("100%"),p=h?[...a||[],{id:"none",name:"None"}]:a;de.useLayoutEffect(()=>{u.current&&b(u.current.offsetWidth)},[]);function f(){var N;return o?"Loading...":l?"Error":n?(N=a==null?void 0:a.find(S=>S.id===n))==null?void 0:N.name:`Select ${s}`}function g(N,S){r(S),v(!1)}return e.jsxs(t.Popover,{open:x,onOpenChange:v,children:[e.jsx(t.PopoverTrigger,{asChild:!0,children:e.jsxs(t.Button,{ref:u,variant:"outline",role:"combobox","aria-expanded":x,className:t.cn("flex h-9 w-full justify-between",d),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[c&&e.jsx("div",{className:"mr-2",children:c}),e.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:f()})]}),e.jsx(t.ChevronDown,{className:"size-4 opacity-50"})]})}),e.jsx(t.PopoverContent,{className:"w-full p-0",style:{minWidth:m},children:e.jsxs(t.Command,{children:[e.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[e.jsx(t.CommandInput,{className:"h-9",placeholder:"Search..."}),e.jsx(t.IconButton,{className:"h-7",onClick:i,children:e.jsx(ut,{className:t.cn("size-3.5 opacity-50",o&&"animate-spin")})})]}),e.jsxs(t.CommandList,{children:[e.jsxs(t.CommandEmpty,{children:["No ",s==null?void 0:s.toLowerCase()," found."]}),e.jsx(t.CommandGroup,{children:p==null?void 0:p.map(N=>e.jsx(t.CommandItem,{className:"overflow-x-auto",value:N.name,onSelect:S=>g(S,N.id),children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(t.Check,{className:t.cn("size-4",n===N.id?"opacity-100":"opacity-0")}),e.jsx("div",{title:N.name,children:N.name})]})},N.id))})]})]})})]})}function ce({title:s,items:a,value:n,isLoading:r,isError:o,refetch:l,onChange:i,showNone:d=!1,className:c,disabled:h=!1,type:u="combobox"}){const x=r?"Loading...":o?"Error":n;function v(){if(s==="Connection")return e.jsx(Bs,{className:"size-4"});if(s==="Database")return e.jsx(js,{className:"size-4"});if(s==="Schema")return e.jsx(Rs,{className:"size-4"});if(s==="Table")return e.jsx(Ve,{className:"size-4"});if(s==="Model")return e.jsx(ds,{className:"size-4"})}function m(){return e.jsxs(t.Select,{disabled:h,value:x,onValueChange:i,children:[e.jsx(t.SelectTrigger,{className:t.cn("h-9 w-full border-muted focus:ring-1 focus:ring-offset-0",c),children:e.jsx(t.SelectValue,{placeholder:r?"Loading...":o?"Error":`Select ${s}`})}),e.jsx(t.SelectContent,{children:e.jsxs(t.SelectGroup,{children:[r?e.jsx(t.SelectLabel,{children:"Loading..."}):e.jsxs(t.SelectLabel,{className:"flex items-center justify-between gap-2",children:[s,e.jsx(ut,{className:t.cn("mr-1 size-3 cursor-pointer text-muted-foreground hover:text-foreground",r&&"animate-spin"),onClick:l})]}),e.jsxs(e.Fragment,{children:[d&&e.jsx(t.SelectItem,{value:"none",children:"None"},"none"),a&&a.map((p,f)=>e.jsx(t.SelectItem,{value:p.id,children:p.name},f))]}),(r||o)&&e.jsx(t.SelectItem,{value:x,children:x})]})})]})}function b(){return e.jsx(en,{icon:v(),items:a,value:x,onChange:i||(()=>{}),isLoading:r,isError:o,refetch:l,name:s,showNone:d})}return e.jsx(t.TooltipProvider$1,{delayDuration:0,children:e.jsx("div",{className:"flex items-center gap-2",children:u==="select"?m():b()})})}function tn({column:s}){const[a,n]=E.useState(!1),r=t.useEditorStore(p=>p.selectedTableName),o=t.useEditorStore(p=>p.selectedSchemaName),l=t.useEditorStore(p=>p.selectedDatabaseName),i=t.useEditorStore(p=>p.selectedDatamodelId),d=t.useEditorStore(p=>p.sqlGen),{modelItems:c,connectionType:h}=t.useEditorAside(),u=t.useEditorStore(p=>p.actions.setSqlGen),x=t.useEditorStore(p=>p.actions.setCardSql),v=t.useEditorStore(p=>p.actions.setRunSql);function m(p,f){var A;const g=t.createSqlGenConfig(p,d,f),N=(A=c==null?void 0:c.find(k=>k.id===i))==null?void 0:A.name;u(g);const S=t.getSql(g,t.fmt(o||""),t.fmt(r),N||"",h,l||"");S&&(x(S),v(!0)),n(!1)}function b(){return e.jsxs("ul",{className:"text-xs",children:[e.jsx("li",{onClick:()=>m(s,"COUNT"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Count"}),e.jsx("li",{onClick:()=>m(s,"AVG"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Avg"}),e.jsx("li",{onClick:()=>m(s,"SUM"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Sum"}),e.jsx("li",{onClick:()=>m(s,"MAX"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Max"}),e.jsx("li",{onClick:()=>m(s,"MIN"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Min"})]})}return e.jsxs(t.HoverCard,{openDelay:0,open:a,onOpenChange:n,children:[e.jsx(t.HoverCardTrigger,{asChild:!0,children:e.jsx(t.EllipsisVertical,{className:"invisible size-3.5 cursor-pointer text-foreground/40 group-hover:visible"})}),e.jsx(t.HoverCardContent,{align:"center",className:"w-20 rounded-md p-0 shadow-none",children:b()})]})}function qe({column:s}){return e.jsxs(t.Tooltip,{children:[e.jsx(t.TooltipTrigger$1,{className:"shrink-0",asChild:!0,children:t.isTextDataType(s.data_type)?e.jsx(t.TextIcon,{className:"size-3 text-muted-foreground"}):t.isNumberDataType(s.data_type)?e.jsx(lt,{className:"size-3 text-muted-foreground"}):t.isDateDataType(s.data_type)?e.jsx(t.Calendar,{className:"size-3 text-muted-foreground"}):t.isBooleanDataType(s.data_type)?e.jsx(Gs,{className:"size-3 text-muted-foreground"}):s.data_type.startsWith("json")?e.jsx(us,{className:"size-3 text-muted-foreground"}):e.jsx(t.QuestionMarkIcon,{className:"size-3 text-muted-foreground"})}),e.jsx(t.TooltipContent,{children:e.jsx("p",{className:"text-xs",children:s.data_type})})]})}function we({column:s,className:a}){return e.jsxs("div",{className:t.cn("flex min-h-8 grow items-center space-x-2 px-2 text-sm",a),children:[e.jsx(qe,{column:s}),e.jsx("span",{children:s.column_name})]})}function sn({id:s,children:a,type:n="column"}){const{attributes:r,listeners:o,setNodeRef:l,transform:i}=t.useDraggable({id:s,data:{type:n}}),d=i?{translate:t.CSS.Translate.toString(i),transform:t.CSS.Transform.toString(i)}:void 0;return e.jsx("div",{ref:l,style:d,...o,...r,children:a})}function nn({onClick:s,column:a}){const n=t.useDndStore(u=>u.activeId),r=t.useEditorStore(u=>{var x;return(x=u.card.queryConfig)==null?void 0:x.groupByColumns}),o=t.useEditorStore(u=>{var x;return(x=u.card.queryConfig)==null?void 0:x.metricColumns}),l=t.useEditorStore(u=>{var x;return(x=u.card.queryConfig)==null?void 0:x.filterColumns});function i(u){return d(u)||c(u)||h(u)}function d(u){return r==null?void 0:r.some(x=>x.name===u.column_name)}function c(u){return o==null?void 0:o.some(x=>x.name===u.column_name)}function h(u){return l==null?void 0:l.some(x=>x.name===u.column_name)}return e.jsxs("div",{onClick:()=>s(a),className:t.cn("relative grow overflow-x-hidden overflow-y-hidden rounded-md active:border active:border-dashed active:border-muted-foreground",{"bg-muted-foreground/10":i(a)}),children:[n===a.column_name&&e.jsx(t.DragOverlay,{children:e.jsx(we,{column:a,className:"rounded-md border-2 border-dashed border-muted-foreground bg-muted shadow-md"})}),n===a.column_name&&e.jsx("div",{className:"absolute inset-0",children:n===a.column_name&&e.jsx(we,{column:a})}),e.jsx(sn,{id:a.column_name,type:"column",children:e.jsx(we,{column:a})})]})}const ke={id:"__placeholder__",role:"groupby",type:"string"},De={id:"__placeholder__",role:"groupby",type:"string"},Ie={id:"__placeholder__",role:"metric",type:"number"},Ee={name:"Filter",id:"__placeholder__",role:"filter",type:"string"},yt={id:"__placeholder__"},ne="droppable-group-by",ae="droppable-metrics",re="droppable-pivot-by",be="sortable-group-by",Oe="sortable-metrics",ve="sortable-pivot-by",ze="droppable-filters",Fe="sortable-filters",Pe="sortable-order-by";function an(){const s=t.useDndStore(D=>D.insertIndex),a=t.useEditorStore(D=>{var j;return((j=D.card.queryConfig)==null?void 0:j.groupByColumns)||[]}),n=t.useEditorStore(D=>{var j;return((j=D.card.queryConfig)==null?void 0:j.metricColumns)||[]}),r=t.useEditorStore(D=>{var j;return((j=D.card.queryConfig)==null?void 0:j.filterColumns)||[]}),o=t.useEditorStore(D=>{var j;return((j=D.card.queryConfig)==null?void 0:j.orderBy)||[]}),l=t.useEditorStore(D=>{var j;return((j=D.card.queryConfig)==null?void 0:j.pivotColumns)||[]}),{setInsertIndex:i,setActiveId:d,setPreviewGroupByColumns:c,setPreviewMetricColumns:h,setPreviewFilterColumns:u,setPreviewPivotColumns:x}=t.useDndActions(),{setGroupByColumns:v,setMetricColumns:m,setFilterColumns:b,setOrderByColumns:p,setPivotByColumns:f}=t.useEditorActions(),{columns:g}=t.useDataColumns(),{formattedTableName:N}=t.useEditorAside(),S=t.useSensors(t.useSensor(t.MouseSensor,{activationConstraint:{distance:1}})),A=D=>{var V;const{active:j,over:M}=D;if(((V=j.data.current)==null?void 0:V.type)==="column"&&M){const _=M.id,H=g.find(I=>I.column_name===j.id);if(!H)return;const Q=t.isNumberDataType(H.data_type),y=t.isTextDataType(H.data_type),C=t.isDateDataType(H.data_type);if(y||C){if(a.some(B=>B.id===_)){const B=a.findIndex(z=>z.id===_);i(B);const $=a.filter(z=>z.id!==ke.id);$.splice(B,0,ke),c($)}else if(M.id===ne){i(a.length);const B=[...a,ke];c(B),h(n),u(r)}}if(y||C){if(l.some(B=>B.id===_)){const B=l.findIndex(z=>z.id===_);i(B);const $=l.filter(z=>z.id!==De.id);$.splice(B,0,De),x($)}else if(M.id===re){i(l.length);const B=[...l,De];x(B),c(a),h(n),u(r)}}if(Q||y){if(n.some(B=>B.id===_)){console.log("isOverMetricSortable",_);const B=n.findIndex(z=>z.id===_);i(B);const $=n.filter(z=>z.id!==Ie.id);$.splice(B,0,Ie),h($)}else if(M.id===ae){i(n.length);const B=[...n,Ie];h(B),u(r),c(a),x(l)}}if(T(H)){if(r.some(B=>B.id===_)){const B=r.findIndex(z=>z.id===_);i(B);const $=r.filter(z=>z.id!==Ee.id);$.splice(B,0,Ee),u($)}else if(M.id===ze){i(r.length);const B=[...r,Ee];u(B),h(n),c(a),x(l)}}}else c(a),h(n),u(r),x(l)};function k(D){d(D.active.id),i(null),c(a),h(n),u(r),x(l)}function T(D){return!r.some(j=>j.name===D.column_name)}function L(D,j="SUM"){const{column_name:M,data_type:V}=D,_=[...n],H=s!==null?s:n.length,Q={...D,id:ee(M),name:M,label:xe(M,j),type:V,role:"metric",aggregate:j};_.splice(H,0,Q),m(_)}function F(D){const j=t.isTextDataType(D.data_type);t.isDateDataType(D.data_type);const M=[...l],V=s!==null?s:l.length;let _;j?_={...D,id:ee(D.column_name),name:D.column_name,type:D.data_type,role:"groupby"}:_={...D,id:ee(D.column_name),name:D.column_name,type:D.data_type,role:"groupby",label:ue(D.column_name,"month"),granularity:"month"},M.splice(V,0,_),f(M)}function G(D){const j=t.isTextDataType(D.data_type);t.isDateDataType(D.data_type);const M=[...a],V=s!==null?s:a.length;let _;j?_={...D,id:ee(D.column_name),name:D.column_name,type:D.data_type,role:"groupby"}:_={...D,id:ee(D.column_name),name:D.column_name,type:D.data_type,role:"groupby",label:ue(D.column_name,"month"),granularity:"month"},M.splice(V,0,_),v(M)}function w(D){const j=[...r],M=s!==null?s:r.length,V={...D,id:ee(D.column_name),name:D.column_name,type:D.data_type,sql:t.getDefaultFilterSql(D.data_type,N,t.fmt(D.column_name)),role:"filter"};j.splice(M,0,V),b(j)}function R(D){var _,H,Q,y,C,I,B,$;const{active:j,over:M}=D,V=j.data.current;if((V==null?void 0:V.type)==="column"&&M){const z=g.find(O=>O.column_name===j.id);if(!z)return;const W=t.isNumberDataType(z.data_type),P=t.isTextDataType(z.data_type),Y=t.isDateDataType(z.data_type);(P||Y)&&(M.id===ne||((_=M.data.current)==null?void 0:_.type)===be)&&G(z),(P||Y)&&(M.id===re||((H=M.data.current)==null?void 0:H.type)===ve)?F(z):(W||P)&&(M.id===ae||((Q=M.data.current)==null?void 0:Q.type)===Oe)?(W&&L(z),P&&L(z,"COUNT")):T(z)&&(M.id===ze||((y=M.data.current)==null?void 0:y.type)===Fe)&&w(z)}if(M&&((C=M.data.current)==null?void 0:C.type)===be&&a.some(z=>z.id===j.id)){const z=a.findIndex(P=>P.id===j.id),W=a.findIndex(P=>P.id===M.id);if(z!==-1&&W!==-1&&z!==W){const P=[...a],[Y]=P.splice(z,1);P.splice(W,0,Y),v(P)}}if(M&&((I=M.data.current)==null?void 0:I.type)===ve&&l.some(z=>z.id===j.id)){const z=l.findIndex(P=>P.id===j.id),W=l.findIndex(P=>P.id===M.id);if(z!==-1&&W!==-1&&z!==W){const P=[...l],[Y]=P.splice(z,1);P.splice(W,0,Y),f(P)}}if(M&&((B=M.data.current)==null?void 0:B.type)===Oe&&n.some(z=>z.id===j.id)){const z=n.findIndex(P=>P.id===j.id),W=n.findIndex(P=>P.id===M.id);if(z!==-1&&W!==-1&&z!==W){const P=[...n],[Y]=P.splice(z,1);P.splice(W,0,Y),m(P)}}if(M&&(($=M.data.current)==null?void 0:$.type)===Fe&&r.some(z=>z.id===j.id)){const z=r.findIndex(P=>P.id===j.id),W=r.findIndex(P=>P.id===M.id);if(z!==-1&&W!==-1&&z!==W){const P=[...r],[Y]=P.splice(z,1);P.splice(W,0,Y),b(P)}}U(D),d(null),i(null),c(a),h(n),u(r),x(l)}function U(D){const{active:j,over:M}=D,V=j.data.current;if((V==null?void 0:V.type)===Pe&&M){const _=o.findIndex(Q=>he(Q.columnId)===j.id),H=o.findIndex(Q=>he(Q.columnId)===M.id);if(_!==-1&&H!==-1&&_!==H){const Q=[...o],[y]=Q.splice(_,1);Q.splice(H,0,y),p(Q)}}}function q(){d(null),i(null),c(a),h(n),u(r)}return{handleDragOver:A,handleDragEnd:R,handleDragStart:k,handleDragCancel:q,sensors:S}}function ee(s){return`${s}-${t.v4()}`}function xe(s,a){const n=t.toTitleCase(s.replace(/_/g," "));switch(a){case"SUM":return`Sum of ${n}`;case"COUNT":return`Count of ${n}`;case"DISTINCT":return`Unique ${n}`;case"AVG":return`Average of ${n}`;case"MIN":return`Min of ${n}`;case"MAX":return`Max of ${n}`;default:return n}}function he(s){return`${Pe}-${s}`}function ue(s,a){const n=t.toTitleCase(s.replace(/_/g," "));switch(a){case"day":return`Date of ${n}`;case"week":return`Week of ${n}`;case"month":return`Month of ${n}`;case"year":return`Year of ${n}`;default:return n}}function rn({schemaName:s,tableName:a,columns:n,status:r}){const o=t.useEditorStore(j=>j.sqlGen),l=t.useEditorStore(j=>j.isDevMode),i=t.useEditorStore(j=>j.selectedConnectionId),d=t.useEditorStore(j=>{var M,V;return(V=(M=j.card)==null?void 0:M.queryConfig)==null?void 0:V.metricColumns});t.useEditorStore(j=>{var M,V;return(V=(M=j.card)==null?void 0:M.queryConfig)==null?void 0:V.groupByColumns});const c=t.useEditorStore(j=>j.selectedDatabaseName),h=t.useEditorStore(j=>j.selectedSchemaName),u=t.useEditorStore(j=>j.selectedTableName),x=t.useEditorStore(j=>j.selectedDatamodelId),v=t.useDashboardStore(j=>j.dashboard.aiScopeTables),{addToAIScope:m,removeFromAIScope:b}=t.useDashboardActions(),{addColumnToMetricColumns:p,addColumnToGroupBy:f,setCardSql:g,setRunSql:N,setSqlGen:S,setIsShowingVisual:A}=t.useEditorActions(),{connectionType:k,modelItems:T,selectedDatamodelName:L}=t.useEditorAside();function F(j){var M;if(l){const V=t.createSqlGenConfig(j,o);S(V);const _=(M=T==null?void 0:T.find(Q=>Q.id===x))==null?void 0:M.name,H=t.getSql(V,t.fmt(s),t.fmt(a),_||"",k,c||"");H&&(g(H),N(!0))}if(!l){if(t.isTextDataType(j.data_type))if(d&&d.length>0){const V={...j,role:"groupby",id:ee(j.column_name),name:j.column_name,type:j.data_type};f(V)}else{const V={...j,role:"metric",id:ee(j.column_name),name:j.column_name,label:xe(j.column_name,"COUNT"),type:j.data_type,aggregate:"COUNT"};p(V)}if(t.isDateDataType(j.data_type)){const V={...j,role:"groupby",id:ee(j.column_name),name:j.column_name,type:j.data_type,label:ue(j.column_name,"month"),granularity:"month"};f(V)}if(t.isNumberDataType(j.data_type)){const V={...j,role:"metric",id:ee(j.column_name),name:j.column_name,label:xe(j.column_name,"SUM"),type:j.data_type,aggregate:"SUM"};p(V)}}}function G(j){j===!0&&(u||L)&&i?(m({connectionId:i,connectionType:k==="S3"||k==="API"?"DuckDb":k,databaseName:c||"",schemaName:h||"",tableName:u||"",datamodelName:t.resolveDatamodelName(L),datamodelId:x||""}),t.ue.success("Added to Assistant Scope",{position:"top-right",duration:2500,richColors:!0})):(b({connectionId:i||"",connectionType:k||"",tableName:u||"",datamodelName:t.resolveDatamodelName(L),datamodelId:x||"",databaseName:c||"",schemaName:h||""}),t.ue("Removed from Assistant Scope",{position:"top-right",duration:2e3,richColors:!0}))}function w(){const j=t.getFormattedTableNameForQuery({schemaName:s,tableName:a,modelName:L,connectionType:k,databaseName:c||""});A(!1);const M=k==="MSSQL"?`SELECT top 10 * FROM ${j}`:`SELECT * FROM ${j} LIMIT 10`;g(M),N(!0)}function R(){const j=t.getFormattedTableNameForQuery({schemaName:s,tableName:a,modelName:L,connectionType:k,databaseName:c||""});g(`SELECT COUNT(*) as count FROM ${j}`),N(!0)}function U(){return(v==null?void 0:v.find(j=>j.connectionId===i&&(j.tableName===u||j.datamodelName===L)))!==void 0}function q(j){return l?e.jsxs("div",{className:"flex grow items-center justify-between space-x-2 rounded-md px-2 py-1",onClick:()=>F(j),children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(qe,{column:j}),e.jsx("span",{children:j.column_name})]}),e.jsx("div",{onClick:M=>M.stopPropagation(),className:"flex items-center justify-end",children:t.isNumberDataType(j.data_type)&&e.jsx(tn,{column:j})})]}):e.jsx(nn,{onClick:F,column:j})}function D(){return e.jsxs(e.Fragment,{children:[e.jsxs(t.Toggle,{title:`${U()?"Remove from":"Add to"} Assistant Scope`,pressed:U(),onPressedChange:G,variant:"outline",className:t.cn("h-9 px-2",{}),children:[e.jsx(t.Plus,{className:t.cn("mr-1 size-4",{"text-green-400":U(),"text-muted-foreground":!U()})}),"AI"]}),e.jsxs(t.Button,{disabled:r!=="Success",onClick:w,size:"sm",variant:"secondary",className:"flex",children:[r!=="Success"?e.jsx(oe,{className:"mr-2 h-4 w-4 animate-spin text-foreground/50"}):e.jsx(Ls,{className:"mr-2 size-4"}),"Top 10"]}),e.jsxs(t.Button,{disabled:r!=="Success",onClick:R,size:"sm",variant:"secondary",className:"w-full",children:[r!=="Success"?e.jsx(oe,{className:"mr-2 h-4 w-4 animate-spin text-foreground/50"}):e.jsx(ht,{className:"mr-2 size-4"}),"Count"]})]})}return r!=="Success"?e.jsx("div",{className:"flex grow flex-col justify-start gap-2 px-6",children:Array.from({length:3}).map((j,M)=>e.jsx(t.Skeleton,{className:"h-7 w-full"},M))}):e.jsxs("div",{className:"flex grow flex-col space-y-4 px-4",children:[l&&e.jsx("div",{className:"mx-2 flex items-center justify-center gap-2",children:D()}),e.jsxs(t.CustomScrollArea,{className:"flex-1 basis-0 overflow-y-auto px-2 py-0",children:[e.jsx("div",{className:"flex flex-col gap-1",children:n==null?void 0:n.map(j=>e.jsx("div",{className:t.cn("mr-2 cursor-pointer rounded-md text-sm transition-colors hover:bg-muted"),children:q(j)},j.column_name))}),e.jsx(t.ScrollBar,{orientation:"vertical"}),e.jsx(t.ScrollBar,{orientation:"horizontal"})]})]})}function bt({ColumnsComponent:s,type:a}){var Ue;const n=t.useEditorStore(K=>K.card),r=t.useEditorStore(K=>K.selectedConnectionId),o=t.useDashboardStore(K=>K.showFilters),l=t.useEditorStore(K=>K.selectedDatamodelId),i=t.useEditorStore(K=>K.selectedDatabaseName),d=t.useEditorStore(K=>K.selectedSchemaName),c=t.useEditorStore(K=>K.selectedTableName),h=t.useEditorStore(K=>K.isDevMode),{setSelectedTableName:u,setIsDevMode:x,setCardSql:v}=t.useEditorActions(),{connectionItems:m,modelItems:b,schemaItems:p,databaseItems:f,tableItems:g,columns:N,isConnectionsLoading:S,isModelsLoading:A,isConnectionsError:k,isModelsError:T,isDatabasesLoadingOrFetching:L,isDatabaseError:F,isSchemaLoadingOrFetching:G,isSchemaError:w,isColumnsError:R,isColumnsLoadingOrFetching:U,isTableLoadingOrFetching:q,isTableError:D,connectionType:j,isNonDbConnection:M,refetchDatabases:V,refetchModels:_,refetchSchemas:H,refetchTables:Q,refetchColumns:y,refetchConnections:C,handleConnectionChange:I,handleDatabaseChange:B,handleSchemaChange:$,handleDatamodelChange:z,handleTableChange:W,tableName:P,schemaName:Y}=t.useEditorAside(),{data:O,refetch:J}=t.useDashboardCardQuery(n);function Z(){return s?s(Y,P,N):e.jsx(rn,{schemaName:Y,tableName:P,columns:N,status:U?"Loading...":R?"Error":"Success"})}function te(){window.location.href="mailto:support@semaphor.cloud?subject=Help&body=I need help with..."}function pe(K){K===!0?O&&(v(O.userSql),setTimeout(()=>{J()},100)):v(""),x(K)}function fe(){if(!r||j==="S3"||j==="API")return null;if(!l||l==="none")return e.jsx(ce,{refetch:V,showNone:!0,onChange:B,isError:F,isLoading:L,items:f,value:i||"",title:"Database",type:"combobox"})}function Ut(){if(r&&!M&&(!i||i==="none")&&(!l||l==="none"))return e.jsxs("div",{className:"grid grid-cols-3",children:[e.jsx("div",{className:"col-span-1 grid place-items-center",children:e.jsx(t.Separator,{})}),e.jsx("div",{className:"col-span-1 grid place-items-center",children:e.jsx(t.Label,{children:"OR"})}),e.jsx("div",{className:"col-span-1 grid place-items-center",children:e.jsx(t.Separator,{})})]})}function $t(){if(!r||j==="S3"||j==="API")return null;if(!i||i==="none")return e.jsx(ce,{refetch:_,showNone:!0,onChange:z,isError:T,isLoading:A,items:b,value:l||"",title:"Model",type:"combobox"})}function Qt(){return!r||j==="S3"||j==="API"||!i||i==="none"?null:e.jsx(ce,{refetch:H,onChange:$,isError:w,isLoading:G,items:p,value:d||"",title:"Schema",type:"combobox"})}function Jt(){function K(){let se=!1;return j==="API"?(se=!1,se):((j==="S3"||r&&i&&i!=="none"&&d)&&(se=!0),se)}return K()?e.jsx(ce,{refetch:Q,onChange:W,isError:D,items:g,isLoading:q,value:c||"",title:"Table",type:"combobox"}):null}return e.jsxs("aside",{className:t.cn("flex h-full min-w-[310px] max-w-[310px] flex-col justify-between rounded-none",{"border-r-[1px]":!o}),children:[e.jsxs("section",{className:"space-y-3 px-6 py-4",children:[e.jsx(ce,{refetch:C,items:m,title:"Connection",value:r||"",onChange:I,isLoading:S,isError:k,type:"combobox",connectionTooltip:((Ue=m==null?void 0:m.find(K=>K.id===r))==null?void 0:Ue.type)||""}),fe(),Ut(),$t(),Qt(),Jt()]}),Z(),e.jsx("div",{className:"flex items-center justify-between gap-2 px-6 py-4",children:a==="main"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(t.Switch,{className:"data-[state=checked]:bg-muted-foreground/80",checked:h,onCheckedChange:pe,id:"dev-mode"}),e.jsx(t.Label,{htmlFor:"dev-mode",children:"Advanced Mode"})]}),e.jsxs(t.Button,{onClick:te,size:"sm",variant:"secondary",className:"group flex items-center gap-2 rounded-full",children:[e.jsx(zs,{className:"size-4"}),e.jsx("span",{className:"hidden group-hover:block",children:"Help"})]})]})})]})}function vt({sql:s,error:a,onClick:n}){const r=t.useEditorStore(c=>c.isDevMode);t.useEditorStore(c=>c.card);const{setIsDevMode:o,setCardSql:l,setRunSql:i}=t.useEditorActions();if(!s&&!a)return null;function d(){o(!r),l(s),setTimeout(()=>{i(!0)},100)}return e.jsxs(t.HoverCard,{openDelay:a?0:500,children:[e.jsx(t.HoverCardTrigger,{asChild:!0,children:e.jsx(t.Button,{variant:"link",className:"h-5 p-0",children:a?e.jsx(at,{className:"h-4 w-4 text-red-500"}):e.jsx(t.Info,{className:"h-4 w-4 text-muted-foreground"})})}),e.jsx(t.HoverCardContent,{align:"start",className:"w-full min-w-fit max-w-[700px]",children:e.jsx("div",{className:"flex justify-between space-x-4",children:e.jsxs("div",{className:"flex grow flex-col space-y-2",children:[e.jsxs(t.ScrollArea,{className:"max-h-[250px] min-h-0 overflow-scroll text-xs leading-relaxed text-foreground/80",children:[a&&a,s&&e.jsxs("div",{className:"flex flex-col space-y-1.5",children:[e.jsx("span",{className:"text-xs font-semibold",children:"Resolved SQL"}),e.jsx("div",{className:"rounded-md",children:e.jsx(t.CodeHighlighter,{code:s,language:"sql"})})]})]}),!r&&e.jsxs(t.Button,{onClick:d,variant:"secondary",size:"sm",children:[e.jsx(Cs,{className:"mr-2 h-4 w-4"}),"View in SQL Editor"]}),a&&n&&e.jsxs(t.Button,{onClick:n,size:"sm",variant:"secondary",children:[e.jsx(Ds,{className:"mr-2 h-4 w-4"}),"Debug with Assistant"]})]})})})]})}var Ct={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Ke=E.createContext&&E.createContext(Ct),on=["attr","size","title"];function ln(s,a){if(s==null)return{};var n=cn(s,a),r,o;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(s);for(o=0;o<l.length;o++)r=l[o],!(a.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(s,r)&&(n[r]=s[r])}return n}function cn(s,a){if(s==null)return{};var n={};for(var r in s)if(Object.prototype.hasOwnProperty.call(s,r)){if(a.indexOf(r)>=0)continue;n[r]=s[r]}return n}function Ce(){return Ce=Object.assign?Object.assign.bind():function(s){for(var a=1;a<arguments.length;a++){var n=arguments[a];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(s[r]=n[r])}return s},Ce.apply(this,arguments)}function Ye(s,a){var n=Object.keys(s);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(s);a&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(s,o).enumerable})),n.push.apply(n,r)}return n}function Se(s){for(var a=1;a<arguments.length;a++){var n=arguments[a]!=null?arguments[a]:{};a%2?Ye(Object(n),!0).forEach(function(r){dn(s,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):Ye(Object(n)).forEach(function(r){Object.defineProperty(s,r,Object.getOwnPropertyDescriptor(n,r))})}return s}function dn(s,a,n){return a=un(a),a in s?Object.defineProperty(s,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):s[a]=n,s}function un(s){var a=mn(s,"string");return typeof a=="symbol"?a:a+""}function mn(s,a){if(typeof s!="object"||!s)return s;var n=s[Symbol.toPrimitive];if(n!==void 0){var r=n.call(s,a);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(s)}function St(s){return s&&s.map((a,n)=>E.createElement(a.tag,Se({key:n},a.attr),St(a.child)))}function ie(s){return a=>E.createElement(hn,Ce({attr:Se({},s.attr)},a),St(s.child))}function hn(s){var a=n=>{var{attr:r,size:o,title:l}=s,i=ln(s,on),d=o||n.size||"1em",c;return n.className&&(c=n.className),s.className&&(c=(c?c+" ":"")+s.className),E.createElement("svg",Ce({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},n.attr,r,i,{className:c,style:Se(Se({color:s.color||n.color},n.style),s.style),height:d,width:d,xmlns:"http://www.w3.org/2000/svg"}),l&&E.createElement("title",null,l),s.children)};return Ke!==void 0?E.createElement(Ke.Consumer,null,n=>a(n)):a(Ct)}function xn(s){return ie({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z"},child:[]}]})(s)}function Nt(s){const{theme:a}=t.useTheme(),n=t.useDashboardStore(p=>p.theme),r=t.useEditorStore(p=>p.frame),o=t.useEditorStore(p=>p.card),l=t.useEditorStore(p=>p.activeTabCardId),i=t.Le(),{refetch:d}=t.useDashboardCardQuery(o),{updateCardTab:c,setRunSql:h}=t.useEditorActions(),u=E.useRef(),x=E.useRef({}),v=r.cards.find(p=>p.id===l),m=E.useCallback(()=>{let p="";return s==="python"&&(p=(v==null?void 0:v.python)||t.PYTHON_DEFAULT_CODE),s==="sql"&&(p=(v==null?void 0:v.sql)||""),p},[s,v]);E.useEffect(()=>{if(l&&o.id&&o.id!==l){if(u.current&&i){const p=u.current.getModel();p&&(x.current[o.id]=p);let f=x.current[l];if(!f){const g=m();f=i.editor.createModel(g,s),x.current[l]=f}u.current.setModel(f)}c(l,o),h(!0)}},[l,o,c,i,h,s,m]),E.useEffect(()=>{if(!i)return;const p=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",f=n==="system"?p:n;i.editor.defineTheme("default",{base:f==="light"?"vs":"vs-dark",inherit:!0,rules:[],colors:{"editor.background":f==="light"?"#ffffff":t.hslStringToHex("240 10% 10%")}}),i.editor.setTheme("default")},[a,n,i]),E.useEffect(()=>{const p=u.current;p&&i&&o&&p.addCommand(i.KeyMod.Shift|i.KeyCode.Enter,function(){return d(),!1})},[i,d,o]);function b(p,f){if(u.current=p,!x.current[o.id]){const g=p.getModel(),N=m();x.current[o.id]=g||(f==null?void 0:f.editor.createModel(N,s))||p.getModel()}p.setModel(x.current[o.id])}return{handleEditorDidMount:b}}function pn(){const s=t.useEditorStore(i=>i.card.sql),a=t.useEditorStore(i=>i.sqlGen),{setCardSql:n,setSqlGen:r}=t.useEditorActions(),{handleEditorDidMount:o}=Nt("sql");function l(i){n(i),t.isObjectEmpty(a)||r({})}return e.jsxs("div",{className:"relative h-full w-full",children:[!s&&e.jsx("div",{className:"pointer-events-none absolute left-[65px] top-3 z-10 font-mono text-sm text-muted-foreground",children:"Write your SQL here"}),e.jsx(t.Ft,{theme:"default",className:"pt-3",onChange:l,value:s||"",options:{minimap:{enabled:!1},wordWrap:"on",scrollbar:{verticalScrollbarSize:0,horizontalScrollbarSize:0},fontSize:13,renderLineHighlight:"none"},defaultLanguage:"sql",onMount:o})]})}function fn(){const s=t.useEditorStore(o=>o.card.python),{setCardPython:a}=t.useEditorActions(),{handleEditorDidMount:n}=Nt("python");function r(o){a(o)}return e.jsx(t.Ft,{className:"pt-3",theme:"default",onChange:r,value:s||t.PYTHON_DEFAULT_CODE,options:{minimap:{enabled:!1},wordWrap:"on",scrollbar:{verticalScrollbarSize:0,horizontalScrollbarSize:0},fontSize:13,renderLineHighlight:"none"},defaultLanguage:"python",onMount:n})}function gn({jsonString:s}){return e.jsx(t.Ft,{theme:"default",defaultLanguage:"json",className:"mt-1 min-h-[220px]",value:s,options:{readOnly:!0,minimap:{enabled:!1},lineNumbers:"off",glyphMargin:!1,wordWrap:"on",scrollbar:{verticalScrollbarSize:0,horizontalScrollbarSize:0},fontSize:12,renderLineHighlight:"none"}})}function wt(s){const[a,n]=E.useState(""),[r,o]=E.useState(null),{authToken:l}=t.useSemaphorContext(),i=t.useEditorStore(O=>{var J;return(J=O==null?void 0:O.card)==null?void 0:J.sql}),d=t.useEditorStore(O=>O.isDevMode),c=t.useEditorStore(O=>{var J;return(J=O==null?void 0:O.card)==null?void 0:J.python}),{setCardPython:h,setCardSql:u,setRunSql:x,switchCardType:v,setQueryConfig:m}=t.useEditorActions(),b=t.useEditorStore(O=>O.currentAssitantScope)||[],p=t.useEditorStore(O=>O.userInputForAI),f=t.useEditorStore(O=>O.triggerAIRun),g=t.useEditorStore(O=>O.selectedDatabaseName),N=t.useEditorStore(O=>O.selectedTableName),S=t.useEditorStore(O=>O.selectedConnectionId),A=t.useEditorStore(O=>O.selectedSchemaName),k=t.useDashboardStore(O=>O.dashboard.aiScopeTables),{setTriggerAIRun:T,setCurrentAssitantScope:L}=t.useEditorActions(),{selectedDatamodelName:F,connectionType:G,selectedDatamodelId:w}=t.useEditorAside(),{messages:R,setMessages:U,reload:q,error:D,append:j,input:M,setInput:V,status:_,handleInputChange:H,handleSubmit:Q,stop:y}=t.useChat({api:"https://semaphor.cloud/api/v1/assistant",headers:{Authorization:`Bearer ${l==null?void 0:l.accessToken}`},body:{random:Math.random(),assistantId:"editor-assistant",isDevMode:d},maxSteps:10,onError:O=>{console.log("on error",O)},onToolCall:C,onFinish(O,J){I(J.usage),n(""),J.finishReason==="stop"&&n("")}});E.useEffect(()=>{f&&p&&(H({target:{value:p}}),setTimeout(()=>{Q(),T(!1)},100))},[f,Q,p,T,H]);async function C({toolCall:O}){if(["createChartFromSql","createForecast"].includes(O.toolName)){const J=O.args.sql,Z=O.args.python,te=O.args.chartType;return v(te),u(J),h(Z),x(!0),{status:"success",message:"Let the user know that chart is created"}}else if(O.toolName==="getTableColumns")n("Getting table columns...");else{if(O.toolName==="getUserSql")return i?{status:"success",sql:i,python:c||""}:{status:"error",message:"No SQL found"};if(O.toolName==="getCurrentTableScope")return n("Getting table scope..."),W(),{status:"success",tables:b};if(O.toolName==="generateQueryConfig"){n("Generating query config...");const J=O.args.chartType,Z=O.args.queryConfig;return v(J),m(Z),u(void 0),h(void 0),x(!0),{status:"success",queryConfig:Z}}else n("Analyzing...")}}function I(O){o(J=>J?{promptTokens:J.promptTokens+O.promptTokens,completionTokens:J.completionTokens+O.completionTokens,totalTokens:J.totalTokens+O.totalTokens}:O)}function B(O){const J=t.removeFromScopeArray(b,O);$(J)}function $(O){const J=t.sanitizeAIScope(O);L(J),U(Z=>[...Z,{id:crypto.randomUUID(),role:"system",content:`Current scope of tables. Always use the table reference format when generating SQL | ${JSON.stringify(J)}`}])}function z(){const O={databaseName:g||"",schemaName:A||"",tableName:N||"",datamodelId:w||"",datamodelName:t.resolveDatamodelName(F),connectionId:S||"",connectionType:G||""},J=t.dedup([...b,O]);$(J)}function W(){const O={databaseName:g||"",schemaName:A||"",tableName:N||"",datamodelName:t.resolveDatamodelName(F),connectionId:S||"",connectionType:G||"",datamodelId:w||""};if(!t.isInAiScopeArray([...k||[],...b],O)||b.length===0){const Z=t.dedup([...k||[],...b,O]).filter(te=>te.connectionId===O.connectionId);$(Z)}}const P=!["ready","error"].includes(_),Y=t.getErrorMessage(D);return{messages:R,setMessages:U,reload:q,append:j,input:M,setInput:V,isLoading:P,handleSetAIScope:W,handleAddCurrentTableToScope:z,removeFromCurrentSelections:B,currentAssitantScope:b,setCurrentAssitantScope:L,handleInputChange:H,handleSubmit:Q,stop:y,chatStatus:_,toolStatus:a,llmUsage:r,onFinish:s,errorMessage:Y}}function jn(s){const a=s.toUpperCase().indexOf("WHERE"),n=s.toUpperCase().indexOf("GROUP BY"),r=s.toUpperCase().indexOf("LIMIT"),o=s.toUpperCase().indexOf("ORDER BY");let l=s.length;if(o!==-1&&(l=o),r!==-1&&r<l&&(l=r),a!==-1){const i=s.substring(0,a),d=s.substring(a);return`${i} {{ filters | where }} AND ${d.substring(6)}`}else if(n!==-1){const i=s.substring(0,n),d=s.substring(n);return`${i} {{ filters | where }} ${d}`}else{const i=s.substring(0,l),d=s.substring(l);return console.log("beforeClause",i),console.log("afterClause",d),d?`${i} {{ filters | where }} ${d}`:`${i.replace(/;$/,"")} {{ filters | where }}`}}function kt({variant:s="secondary"}){const{setCardSql:a}=t.useEditorActions(),n=t.useEditorStore(m=>m.frame),r=t.useEditorStore(m=>m.card),o=t.useEditorStore(m=>m.selectedSchemaName),l=t.useEditorStore(m=>m.selectedDatamodelId),i=t.useEditorStore(m=>m.selectedDatabaseName),d=t.useEditorStore(m=>m.selectedTableName),c=t.useEditorStore(m=>m.selectedConnectionId),h=t.useEditorStore(m=>m.isShowingVisual),u=r.sql,x=t.useEditorStore(m=>m.onSave);function v(){let m=u;u&&!u.includes("{{")&&(m=jn(u),a(m));const b={...r,lastSelectedSchema:o,lastSelectedDatamodelId:l,lastSelectedDatabase:i,lastSelectedTable:d,connectionId:c,type:h?r.type:"table",sql:m,customCfg:h?r.customCfg:null},p=n.cards.map(g=>g.id===r.id?b:g),f={...n,cards:p,activeCardId:yn(p,n.activeCardId)};x==null||x(f)}return e.jsxs(t.Button,{onClick:v,size:"sm",variant:s,children:[e.jsx(t.Check,{className:"mr-2 size-4 font-bold"}),"Accept"]})}function Dt(){const{setTempQueryData:s,setSqlGen:a}=t.useEditorActions(),n=t.useQueryClient(),r=t.useEditorStore(c=>c.tempQueryData),o=t.useEditorStore(c=>c.onClose),l=t.useEditorStore(c=>c.card),{queryKey:i}=t.useDashboardCardQuery(l);function d(){if(r){const{queryKey:c,queryData:h}=r;c&&h&&n.setQueryData(c,h)}a({}),o==null||o()}return e.jsxs(t.Button,{onClick:d,size:"sm",variant:"secondary",children:[e.jsx(t.X,{className:"mr-2 size-4"}),"Close"]})}function It(){const{setTempQueryData:s}=t.useEditorActions(),a=t.useQueryClient(),n=t.useEditorStore(m=>m.tempQueryData),r=t.useEditorStore(m=>m.card),{queryKey:o}=t.useDashboardCardQuery(r),{setCardSql:l,setSqlGen:i,setCardPython:d,setCardCustomCfg:c,setCardPreferences:h,setCardType:u,clearQueryConfig:x}=t.useEditorActions();function v(){const m=a.getQueryData(o);n!=null&&n.queryData||s({queryKey:o,queryData:m}),a.setQueryData(o,null),a.removeQueries({queryKey:o,exact:!0}),l(""),i({}),x(),d(""),c(""),h({})}return e.jsxs(t.Button,{onClick:v,className:"",size:"sm",variant:"secondary",children:[e.jsx(bs,{className:"mr-2 size-4"}),"Clear"]})}function yn(s,a){if(s.length===0)return"";if(a){const n=s.find(r=>r.id===a);if(n){const r=n.tabTitle;if(r=="All__Header")return s[0].id;if(r&&r.endsWith("__Header")){const l=r.split("__")[0],i=s.find(d=>d.tabTitle===l);return i?i.id:s[0].id}return a}}return s[0].id}function bn(){const s=t.useQueryClient(),[a,n]=E.useState(!1),[r,o]=E.useState(!1);t.useEditorStore(y=>y.frame);const l=t.useEditorStore(y=>y.card);t.useEditorStore(y=>y.isShowingVisual),t.useEditorStore(y=>y.selectedConnectionId),t.useEditorStore(y=>y.tempQueryData),t.useEditorStore(y=>y.selectedDatabaseName),t.useEditorStore(y=>y.selectedDatamodelId),t.useEditorStore(y=>y.selectedSchemaName);const i=t.useEditorStore(y=>y.showAIDialog);t.useEditorStore(y=>y.selectedTableName);const d=t.useEditorStore(y=>{var C;return(C=y==null?void 0:y.card)==null?void 0:C.sql}),c=t.useEditorStore(y=>{var C;return(C=y==null?void 0:y.card)==null?void 0:C.python}),{sheetFilterValues:h}=t.useSheetFilterValues(),{setCardCustomCfg:u,setQueryResultColumns:x,setCardSql:v,setTempQueryData:m,setPythonStdOut:b,setCardPreferences:p,setCardType:f,setCardPython:g,runAssistant:N,setShowAIDialog:S}=t.useEditorActions();t.useEditorStore(y=>y.onSave),t.useEditorStore(y=>y.onClose),t.useEditorStore(y=>y.actions.setSqlGen);const A=t.useEditorStore(y=>y.runSql),k=t.useEditorStore(y=>y.actions.setRunSql),T=t.useEditorStore(y=>y.actions.setIsSqlRunning),{data:L,isLoading:F,isFetching:G,isSuccess:w,isError:R,error:U,queryKey:q,refetch:D,errorMessage:j}=t.useDashboardCardQuery(l),{handleSetAIScope:M}=wt();E.useEffect(()=>{if(L&&(L.rowLimitExceeded&&t.ue.error("Row limit (10,000) exceeded. Refine your query.",{position:"top-center",richColors:!0}),b((L==null?void 0:L.output)||""),L.records.length>0)){const{dimensionKeys:y}=t.getKeys(L.records);x(y)}},[L,x,b]),E.useEffect(()=>{(F||G)&&T(!0),(R||w)&&T(!1),R&&(x([]),b(""))},[F,G,L,b,R,w,T,x,U]),E.useEffect(()=>{A&&(s.getQueryData(q)||D(),k(!1))},[A,D,k,q,s]);async function V(){const y=`Can you help me debug this query in the current table scope?
|
|
357
357
|
|
|
358
358
|
Error:
|
|
359
359
|
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as F, p as Wt, u as L, a as at, b as Ue, d as Tn, e as zn, B as K, P as Xe, f as An, g as Fn, h as En, i as Ln, L as H, I as ue, j as Vn, k as _n, l as qn, m as W, n as Rn, o as jn, q as Bn, r as vs, s as yn, t as R, C as Kt, v as xs, S as Ne, w as we, x as Se, y as ke, z as Te, A as Me, E as ce, T as Pn, F as $e, G as Qe, H as Mt, J as Oe, K as Yt, M as Dt, N as Zt, O as It, Q as ze, R as Hn, U as ot, V as Cs, W as Gn, X as Un, Y as bn, Z as Ns, _ as p, $ as $n, a0 as et, a1 as gt, a2 as ws, a3 as Qn, a4 as Jn, a5 as Wn, a6 as Kn, a7 as Yn, a8 as Zn, a9 as Xn, aa as ve, ab as ea, ac as ta, ad as na, ae as aa, af as sa, ag as ra, ah as be, ai as Ss, aj as xe, ak as ks, al as Pe, am as Ce, an as Ms, ao as Ds, ap as Is, aq as Os, ar as yt, as as Ae, at as Ts, au as zs, av as J, aw as la, ax as As, ay as Fs, az as Es, aA as Pt, aB as ia, aC as Xt, aD as Ot, aE as tt, aF as oa, aG as bt, aH as Ht, aI as fe, aJ as Ls, aK as Vs, aL as ct, aM as _s, aN as qs, aO as Rs, aP as ca, aQ as js, aR as Tt, aS as Bs, aT as Ps, aU as Hs, aV as vn, aW as Gs, aX as Us, aY as $s, aZ as en, a_ as De, a$ as Qs, b0 as Gt, b1 as Ve, b2 as he, b3 as _e, b4 as Js, b5 as Ws, b6 as Ks, b7 as Ys, b8 as Zs, b9 as At, ba as Xs, bb as xn, bc as er, bd as Cn, be as tr, bf as nr, bg as ar, bh as sr, bi as da, bj as rr, bk as tn, bl as ua, bm as lr, bn as ir, bo as Ye, bp as or, bq as cr, br as ma, bs as dr, bt as ur, bu as mr, bv as hr, bw as pr, bx as zt, by as ha, bz as fr, bA as nn, bB as an, bC as Ze, bD as ft, bE as gr, bF as yr, bG as br, bH as sn, bI as pa, bJ as vr, bK as vt, bL as fa, bM as xt, bN as ga, bO as ya, bP as ba, bQ as xr, bR as Cr, bS as Nr, bT as wr, bU as Ee, bV as le, bW as ie, bX as oe, bY as rn, bZ as Sr, b_ as kr, b$ as Mr, c0 as Dr, c1 as Ir, c2 as Nn, c3 as va, c4 as Or, c5 as Tr, c6 as zr, c7 as Ar, c8 as ln, c9 as xa, ca as Ca, cb as on, cc as Fr, cd as Er, ce as Na, cf as Lr, cg as Vr, ch as _r, ci as qr, cj as Rr, ck as jr, cl as Br, cm as Pr, cn as Hr, co as Gr, cp as Ft, cq as wa, cr as Ur, cs as $r, ct as Qr, cu as Jr, cv as Wr, cw as Kr, cx as Yr } from "./chunks/index-
|
|
2
|
-
import { D as Uo, cC as $o, cA as Qo, cA as Jo, cF as Wo, cE as Ko, cD as Yo, cG as Zo, cH as Xo, cB as ec, cy as tc, cz as nc } from "./chunks/index-
|
|
1
|
+
import { c as F, p as Wt, u as L, a as at, b as Ue, d as Tn, e as zn, B as K, P as Xe, f as An, g as Fn, h as En, i as Ln, L as H, I as ue, j as Vn, k as _n, l as qn, m as W, n as Rn, o as jn, q as Bn, r as vs, s as yn, t as R, C as Kt, v as xs, S as Ne, w as we, x as Se, y as ke, z as Te, A as Me, E as ce, T as Pn, F as $e, G as Qe, H as Mt, J as Oe, K as Yt, M as Dt, N as Zt, O as It, Q as ze, R as Hn, U as ot, V as Cs, W as Gn, X as Un, Y as bn, Z as Ns, _ as p, $ as $n, a0 as et, a1 as gt, a2 as ws, a3 as Qn, a4 as Jn, a5 as Wn, a6 as Kn, a7 as Yn, a8 as Zn, a9 as Xn, aa as ve, ab as ea, ac as ta, ad as na, ae as aa, af as sa, ag as ra, ah as be, ai as Ss, aj as xe, ak as ks, al as Pe, am as Ce, an as Ms, ao as Ds, ap as Is, aq as Os, ar as yt, as as Ae, at as Ts, au as zs, av as J, aw as la, ax as As, ay as Fs, az as Es, aA as Pt, aB as ia, aC as Xt, aD as Ot, aE as tt, aF as oa, aG as bt, aH as Ht, aI as fe, aJ as Ls, aK as Vs, aL as ct, aM as _s, aN as qs, aO as Rs, aP as ca, aQ as js, aR as Tt, aS as Bs, aT as Ps, aU as Hs, aV as vn, aW as Gs, aX as Us, aY as $s, aZ as en, a_ as De, a$ as Qs, b0 as Gt, b1 as Ve, b2 as he, b3 as _e, b4 as Js, b5 as Ws, b6 as Ks, b7 as Ys, b8 as Zs, b9 as At, ba as Xs, bb as xn, bc as er, bd as Cn, be as tr, bf as nr, bg as ar, bh as sr, bi as da, bj as rr, bk as tn, bl as ua, bm as lr, bn as ir, bo as Ye, bp as or, bq as cr, br as ma, bs as dr, bt as ur, bu as mr, bv as hr, bw as pr, bx as zt, by as ha, bz as fr, bA as nn, bB as an, bC as Ze, bD as ft, bE as gr, bF as yr, bG as br, bH as sn, bI as pa, bJ as vr, bK as vt, bL as fa, bM as xt, bN as ga, bO as ya, bP as ba, bQ as xr, bR as Cr, bS as Nr, bT as wr, bU as Ee, bV as le, bW as ie, bX as oe, bY as rn, bZ as Sr, b_ as kr, b$ as Mr, c0 as Dr, c1 as Ir, c2 as Nn, c3 as va, c4 as Or, c5 as Tr, c6 as zr, c7 as Ar, c8 as ln, c9 as xa, ca as Ca, cb as on, cc as Fr, cd as Er, ce as Na, cf as Lr, cg as Vr, ch as _r, ci as qr, cj as Rr, ck as jr, cl as Br, cm as Pr, cn as Hr, co as Gr, cp as Ft, cq as wa, cr as Ur, cs as $r, ct as Qr, cu as Jr, cv as Wr, cw as Kr, cx as Yr } from "./chunks/index-C1sBpCcr.js";
|
|
2
|
+
import { D as Uo, cC as $o, cA as Qo, cA as Jo, cF as Wo, cE as Ko, cD as Yo, cG as Zo, cH as Xo, cB as ec, cy as tc, cz as nc } from "./chunks/index-C1sBpCcr.js";
|
|
3
3
|
import { EMPTY_SELECTION as sc } from "./types/index.js";
|
|
4
4
|
import { jsxs as r, jsx as e, Fragment as ae } from "react/jsx-runtime";
|
|
5
5
|
import * as Ke from "react";
|
|
@@ -1839,7 +1839,7 @@ function li({ column: t }) {
|
|
|
1839
1839
|
b,
|
|
1840
1840
|
be(l || ""),
|
|
1841
1841
|
be(s),
|
|
1842
|
-
k,
|
|
1842
|
+
k || "",
|
|
1843
1843
|
h,
|
|
1844
1844
|
o || ""
|
|
1845
1845
|
);
|
|
@@ -2387,7 +2387,7 @@ function di({
|
|
|
2387
2387
|
P,
|
|
2388
2388
|
be(t),
|
|
2389
2389
|
be(a),
|
|
2390
|
-
G,
|
|
2390
|
+
G || "",
|
|
2391
2391
|
D,
|
|
2392
2392
|
c || ""
|
|
2393
2393
|
);
|
package/dist/types/main.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { ComboBoxOption as ComboBoxOption_2 } from '../../components/surfboard/f
|
|
|
6
6
|
import { CustomCard as CustomCard_2 } from '..';
|
|
7
7
|
import { DateRange } from 'react-day-picker';
|
|
8
8
|
import { default as default_2 } from 'react-grid-layout';
|
|
9
|
+
import { DropdownItem as DropdownItem_2 } from '../types/dropdown-types';
|
|
9
10
|
import { EmailSettings as EmailSettings_2 } from '..';
|
|
10
11
|
import { FontSpec } from 'chart.js';
|
|
11
12
|
import { JSX as JSX_2 } from 'react/jsx-runtime';
|
|
@@ -302,6 +303,10 @@ declare type ComboBoxOption = {
|
|
|
302
303
|
[key: string]: number | string;
|
|
303
304
|
};
|
|
304
305
|
|
|
306
|
+
export declare type ConnectionItem = DropdownItem & {
|
|
307
|
+
type: string;
|
|
308
|
+
};
|
|
309
|
+
|
|
305
310
|
export declare type ConnectionPolicy = {
|
|
306
311
|
connectionId?: string;
|
|
307
312
|
name: string;
|
|
@@ -391,6 +396,8 @@ export declare type DashboardStore = {
|
|
|
391
396
|
|
|
392
397
|
export declare const DashboardWC: CustomElementConstructor;
|
|
393
398
|
|
|
399
|
+
export declare type DatabaseItem = DropdownItem;
|
|
400
|
+
|
|
394
401
|
export declare type DateOptions = {
|
|
395
402
|
locale: string;
|
|
396
403
|
format: string;
|
|
@@ -403,6 +410,11 @@ export declare type DisplayDataType = 'string' | 'date' | 'number' | 'html' | 'n
|
|
|
403
410
|
|
|
404
411
|
export declare function downloadPdf(): Promise<void>;
|
|
405
412
|
|
|
413
|
+
export declare type DropdownItem = {
|
|
414
|
+
id: string;
|
|
415
|
+
name: string;
|
|
416
|
+
};
|
|
417
|
+
|
|
406
418
|
export declare type DroppableId = 'droppable-group-by' | 'droppable-metric';
|
|
407
419
|
|
|
408
420
|
export declare type EditorStore = {
|
|
@@ -621,6 +633,8 @@ export declare interface MetricColumn extends BaseColumn {
|
|
|
621
633
|
aliasTemplate?: string;
|
|
622
634
|
}
|
|
623
635
|
|
|
636
|
+
export declare type ModelItem = DropdownItem;
|
|
637
|
+
|
|
624
638
|
declare type NoneOptions = {};
|
|
625
639
|
|
|
626
640
|
export declare type NumberAxisFormat = {
|
|
@@ -699,6 +713,8 @@ export declare function ScheduleDashboard({ triggerButtonClassName, }: {
|
|
|
699
713
|
triggerButtonClassName?: string;
|
|
700
714
|
}): JSX_2.Element;
|
|
701
715
|
|
|
716
|
+
export declare type SchemaItem = DropdownItem;
|
|
717
|
+
|
|
702
718
|
export declare function SelectComponent({ title, items, value, isLoading, isError, refetch, onChange, showNone, className, disabled, type, }: SelectProps): JSX_2.Element;
|
|
703
719
|
|
|
704
720
|
export declare type SelectionState = Record<Level, string | null>;
|
|
@@ -801,6 +817,8 @@ export declare type TableConfig = {
|
|
|
801
817
|
datamodelId: string;
|
|
802
818
|
};
|
|
803
819
|
|
|
820
|
+
export declare type TableItem = DropdownItem;
|
|
821
|
+
|
|
804
822
|
declare type TablePreferences = {
|
|
805
823
|
columnSettingsMap?: ColumnSettingsMap;
|
|
806
824
|
selectColumnVisible?: boolean;
|
|
@@ -1094,24 +1112,24 @@ export declare function useDateFilterHook(filterId: string): {
|
|
|
1094
1112
|
export declare const useEditorActions: () => Actions_2;
|
|
1095
1113
|
|
|
1096
1114
|
export declare function useEditorAside(token?: AuthToken, _connectionQueryKey?: string): {
|
|
1097
|
-
connectionItems:
|
|
1115
|
+
connectionItems: ConnectionItem[];
|
|
1098
1116
|
selectedConnectionId: string | undefined;
|
|
1099
1117
|
isConnectionsLoading: boolean;
|
|
1100
1118
|
isConnectionsError: boolean;
|
|
1101
|
-
modelItems:
|
|
1119
|
+
modelItems: DropdownItem_2[];
|
|
1102
1120
|
selectedDatamodelId: string | undefined;
|
|
1103
1121
|
selectedDatamodelName: any;
|
|
1104
1122
|
isModelsLoading: boolean;
|
|
1105
1123
|
isModelsError: boolean;
|
|
1106
1124
|
selectedDatabaseName: string | undefined;
|
|
1107
|
-
databaseItems:
|
|
1125
|
+
databaseItems: DropdownItem_2[];
|
|
1108
1126
|
isDatabasesLoadingOrFetching: boolean;
|
|
1109
1127
|
isDatabaseError: boolean;
|
|
1110
|
-
schemaItems:
|
|
1128
|
+
schemaItems: DropdownItem_2[];
|
|
1111
1129
|
selectedSchemaName: string | undefined;
|
|
1112
1130
|
isSchemaLoadingOrFetching: boolean;
|
|
1113
1131
|
isSchemaError: boolean;
|
|
1114
|
-
tableItems:
|
|
1132
|
+
tableItems: DropdownItem_2[];
|
|
1115
1133
|
selectedTableName: string | undefined;
|
|
1116
1134
|
isTableLoadingOrFetching: boolean;
|
|
1117
1135
|
isTableError: boolean;
|